@almadar/std 3.0.1 → 3.0.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../behaviors/functions/std-browse.ts","../../../behaviors/functions/std-modal.ts","../../../behaviors/functions/std-confirmation.ts","../../../behaviors/functions/std-list.ts","../../../behaviors/functions/std-cart.ts","../../../behaviors/functions/std-detail.ts","../../../behaviors/functions/std-inventory.ts","../../../behaviors/functions/std-messaging.ts","../../../behaviors/functions/std-geospatial.ts","../../../behaviors/functions/std-search.ts","../../../behaviors/functions/std-filter.ts","../../../behaviors/functions/std-sort.ts","../../../behaviors/functions/std-pagination.ts","../../../behaviors/functions/std-drawer.ts","../../../behaviors/functions/std-notification.ts","../../../behaviors/functions/std-timer.ts","../../../behaviors/functions/std-tabs.ts","../../../behaviors/functions/std-loading.ts","../../../behaviors/functions/std-selection.ts","../../../behaviors/functions/std-undo.ts","../../../behaviors/functions/std-input.ts","../../../behaviors/functions/std-wizard.ts","../../../behaviors/functions/std-display.ts","../../../behaviors/functions/std-async.ts","../../../behaviors/functions/std-combat.ts","../../../behaviors/functions/std-gameflow.ts","../../../behaviors/functions/std-movement.ts","../../../behaviors/functions/std-quest.ts","../../../behaviors/functions/std-overworld.ts","../../../behaviors/functions/std-circuit-breaker.ts","../../../behaviors/functions/std-cache-aside.ts","../../../behaviors/functions/std-score.ts","../../../behaviors/functions/std-collision.ts","../../../behaviors/functions/std-physics2d.ts","../../../behaviors/functions/std-rate-limiter.ts","../../../behaviors/functions/std-game-hud.ts","../../../behaviors/functions/std-score-board.ts","../../../behaviors/functions/std-game-menu.ts","../../../behaviors/functions/std-game-over-screen.ts","../../../behaviors/functions/std-dialogue-box.ts","../../../behaviors/functions/std-inventory-panel.ts","../../../behaviors/functions/std-combat-log.ts","../../../behaviors/functions/std-sprite.ts","../../../behaviors/functions/std-game-audio.ts","../../../behaviors/functions/std-isometric-canvas.ts","../../../behaviors/functions/std-platformer-canvas.ts","../../../behaviors/functions/std-simulation-canvas.ts","../../../behaviors/functions/std-game-canvas-2d.ts","../../../behaviors/functions/std-game-canvas-3d.ts","../../../behaviors/functions/std-turn-based-battle.ts","../../../behaviors/functions/std-platformer-game.ts","../../../behaviors/functions/std-puzzle-game.ts","../../../behaviors/functions/std-builder-game.ts","../../../behaviors/functions/std-classifier-game.ts","../../../behaviors/functions/std-sequencer-game.ts","../../../behaviors/functions/std-debugger-game.ts","../../../behaviors/functions/std-negotiator-game.ts","../../../behaviors/functions/std-simulator-game.ts","../../../behaviors/functions/std-event-handler-game.ts","../../../behaviors/functions/std-social-feed.ts","../../../behaviors/functions/std-lms.ts","../../../behaviors/functions/std-crm.ts","../../../behaviors/functions/std-hr-portal.ts","../../../behaviors/functions/std-helpdesk.ts","../../../behaviors/functions/std-ecommerce.ts","../../../behaviors/functions/std-healthcare.ts","../../../behaviors/functions/std-cms.ts","../../../behaviors/functions/std-project-manager.ts","../../../behaviors/functions/std-booking-system.ts","../../../behaviors/functions/std-devops-dashboard.ts","../../../behaviors/functions/std-cicd-pipeline.ts","../../../behaviors/functions/std-api-gateway.ts","../../../behaviors/functions/std-rpg-game.ts","../../../behaviors/functions/std-platformer-app.ts","../../../behaviors/functions/std-puzzle-app.ts","../../../behaviors/functions/std-strategy-game.ts","../../../behaviors/functions/std-arcade-game.ts","../../../behaviors/functions/std-coding-academy.ts","../../../behaviors/functions/std-stem-lab.ts","../../../behaviors/functions/std-logic-training.ts","../../../behaviors/functions/std-iot-dashboard.ts","../../../behaviors/functions/std-realtime-chat.ts","../../../behaviors/functions/std-finance-tracker.ts","../../../behaviors/functions/std-trading-dashboard.ts"],"names":["resolve","ensureIdField","plural","buildEntity","makeEntity","buildTrait","buildPage","makePage","makeOrbital","extractTrait","detailContent","compose","DEFAULT_APPOINTMENT_FIELDS"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * std-browse\n *\n * Data grid browsing atom. Renders a list of entities with\n * configurable item actions. The browsing view that molecules\n * compose with modal/confirmation atoms.\n *\n * @level atom\n * @family browse\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdBrowseParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Trait naming\n traitName?: string;\n\n // Display\n listFields?: string[];\n headerIcon?: string;\n pageTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Actions (molecules inject these to emit events that other atoms listen for)\n headerActions?: Array<{ label: string; event: string; variant?: string; icon?: string }>;\n itemActions?: Array<{ label: string; event: string; variant?: string }>;\n\n // Refresh events: when these events fire (from other traits), re-fetch entity data\n refreshEvents?: string[];\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface BrowseConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n headerIcon: string;\n pageTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerActions: Array<{ label: string; event: string; variant?: string; icon?: string }>;\n itemActions: Array<{ label: string; event: string; variant?: string }>;\n refreshEvents: string[];\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdBrowseParams): BrowseConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: params.traitName ?? `${entityName}Browse`,\n headerIcon: params.headerIcon ?? 'list',\n pageTitle: params.pageTitle ?? p,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} yet`,\n emptyDescription: params.emptyDescription ?? `Create your first ${entityName.toLowerCase()} to get started.`,\n headerActions: params.headerActions ?? [],\n itemActions: params.itemActions ?? [],\n refreshEvents: params.refreshEvents ?? [],\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: BrowseConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: BrowseConfig): Trait {\n const { entityName, listFields, headerIcon, pageTitle, emptyTitle, emptyDescription } = c;\n\n // List item template — each card gets a hover lift and muted secondary field\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@entity.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@entity.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({\n type: 'typography', variant: 'caption', color: 'muted',\n content: `@entity.${listFields[2]}`,\n });\n }\n\n // Header buttons — gap-2 between icon and title for breathing room\n const headerChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n ];\n if (c.headerActions.length > 0) {\n headerChildren.push({\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: c.headerActions.map(a => ({\n type: 'button', label: a.label, event: a.event, variant: a.variant ?? 'primary', ...(a.icon ? { icon: a.icon } : {}),\n })),\n });\n }\n\n // Collect all event keys from actions\n const actionEvents = new Set<string>();\n for (const a of c.headerActions) actionEvents.add(a.event);\n for (const a of c.itemActions) actionEvents.add(a.event);\n\n // Add refresh events to the set (they need event declarations too)\n for (const re of c.refreshEvents) actionEvents.add(re);\n\n const events: unknown[] = [\n { key: 'INIT', name: 'Initialize' },\n ...Array.from(actionEvents).map(e => {\n const needsId = c.itemActions.some(a => a.event === e);\n // Refresh events with 'data' payload (SAVE-like events)\n const isRefresh = c.refreshEvents.includes(e);\n if (isRefresh) {\n return { key: e, name: e, payload: [{ name: 'data', type: 'object', required: true }] };\n }\n return needsId\n ? { key: e, name: e, payload: [{ name: 'id', type: 'string', required: true }] }\n : { key: e, name: e };\n }),\n ];\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'browsing', isInitial: true }],\n events,\n transitions: [\n {\n from: 'browsing', to: 'browsing', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', children: headerChildren },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox', emptyTitle, emptyDescription,\n ...(c.itemActions.length > 0 ? { itemActions: c.itemActions } : {}),\n // hover lift: cards rise on hover for interactive feel\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n }],\n ],\n },\n // Refresh self-loops: when modal atoms fire SAVE etc., re-fetch data\n ...c.refreshEvents.map(evt => ({\n from: 'browsing', to: 'browsing', event: evt,\n effects: [['fetch', entityName]],\n })),\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: BrowseConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdBrowseEntity(params: StdBrowseParams): Entity { return buildEntity(resolve(params)); }\nexport function stdBrowseTrait(params: StdBrowseParams): Trait { return buildTrait(resolve(params)); }\nexport function stdBrowsePage(params: StdBrowseParams): Page { return buildPage(resolve(params)); }\n\nexport function stdBrowse(params: StdBrowseParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-modal\n *\n * Modal overlay atom. Accepts content injection so molecules\n * can control what renders inside the open state.\n *\n * @level atom\n * @family modal\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdModalParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Trait naming (molecules override this to avoid collisions)\n traitName?: string;\n\n // Content\n modalTitle?: string;\n headerIcon?: string;\n /** Render-ui tree for the open state. Defaults to entity field detail view. */\n openContent?: unknown;\n\n // Event/Effect injection (molecules wire through these)\n /** Event key that opens the modal (default: 'OPEN') */\n openEvent?: string;\n /** Payload schema for the open event (e.g., [{ name: 'id', type: 'string', required: true }]) */\n openPayload?: Array<{ name: string; type: string; required?: boolean }>;\n /** Event key that closes the modal (default: 'CLOSE') */\n closeEvent?: string;\n /** Additional effects to run before render on open (e.g., fetch) */\n openEffects?: unknown[];\n /** If provided, adds a save transition: open → closed with these effects */\n saveEvent?: string;\n saveEffects?: unknown[];\n /** When false, INIT renders nothing to main (used inside molecules). Default true. */\n standalone?: boolean;\n\n // Page (standalone use)\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ModalConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n modalTitle: string;\n headerIcon: string;\n openContent: unknown;\n openEvent: string;\n openPayload: Array<{ name: string; type: string; required?: boolean }>;\n closeEvent: string;\n openEffects: unknown[];\n saveEvent: string | null;\n saveEffects: unknown[];\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdModalParams): ModalConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n // Default open content: field detail view\n const defaultContent = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: params.headerIcon ?? 'maximize-2', size: 'md' },\n { type: 'typography', content: params.modalTitle ?? 'Details', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n ...nonIdFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: f.name.charAt(0).toUpperCase() + f.name.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${f.name}` },\n ],\n })),\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [{ type: 'button', label: 'Close', event: params.closeEvent ?? 'CLOSE', variant: 'ghost' }],\n },\n ],\n };\n\n return {\n entityName,\n fields,\n nonIdFields,\n persistence: params.persistence ?? 'runtime',\n traitName: params.traitName ?? `${entityName}Modal`,\n modalTitle: params.modalTitle ?? 'Details',\n headerIcon: params.headerIcon ?? 'maximize-2',\n openContent: params.openContent ?? defaultContent,\n openEvent: params.openEvent ?? 'OPEN',\n openPayload: params.openPayload ?? [],\n closeEvent: params.closeEvent ?? 'CLOSE',\n openEffects: params.openEffects ?? [],\n saveEvent: params.saveEvent ?? null,\n saveEffects: params.saveEffects ?? [],\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}ModalPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/modal`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: ModalConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ModalConfig): Trait {\n const events: unknown[] = [\n { key: 'INIT', name: 'Initialize' },\n { key: c.openEvent, name: 'Open', ...(c.openPayload.length > 0 ? { payload: c.openPayload } : {}) },\n { key: c.closeEvent, name: 'Close' },\n ];\n if (c.saveEvent) {\n events.push({ key: c.saveEvent, name: 'Save', payload: [{ name: 'data', type: 'object', required: true }] });\n }\n\n const transitions: unknown[] = [\n // INIT: closed → closed\n {\n from: 'closed', to: 'closed', event: 'INIT',\n effects: c.standalone\n ? [['fetch', c.entityName], ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'icon', name: c.headerIcon, size: 'lg' },\n { type: 'typography', content: c.modalTitle, variant: 'h2' },\n ] },\n { type: 'button', label: 'Open', event: c.openEvent, variant: 'primary', icon: c.headerIcon },\n ] },\n ],\n }]]\n : [['fetch', c.entityName]],\n },\n // OPEN: closed → open\n {\n from: 'closed', to: 'open', event: c.openEvent,\n effects: [...c.openEffects, ['render-ui', 'modal', c.openContent]],\n },\n // CLOSE: open → closed\n { from: 'open', to: 'closed', event: c.closeEvent, effects: [['render-ui', 'modal', null]] },\n ];\n\n // Save transition (molecule injects this for create/edit modals)\n if (c.saveEvent) {\n transitions.push({\n from: 'open', to: 'closed', event: c.saveEvent,\n effects: [...c.saveEffects, ['render-ui', 'modal', null]],\n });\n }\n\n return {\n name: c.traitName,\n linkedEntity: c.entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'closed', isInitial: true }, { name: 'open' }],\n events,\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: ModalConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdModalEntity(params: StdModalParams): Entity { return buildEntity(resolve(params)); }\nexport function stdModalTrait(params: StdModalParams): Trait { return buildTrait(resolve(params)); }\nexport function stdModalPage(params: StdModalParams): Page { return buildPage(resolve(params)); }\n\nexport function stdModal(params: StdModalParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-confirmation as a Function\n *\n * Confirmation dialog behavior parameterized for any domain.\n * Provides a two-step confirm/cancel flow before performing destructive actions.\n * The caller handles the actual action via emits/listens.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family confirmation\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdConfirmationParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Trait naming (molecules override this)\n traitName?: string;\n\n // Display\n confirmTitle?: string;\n confirmMessage?: string;\n confirmLabel?: string;\n cancelLabel?: string;\n headerIcon?: string;\n\n // Event/Effect injection\n /** Event key that opens the confirmation (default: 'REQUEST') */\n requestEvent?: string;\n /** Event key for confirm action (default: 'CONFIRM') */\n confirmEvent?: string;\n /** Additional effects to run on confirm (e.g., persist delete) */\n confirmEffects?: unknown[];\n /** When false, INIT renders nothing to main (used inside molecules). Default true. */\n standalone?: boolean;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ConfirmationConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n confirmTitle: string;\n confirmMessage: string;\n confirmLabel: string;\n cancelLabel: string;\n headerIcon: string;\n requestEvent: string;\n confirmEvent: string;\n confirmEffects: unknown[];\n standalone: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdConfirmationParams): ConfirmationConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: params.traitName ?? `${entityName}Confirmation`,\n pluralName: p,\n confirmTitle: params.confirmTitle ?? 'Confirm Action',\n confirmMessage: params.confirmMessage ?? 'Are you sure?',\n confirmLabel: params.confirmLabel ?? 'Confirm',\n cancelLabel: params.cancelLabel ?? 'Cancel',\n headerIcon: params.headerIcon ?? 'alert-triangle',\n requestEvent: params.requestEvent ?? 'REQUEST',\n confirmEvent: params.confirmEvent ?? 'CONFIRM',\n confirmEffects: params.confirmEffects ?? [],\n standalone: params.standalone ?? true,\n pageName: params.pageName ?? `${entityName}ConfirmPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/confirm`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: ConfirmationConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ConfirmationConfig): Trait {\n const { entityName, displayField, pluralName, confirmTitle, confirmMessage, confirmLabel, cancelLabel, headerIcon } = c;\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'confirming' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: c.requestEvent, name: 'Request Confirmation', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: c.confirmEvent, name: 'Confirm', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: c.standalone\n ? [['fetch', entityName], ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pluralName, variant: 'h2' },\n ] },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: 'Items will appear here.',\n itemActions: [{ label: confirmTitle, event: c.requestEvent, variant: 'danger' }],\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: [\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n ] }],\n },\n ],\n }]]\n : [['fetch', entityName]],\n },\n // REQUEST: idle -> confirming\n {\n from: 'idle', to: 'confirming', event: c.requestEvent,\n effects: [\n ['render-ui', 'modal', {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'md' },\n { type: 'typography', content: confirmTitle, variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: confirmMessage, variant: 'body' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: cancelLabel, event: 'CANCEL', variant: 'ghost' },\n { type: 'button', label: confirmLabel, event: c.confirmEvent, variant: 'danger', icon: 'check' },\n ],\n },\n ],\n }],\n ],\n },\n // CONFIRM: confirming -> idle (run injected effects, dismiss modal)\n {\n from: 'confirming', to: 'idle', event: c.confirmEvent,\n effects: [\n ...c.confirmEffects,\n ['render-ui', 'modal', null],\n ],\n },\n // CANCEL: confirming -> idle (dismiss modal)\n {\n from: 'confirming', to: 'idle', event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n // CLOSE: confirming -> idle (dismiss modal)\n {\n from: 'confirming', to: 'idle', event: 'CLOSE',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: ConfirmationConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdConfirmationEntity(params: StdConfirmationParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdConfirmationTrait(params: StdConfirmationParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdConfirmationPage(params: StdConfirmationParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdConfirmation(params: StdConfirmationParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-list\n *\n * CRUD list molecule. Composes atoms via shared event bus:\n * - stdBrowse: data-grid with item actions (fires CREATE, VIEW, EDIT, DELETE)\n * - stdModal (x3): create form, edit form, detail view (responds to matching events)\n * - stdConfirmation: delete confirmation (responds to DELETE)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family crud\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from './std-browse.js';\nimport { stdModal } from './std-modal.js';\nimport { stdConfirmation } from './std-confirmation.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdListParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n listFields?: string[];\n detailFields?: string[];\n formFields?: string[];\n pageTitle?: string;\n createButtonLabel?: string;\n editFormTitle?: string;\n createFormTitle?: string;\n deleteMessage?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n headerIcon?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ListConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n detailFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n createButtonLabel: string;\n createFormTitle: string;\n editFormTitle: string;\n deleteMessage: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdListParams): ListConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n formFields: params.formFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n pageTitle: params.pageTitle ?? p,\n createButtonLabel: params.createButtonLabel ?? `Create ${entityName}`,\n createFormTitle: params.createFormTitle ?? `Create ${entityName}`,\n editFormTitle: params.editFormTitle ?? `Edit ${entityName}`,\n deleteMessage: params.deleteMessage ?? `Are you sure you want to delete this ${entityName.toLowerCase()}?`,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} yet`,\n emptyDescription: params.emptyDescription ?? `Create your first ${entityName.toLowerCase()} to get started.`,\n headerIcon: params.headerIcon ?? 'list',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction formContent(entityName: string, mode: 'create' | 'edit', title: string, icon: string, formFields: string[], saveEvent: string, cancelEvent: string): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: icon, size: 'md' },\n { type: 'typography', content: title, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode, submitEvent: saveEvent, cancelEvent, fields: formFields },\n ],\n };\n}\n\nfunction detailContent(detailFields: string[], closeEvent: string): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'eye', size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: f.charAt(0).toUpperCase() + f.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Edit', event: 'EDIT', variant: 'primary', icon: 'edit' },\n { type: 'button', label: 'Close', event: closeEvent, variant: 'ghost' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdListEntity(params: StdListParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdListTrait(params: StdListParams): Trait {\n return extractTrait(stdList(params));\n}\n\nexport function stdListPage(params: StdListParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Create` },\n { ref: `${c.entityName}Edit` },\n { ref: `${c.entityName}View` },\n { ref: `${c.entityName}Delete` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdList(params: StdListParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, detailFields } = c;\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: c.emptyTitle,\n emptyDescription: c.emptyDescription,\n headerActions: [{ label: c.createButtonLabel, event: 'CREATE', variant: 'primary', icon: 'plus' }],\n itemActions: [\n { label: 'View', event: 'VIEW' },\n { label: 'Edit', event: 'EDIT' },\n { label: 'Delete', event: 'DELETE', variant: 'danger' },\n ],\n refreshEvents: ['SAVE', 'CONFIRM_DELETE'],\n }));\n\n const createTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Create`,\n modalTitle: c.createFormTitle,\n headerIcon: 'plus-circle',\n openContent: formContent(entityName, 'create', c.createFormTitle, 'plus-circle', formFields, 'SAVE', 'CLOSE'),\n openEvent: 'CREATE',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data'], ['fetch', entityName]],\n }));\n\n const editTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Edit`,\n modalTitle: c.editFormTitle,\n headerIcon: 'edit',\n openContent: formContent(entityName, 'edit', c.editFormTitle, 'edit', formFields, 'SAVE', 'CLOSE'),\n openEvent: 'EDIT',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, '@payload.id']],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'update', entityName, '@payload.data'], ['fetch', entityName]],\n }));\n\n const viewTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}View`,\n modalTitle: `View ${entityName}`,\n headerIcon: 'eye',\n openContent: detailContent(detailFields, 'CLOSE'),\n openEvent: 'VIEW',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, '@payload.id']],\n }));\n\n const deleteTrait = extractTrait(stdConfirmation({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Delete`,\n confirmTitle: `Delete ${entityName}`,\n confirmMessage: c.deleteMessage,\n confirmLabel: 'Delete',\n headerIcon: 'trash-2',\n requestEvent: 'DELETE',\n confirmEvent: 'CONFIRM_DELETE',\n confirmEffects: [['persist', 'delete', entityName, '@payload.id'], ['fetch', entityName]],\n }));\n\n // 2. Shared entity\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: createTrait.name },\n { ref: editTrait.name },\n { ref: viewTrait.name },\n { ref: deleteTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, createTrait, editTrait, viewTrait, deleteTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-cart\n *\n * Shopping cart molecule. Composes atoms:\n * - Cart-specific browse trait (empty/hasItems/checkout states)\n * - stdModal for the add-item form (responds to ADD_ITEM)\n *\n * @level molecule\n * @family commerce\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, extractTrait } from '@almadar/core/builders';\nimport { stdModal } from './std-modal.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCartParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n listFields?: string[];\n formFields?: string[];\n pageTitle?: string;\n addButtonLabel?: string;\n checkoutButtonLabel?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n headerIcon?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CartConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n addButtonLabel: string;\n checkoutButtonLabel: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCartParams): CartConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n pageTitle: params.pageTitle ?? 'Shopping Cart',\n addButtonLabel: params.addButtonLabel ?? 'Add Item',\n checkoutButtonLabel: params.checkoutButtonLabel ?? 'Proceed to Checkout',\n emptyTitle: params.emptyTitle ?? 'Your cart is empty',\n emptyDescription: params.emptyDescription ?? 'Add items to get started.',\n headerIcon: params.headerIcon ?? 'shopping-cart',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? '/cart',\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Cart-specific browse trait (empty/hasItems/checkout)\n// ============================================================================\n\nfunction buildCartTrait(c: CartConfig): Trait {\n const { entityName, listFields, headerIcon, pageTitle, addButtonLabel, checkoutButtonLabel, emptyTitle, emptyDescription } = c;\n\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@entity.${listFields[0] ?? 'id'}` },\n ] },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@entity.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({ type: 'typography', variant: 'caption', content: `@entity.${listFields[2]}` });\n }\n\n const headerBar = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'button', label: addButtonLabel, event: 'ADD_ITEM', variant: 'primary', icon: 'plus' },\n ],\n };\n\n const cartGrid = {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox', emptyTitle, emptyDescription,\n itemActions: [{ label: 'Remove', event: 'REMOVE_ITEM', variant: 'danger' }],\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n };\n\n return {\n name: `${entityName}CartBrowse`,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'browsing', isInitial: true },\n { name: 'checkout' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADD_ITEM', name: 'Add Item' },\n { key: 'SAVE', name: 'Save', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'REMOVE_ITEM', name: 'Remove Item', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: 'PROCEED_CHECKOUT', name: 'Proceed to Checkout' },\n { key: 'BACK_TO_CART', name: 'Back to Cart' },\n { key: 'CONFIRM_ORDER', name: 'Confirm Order' },\n ],\n transitions: [\n // browsing + INIT (data-grid handles empty vs populated automatically)\n { from: 'browsing', to: 'browsing', event: 'INIT', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n headerBar, { type: 'divider' }, cartGrid,\n { type: 'button', label: checkoutButtonLabel, event: 'PROCEED_CHECKOUT', variant: 'primary', icon: 'arrow-right' },\n ] }],\n ] },\n // SAVE: re-fetch after modal adds an item (shared event bus)\n { from: 'browsing', to: 'browsing', event: 'SAVE', effects: [['fetch', entityName]] },\n // REMOVE_ITEM\n { from: 'browsing', to: 'browsing', event: 'REMOVE_ITEM', effects: [\n ['persist', 'delete', entityName, '@payload.id'], ['fetch', entityName],\n ] },\n // PROCEED_CHECKOUT\n { from: 'browsing', to: 'checkout', event: 'PROCEED_CHECKOUT', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'clipboard', size: 'lg' },\n { type: 'typography', content: 'Checkout', variant: 'h2' },\n ] },\n { type: 'divider' },\n cartGrid,\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Back to Cart', event: 'BACK_TO_CART', variant: 'ghost', icon: 'arrow-left' },\n { type: 'button', label: 'Confirm Order', event: 'CONFIRM_ORDER', variant: 'primary', icon: 'check' },\n ] },\n ] }],\n ] },\n // BACK_TO_CART\n { from: 'checkout', to: 'browsing', event: 'BACK_TO_CART', effects: [['fetch', entityName]] },\n // CONFIRM_ORDER\n { from: 'checkout', to: 'browsing', event: 'CONFIRM_ORDER', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', { type: 'stack', direction: 'vertical', gap: 'lg', align: 'center', children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Order Confirmed', variant: 'h2' },\n { type: 'typography', content: 'Your order has been placed successfully.', variant: 'body' },\n { type: 'button', label: 'Continue Shopping', event: 'INIT', variant: 'primary' },\n ] }],\n ] },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdCartEntity(params: StdCartParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdCartTrait(params: StdCartParams): Trait {\n return buildCartTrait(resolve(params));\n}\n\nexport function stdCartPage(params: StdCartParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: `${c.entityName}CartBrowse` }, { ref: `${c.entityName}AddItem` }],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCart(params: StdCartParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields } = c;\n\n // Cart-specific browse trait\n const cartTrait = buildCartTrait(c);\n\n // Add-item modal (stdModal atom)\n const addTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}AddItem`,\n modalTitle: c.addButtonLabel,\n headerIcon: 'plus-circle',\n openContent: {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'plus-circle', size: 'md' },\n { type: 'typography', content: c.addButtonLabel, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SAVE', cancelEvent: 'CLOSE', fields: formFields },\n ],\n },\n openEvent: 'ADD_ITEM',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data'], ['fetch', entityName]],\n }));\n\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: cartTrait.name }, { ref: addTrait.name }],\n } as Page;\n\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [cartTrait, addTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-detail\n *\n * Browse + Create + View molecule. Composes atoms:\n * - stdBrowse: data-grid with View item action and Create header action\n * - stdModal: create form (responds to CREATE)\n * - stdModal: view detail (responds to VIEW)\n *\n * No edit/delete from list. Used for feeds, ledgers, galleries.\n *\n * @level molecule\n * @family crud\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from './std-browse.js';\nimport { stdModal } from './std-modal.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDetailParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n listFields?: string[];\n detailFields?: string[];\n formFields?: string[];\n pageTitle?: string;\n createButtonLabel?: string;\n createFormTitle?: string;\n headerIcon?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DetailConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n detailFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n createButtonLabel: string;\n createFormTitle: string;\n headerIcon: string;\n emptyTitle: string;\n emptyDescription: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDetailParams): DetailConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n formFields: params.formFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n pageTitle: params.pageTitle ?? p,\n createButtonLabel: params.createButtonLabel ?? `Create ${entityName}`,\n createFormTitle: params.createFormTitle ?? `New ${entityName}`,\n headerIcon: params.headerIcon ?? 'file-text',\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} yet`,\n emptyDescription: params.emptyDescription ?? `Create your first ${entityName.toLowerCase()} to get started.`,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdDetailEntity(params: StdDetailParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdDetailTrait(params: StdDetailParams): Trait {\n return extractTrait(stdDetail(params));\n}\n\nexport function stdDetailPage(params: StdDetailParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: `${c.entityName}Browse` }, { ref: `${c.entityName}Create` }, { ref: `${c.entityName}View` }],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDetail(params: StdDetailParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, detailFields } = c;\n\n // Browse atom: list with View action + Create button, refreshes on SAVE\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: c.emptyTitle,\n emptyDescription: c.emptyDescription,\n headerActions: [{ label: c.createButtonLabel, event: 'CREATE', variant: 'primary', icon: 'plus' }],\n itemActions: [{ label: 'View', event: 'VIEW' }],\n refreshEvents: ['SAVE'],\n }));\n\n // Create modal atom\n const createTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Create`,\n modalTitle: c.createFormTitle,\n headerIcon: 'plus-circle',\n openContent: {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'plus-circle', size: 'md' },\n { type: 'typography', content: c.createFormTitle, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SAVE', cancelEvent: 'CLOSE', fields: formFields },\n ],\n },\n openEvent: 'CREATE',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data'], ['fetch', entityName]],\n }));\n\n // View modal atom\n const viewTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}View`,\n modalTitle: `View ${entityName}`,\n headerIcon: 'eye',\n openContent: {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'eye', size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: f.charAt(0).toUpperCase() + f.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Close', event: 'CLOSE', variant: 'ghost' },\n ] },\n ],\n },\n openEvent: 'VIEW',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, '@payload.id']],\n }));\n\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [{ ref: browseTrait.name }, { ref: createTrait.name }, { ref: viewTrait.name }],\n } as Page;\n\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, createTrait, viewTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-inventory\n *\n * Item collection molecule. Composes atoms via shared event bus:\n * - stdBrowse: data-grid with item actions (fires ADD_ITEM, USE_ITEM, DROP)\n * - stdModal (add): create form for adding items (responds to ADD_ITEM)\n * - stdModal (use): item detail for using items (responds to USE_ITEM)\n * - stdConfirmation: drop confirmation (responds to DROP)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from './std-browse.js';\nimport { stdModal } from './std-modal.js';\nimport { stdConfirmation } from './std-confirmation.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdInventoryParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n formFields?: string[];\n\n // Labels\n pageTitle?: string;\n addLabel?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface InventoryConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n addLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdInventoryParams): InventoryConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n pageTitle: params.pageTitle ?? `${p} Inventory`,\n addLabel: params.addLabel ?? `Add ${entityName}`,\n headerIcon: params.headerIcon ?? 'package',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction addFormContent(entityName: string, addLabel: string, formFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'plus-circle', size: 'md' },\n { type: 'typography', content: addLabel, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SAVE', cancelEvent: 'CLOSE', fields: formFields },\n ],\n };\n}\n\nfunction useItemContent(entityName: string, listFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'zap', size: 'md' },\n { type: 'typography', content: `Use ${entityName}`, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'typography', content: `@entity.${listFields[0] ?? 'id'}`, variant: 'body' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center', children: [\n { type: 'button', label: 'Cancel', event: 'CLOSE', variant: 'ghost' },\n { type: 'button', label: 'Confirm Use', event: 'SAVE', variant: 'primary', icon: 'check' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdInventoryEntity(params: StdInventoryParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdInventoryTrait(params: StdInventoryParams): Trait {\n return extractTrait(stdInventory(params));\n}\n\nexport function stdInventoryPage(params: StdInventoryParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Add` },\n { ref: `${c.entityName}Use` },\n { ref: `${c.entityName}Drop` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdInventory(params: StdInventoryParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, listFields } = c;\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: 'No items yet',\n emptyDescription: 'Add your first item to get started.',\n headerActions: [{ label: c.addLabel, event: 'ADD_ITEM', variant: 'primary', icon: 'plus' }],\n itemActions: [\n { label: 'Use', event: 'USE_ITEM' },\n { label: 'Drop', event: 'DROP', variant: 'danger' },\n ],\n refreshEvents: ['SAVE', 'CONFIRM_DROP'],\n }));\n\n const addTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Add`,\n modalTitle: c.addLabel,\n headerIcon: 'plus-circle',\n openContent: addFormContent(entityName, c.addLabel, formFields),\n openEvent: 'ADD_ITEM',\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName]],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'create', entityName, '@payload.data'], ['fetch', entityName]],\n }));\n\n const useTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Use`,\n modalTitle: `Use ${entityName}`,\n headerIcon: 'zap',\n openContent: useItemContent(entityName, listFields),\n openEvent: 'USE_ITEM',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, '@payload.id']],\n saveEvent: 'SAVE',\n saveEffects: [['persist', 'update', entityName, '@payload.data'], ['fetch', entityName]],\n }));\n\n const dropTrait = extractTrait(stdConfirmation({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Drop`,\n confirmTitle: `Drop ${entityName}`,\n confirmMessage: `Are you sure you want to drop this ${entityName.toLowerCase()}?`,\n confirmLabel: 'Drop',\n headerIcon: 'trash-2',\n requestEvent: 'DROP',\n confirmEvent: 'CONFIRM_DROP',\n confirmEffects: [['persist', 'delete', entityName, '@payload.id'], ['fetch', entityName]],\n }));\n\n // 2. Shared entity\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: addTrait.name },\n { ref: useTrait.name },\n { ref: dropTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, addTrait, useTrait, dropTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-messaging\n *\n * Messaging molecule. Composes atoms via shared event bus:\n * - stdBrowse: message list with \"Compose\" header action, \"View\" item action\n * - stdModal (compose): compose/send message form (COMPOSE -> SEND)\n * - stdModal (view): view message detail (VIEW with id payload)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family communication\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from './std-browse.js';\nimport { stdModal } from './std-modal.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdMessagingParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n formFields?: string[];\n detailFields?: string[];\n\n // Labels\n pageTitle?: string;\n composerTitle?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface MessagingConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n detailFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n composerTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdMessagingParams): MessagingConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n pageTitle: params.pageTitle ?? p,\n composerTitle: params.composerTitle ?? `New ${entityName}`,\n headerIcon: params.headerIcon ?? 'message-circle',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction composeContent(entityName: string, title: string, formFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'icon', name: 'edit', size: 'md' },\n { type: 'typography', content: title, variant: 'h3' },\n ] },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'create', submitEvent: 'SEND', cancelEvent: 'CLOSE', fields: formFields },\n ],\n };\n}\n\nfunction viewContent(detailFields: string[]): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: 'eye', size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: f.charAt(0).toUpperCase() + f.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Close', event: 'CLOSE', variant: 'ghost' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdMessagingEntity(params: StdMessagingParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdMessagingTrait(params: StdMessagingParams): Trait {\n return extractTrait(stdMessaging(params));\n}\n\nexport function stdMessagingPage(params: StdMessagingParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Compose` },\n { ref: `${c.entityName}View` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdMessaging(params: StdMessagingParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, formFields, detailFields } = c;\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: 'No messages yet',\n emptyDescription: 'Start a new conversation.',\n headerActions: [{ label: 'Compose', event: 'COMPOSE', variant: 'primary', icon: 'edit' }],\n itemActions: [{ label: 'View', event: 'VIEW' }],\n refreshEvents: ['SEND'],\n }));\n\n const composeTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Compose`,\n modalTitle: c.composerTitle,\n headerIcon: 'edit',\n openContent: composeContent(entityName, c.composerTitle, formFields),\n openEvent: 'COMPOSE',\n closeEvent: 'CLOSE',\n saveEvent: 'SEND',\n saveEffects: [['persist', 'create', entityName, '@payload.data'], ['fetch', entityName]],\n }));\n\n const viewTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}View`,\n modalTitle: `View ${entityName}`,\n headerIcon: 'eye',\n openContent: viewContent(detailFields),\n openEvent: 'VIEW',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, '@payload.id']],\n }));\n\n // 2. Shared entity\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: composeTrait.name },\n { ref: viewTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, composeTrait, viewTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-geospatial\n *\n * Location selection molecule. Composes atoms via shared event bus:\n * - stdBrowse: location list with \"Select\" item action (fires SELECT)\n * - stdModal: select/view location detail (responds to SELECT)\n * - stdConfirmation: confirm location selection (responds to CONFIRM_SELECT)\n *\n * No emits/listens wiring. Traits on the same page share the event bus.\n * Only the trait with a matching transition from its current state responds.\n *\n * @level molecule\n * @family location\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdBrowse } from './std-browse.js';\nimport { stdModal } from './std-modal.js';\nimport { stdConfirmation } from './std-confirmation.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGeospatialParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n detailFields?: string[];\n\n // Labels\n pageTitle?: string;\n selectLabel?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GeospatialConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n detailFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n pageTitle: string;\n selectLabel: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGeospatialParams): GeospatialConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n detailFields: params.detailFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n pageTitle: params.pageTitle ?? `${p} Picker`,\n selectLabel: params.selectLabel ?? `Select ${entityName}`,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} found`,\n emptyDescription: params.emptyDescription ?? `No ${p.toLowerCase()} are available to select.`,\n headerIcon: params.headerIcon ?? 'map-pin',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Content builders\n// ============================================================================\n\nfunction detailContent(detailFields: string[], headerIcon: string): unknown {\n return {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'md' },\n { type: 'typography', variant: 'h3', content: `@entity.${detailFields[0] ?? 'id'}` },\n ] },\n { type: 'divider' },\n ...detailFields.map(f => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: f.charAt(0).toUpperCase() + f.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${f}` },\n ],\n })),\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end', children: [\n { type: 'button', label: 'Cancel', event: 'CLOSE', variant: 'ghost' },\n { type: 'button', label: 'Confirm Selection', event: 'CONFIRM_SELECT', variant: 'primary', icon: 'check' },\n ] },\n ],\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdGeospatialEntity(params: StdGeospatialParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdGeospatialTrait(params: StdGeospatialParams): Trait {\n return extractTrait(stdGeospatial(params));\n}\n\nexport function stdGeospatialPage(params: StdGeospatialParams): Page {\n const c = resolve(params);\n return {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: `${c.entityName}Browse` },\n { ref: `${c.entityName}Select` },\n { ref: `${c.entityName}ConfirmSelect` },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdGeospatial(params: StdGeospatialParams): OrbitalDefinition {\n const c = resolve(params);\n const { entityName, fields, detailFields } = c;\n\n // 1. Build atoms (shared event names, no wiring needed)\n const browseTrait = extractTrait(stdBrowse({\n entityName, fields,\n traitName: `${entityName}Browse`,\n listFields: c.listFields,\n headerIcon: c.headerIcon,\n pageTitle: c.pageTitle,\n emptyTitle: c.emptyTitle,\n emptyDescription: c.emptyDescription,\n itemActions: [\n { label: c.selectLabel, event: 'SELECT' },\n ],\n refreshEvents: ['CONFIRMED'],\n }));\n\n const selectTrait = extractTrait(stdModal({ standalone: false,\n entityName, fields,\n traitName: `${entityName}Select`,\n modalTitle: `Select ${entityName}`,\n headerIcon: c.headerIcon,\n openContent: detailContent(detailFields, c.headerIcon),\n openEvent: 'SELECT',\n openPayload: [{ name: 'id', type: 'string', required: true }],\n closeEvent: 'CLOSE',\n openEffects: [['fetch', entityName, '@payload.id']],\n saveEvent: 'CONFIRM_SELECT',\n saveEffects: [],\n }));\n\n const confirmTrait = extractTrait(stdConfirmation({ standalone: false,\n entityName, fields,\n traitName: `${entityName}ConfirmSelect`,\n confirmTitle: `Confirm ${entityName} Selection`,\n confirmMessage: `Are you sure you want to select this ${entityName.toLowerCase()}?`,\n confirmLabel: 'Confirm',\n headerIcon: 'check-circle',\n requestEvent: 'CONFIRM_SELECT',\n confirmEvent: 'CONFIRMED',\n confirmEffects: [['fetch', entityName]],\n }));\n\n // 2. Shared entity\n const entity = makeEntity({ name: entityName, fields, persistence: c.persistence, collection: c.collection });\n\n // 3. Page references all traits\n const page: Page = {\n name: c.pageName, path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: browseTrait.name },\n { ref: selectTrait.name },\n { ref: confirmTrait.name },\n ],\n } as Page;\n\n // 4. One orbital, multiple traits, shared event bus\n return {\n name: `${entityName}Orbital`,\n entity,\n traits: [browseTrait, selectTrait, confirmTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-search as a Function\n *\n * Search behavior parameterized for any domain.\n * Provides a search input that filters entity data by query string.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family search\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSearchParams {\n /** Entity name in PascalCase (e.g., \"Product\", \"Article\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Placeholder text for the search input */\n placeholder?: string;\n /** Icon for the search input (Lucide name) */\n searchIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}SearchPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/search\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SearchConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n placeholder: string;\n searchIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSearchParams): SearchConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure query field exists on entity for binding\n const fields = baseFields.some(f => f.name === 'query')\n ? baseFields\n : [...baseFields, { name: 'query', type: 'string' as const, default: '' }];\n\n const nonIdFields = baseFields.filter(f => f.name !== 'id' && f.name !== 'query');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Search`,\n pluralName: p,\n placeholder: params.placeholder ?? 'Search...',\n searchIcon: params.searchIcon ?? 'search',\n pageName: params.pageName ?? `${entityName}SearchPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/search`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: SearchConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SearchConfig): Trait {\n const { entityName, displayField, pluralName, searchIcon, placeholder } = c;\n\n // Reusable search input view\n const searchInputView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: searchIcon, size: 'lg' },\n { type: 'typography', content: `Search ${pluralName}`, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'search-input', placeholder, event: 'SEARCH' },\n ],\n };\n\n // Reusable results view\n const resultsView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: searchIcon, size: 'lg' },\n { type: 'typography', content: ['concat', 'Results for \"', '@entity.query', '\"'], variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'x' },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: searchIcon,\n emptyTitle: 'No results found',\n emptyDescription: 'Try a different search term.',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n ],\n }],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'searching' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SEARCH', name: 'Search', payload: [{ name: 'query', type: 'string', required: true }] },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', searchInputView],\n ],\n },\n {\n from: 'idle', to: 'searching', event: 'SEARCH',\n effects: [\n ['set', '@entity.query', '@payload.query'],\n ['fetch', entityName],\n ['render-ui', 'main', resultsView],\n ],\n },\n {\n from: 'searching', to: 'searching', event: 'SEARCH',\n effects: [\n ['set', '@entity.query', '@payload.query'],\n ['fetch', entityName],\n ['render-ui', 'main', resultsView],\n ],\n },\n {\n from: 'searching', to: 'idle', event: 'CLEAR',\n effects: [\n ['set', '@entity.query', ''],\n ['fetch', entityName],\n ['render-ui', 'main', searchInputView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SearchConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSearchEntity(params: StdSearchParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSearchTrait(params: StdSearchParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSearchPage(params: StdSearchParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSearch(params: StdSearchParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-filter\n *\n * Filter atom. Shows filter buttons per field with predefined values.\n * Clicking a filter value transitions to filtered state. Clear resets.\n *\n * @level atom\n * @family filter\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdFilterParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Fields to show as filter buttons (defaults to fields with `values` defined) */\n filterFields?: string[];\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface FilterConfig {\n entityName: string;\n fields: EntityField[];\n allFields: EntityField[];\n filterableFields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdFilterParams): FilterConfig {\n const { entityName } = params;\n const allFields = ensureIdField(params.fields);\n const nonIdFields = allFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n // Filterable fields: explicitly specified, or fields that have `values` defined\n const filterFieldNames = params.filterFields ?? nonIdFields.filter(f => f.values && f.values.length > 0).map(f => f.name);\n const filterableFields = nonIdFields.filter(f => filterFieldNames.includes(f.name));\n\n return {\n entityName,\n fields: allFields,\n allFields,\n filterableFields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Filter`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'filter',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}FilterPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: FilterConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: FilterConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle, filterableFields } = c;\n\n // Build filter button rows: one row per filterable field\n // In 'browsing' state all chips are secondary; in 'filtered' state the matching chip is primary\n const filterButtons: unknown[] = filterableFields.map(f => ({\n type: 'stack', direction: 'vertical', gap: 'xs',\n children: [\n // overline group label for visual hierarchy\n { type: 'typography', variant: 'overline', color: 'muted',\n content: f.name.charAt(0).toUpperCase() + f.name.slice(1) },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: (f.values ?? []).map(v => ({\n type: 'button', label: v, event: 'FILTER', variant: 'secondary',\n })),\n },\n ],\n }));\n\n // Same filter buttons but with active styling hint comment for runtime\n const activeFilterButtons: unknown[] = filterableFields.map(f => ({\n type: 'stack', direction: 'vertical', gap: 'xs',\n children: [\n { type: 'typography', variant: 'overline', color: 'muted',\n content: f.name.charAt(0).toUpperCase() + f.name.slice(1) },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: (f.values ?? []).map(v => ({\n // active filter chip uses 'primary' variant so runtime highlights it\n type: 'button', label: v, event: 'FILTER', variant: 'primary',\n })),\n },\n ],\n }));\n\n // If no filterable fields, show a simple \"All\" badge\n if (filterButtons.length === 0) {\n filterButtons.push({ type: 'badge', label: 'No filter fields defined' });\n }\n\n const header = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'badge', label: 'All' },\n ],\n };\n\n const dataGrid = {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: [\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n // show the filterable field value to confirm what was filtered\n ...(filterableFields[0]\n ? [{ type: 'typography', variant: 'caption', color: 'muted', content: `@entity.${filterableFields[0].name}` }]\n : []),\n ] }],\n };\n\n const browsingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [header, { type: 'divider' }, ...filterButtons, { type: 'divider' }, dataGrid],\n };\n\n const filteredView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'stack', direction: 'horizontal', gap: 'sm', children: [\n { type: 'badge', label: 'Filtered', variant: 'primary' },\n { type: 'button', label: 'Clear', event: 'CLEAR_FILTERS', variant: 'ghost', icon: 'x' },\n ] },\n ],\n },\n { type: 'divider' },\n // activeFilterButtons show primary variant for selected state\n ...activeFilterButtons,\n { type: 'divider' },\n dataGrid,\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'browsing', isInitial: true },\n { name: 'filtered' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FILTER', name: 'Filter' },\n { key: 'CLEAR_FILTERS', name: 'Clear Filters' },\n ],\n transitions: [\n { from: 'browsing', to: 'browsing', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', browsingView]] },\n { from: 'browsing', to: 'filtered', event: 'FILTER', effects: [['fetch', entityName], ['render-ui', 'main', filteredView]] },\n { from: 'filtered', to: 'filtered', event: 'FILTER', effects: [['fetch', entityName], ['render-ui', 'main', filteredView]] },\n { from: 'filtered', to: 'browsing', event: 'CLEAR_FILTERS', effects: [['fetch', entityName], ['render-ui', 'main', browsingView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: FilterConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdFilterEntity(params: StdFilterParams): Entity { return buildEntity(resolve(params)); }\nexport function stdFilterTrait(params: StdFilterParams): Trait { return buildTrait(resolve(params)); }\nexport function stdFilterPage(params: StdFilterParams): Page { return buildPage(resolve(params)); }\n\nexport function stdFilter(params: StdFilterParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-sort\n *\n * Sort atom. Shows sort-by buttons for each sortable field.\n * Clicking a field name sorts by that field. Clicking again toggles direction.\n *\n * @level atom\n * @family sort\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSortParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Fields available for sorting (defaults to all non-id fields) */\n sortFields?: string[];\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SortConfig {\n entityName: string;\n fields: EntityField[];\n sortableFields: string[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSortParams): SortConfig {\n const { entityName } = params;\n const allFields = ensureIdField(params.fields);\n const nonIdFields = allFields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields: allFields,\n sortableFields: params.sortFields ?? nonIdFields.map(f => f.name),\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Sort`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'arrow-up-down',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}SortPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: SortConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SortConfig): Trait {\n const { entityName, sortableFields, displayField, pluralName, headerIcon, pageTitle } = c;\n\n // Sort toolbar: placed directly above the data list (not in the page header)\n const sortToolbar = {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Sort by' },\n ...sortableFields.map(f => ({\n type: 'button',\n label: f.charAt(0).toUpperCase() + f.slice(1),\n event: 'SORT',\n // secondary in idle; molecules can override active to primary\n variant: 'secondary',\n icon: 'arrow-up-down',\n })),\n ],\n };\n\n // Sort toolbar for 'sorted' state: active field button uses primary + ChevronUp\n const activeSortToolbar = (activeField: string) => ({\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Sort by' },\n ...sortableFields.map(f => ({\n type: 'button',\n label: f.charAt(0).toUpperCase() + f.slice(1),\n event: 'SORT',\n // highlight the active sort field with primary + directional arrow\n variant: f === activeField ? 'primary' : 'secondary',\n icon: f === activeField ? 'chevron-up' : 'arrow-up-down',\n })),\n ],\n });\n\n const dataGrid = {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: [\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n // Show the first sortable field as a secondary datum so sorting is visually meaningful\n ...(sortableFields[1]\n ? [{ type: 'typography', variant: 'caption', color: 'muted', content: `@entity.${sortableFields[1]}` }]\n : []),\n ] }],\n };\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n ] },\n { type: 'divider' },\n // Sort toolbar lives just above the data list\n sortToolbar,\n dataGrid,\n ],\n };\n\n // After sorting: show active sort with primary variant\n const sortedView = activeSortToolbar(sortableFields[0] ?? displayField);\n const mainSortedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'button', label: 'Clear sort', event: 'INIT', variant: 'ghost', icon: 'x' },\n ] },\n { type: 'divider' },\n sortedView,\n dataGrid,\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }, { name: 'sorted' }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SORT', name: 'Sort' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'idle', to: 'sorted', event: 'SORT', effects: [['fetch', entityName], ['render-ui', 'main', mainSortedView]] },\n { from: 'sorted', to: 'sorted', event: 'SORT', effects: [['fetch', entityName], ['render-ui', 'main', mainSortedView]] },\n { from: 'sorted', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SortConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdSortEntity(params: StdSortParams): Entity { return buildEntity(resolve(params)); }\nexport function stdSortTrait(params: StdSortParams): Trait { return buildTrait(resolve(params)); }\nexport function stdSortPage(params: StdSortParams): Page { return buildPage(resolve(params)); }\n\nexport function stdSort(params: StdSortParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-pagination as a Function\n *\n * Pagination behavior parameterized for any domain.\n * Provides page/pageSize controls that paginate entity data.\n * Single idle state with a self-loop that re-renders with the new page applied.\n *\n * @level atom\n * @family pagination\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPaginationParams {\n /** Entity name in PascalCase (e.g., \"Article\", \"Product\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title (defaults to plural entity name) */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}PaginationPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/paginated\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PaginationConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPaginationParams): PaginationConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure pagination tracking fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'currentPage') ? [] : [{ name: 'currentPage', type: 'number' as const, default: 1 }]),\n ...(baseFields.some(f => f.name === 'pageSize') ? [] : [{ name: 'pageSize', type: 'number' as const, default: 10 }]),\n ];\n\n const nonIdFields = baseFields.filter(f => f.name !== 'id' && f.name !== 'currentPage' && f.name !== 'pageSize');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Pagination`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'list',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}PaginationPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/paginated`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: PaginationConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: PaginationConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle } = c;\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n // Clean header: just title, no duplicate page number badge\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n // secondary caption row to distinguish items\n { type: 'typography', variant: 'caption', color: 'muted', content: `@entity.id` },\n ],\n }],\n },\n {\n // Pagination footer with context: \"Page N\" and Prev/Next nav\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center', align: 'center',\n children: [\n { type: 'button', label: 'Previous', event: 'PAGE', variant: 'ghost', icon: 'chevron-left' },\n { type: 'typography', variant: 'body', color: 'muted',\n content: ['concat', 'Page ', '@entity.currentPage'] },\n { type: 'button', label: 'Next', event: 'PAGE', variant: 'ghost', icon: 'chevron-right' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'PAGE', name: 'Change Page', payload: [\n { name: 'page', type: 'number', required: true },\n { name: 'pageSize', type: 'number', required: true },\n ] },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', mainView],\n ],\n },\n {\n from: 'idle', to: 'idle', event: 'PAGE',\n effects: [\n ['set', '@entity.currentPage', '@payload.page'],\n ['set', '@entity.pageSize', '@payload.pageSize'],\n ['fetch', entityName],\n ['render-ui', 'main', mainView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: PaginationConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPaginationEntity(params: StdPaginationParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPaginationTrait(params: StdPaginationParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdPaginationPage(params: StdPaginationParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPagination(params: StdPaginationParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-drawer as a Function\n *\n * Drawer behavior parameterized for any domain.\n * Provides a slide-out drawer that displays entity detail.\n * Two states: closed and open, with transitions to toggle visibility.\n * Similar to std-modal but renders to a \"drawer\" slot concept.\n *\n * @level atom\n * @family drawer\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDrawerParams {\n /** Entity name in PascalCase (e.g., \"Panel\", \"Sidebar\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Drawer title (defaults to \"Details\") */\n drawerTitle?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}DrawerPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/drawer\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DrawerConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n drawerTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDrawerParams): DrawerConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Drawer`,\n pluralName: p,\n drawerTitle: params.drawerTitle ?? 'Details',\n headerIcon: params.headerIcon ?? 'panel-right',\n pageName: params.pageName ?? `${entityName}DrawerPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/drawer`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: DrawerConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: DrawerConfig): Trait {\n const { entityName, nonIdFields, displayField, pluralName, drawerTitle, headerIcon } = c;\n\n const closedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: drawerTitle, variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Open', event: 'OPEN', variant: 'primary', icon: headerIcon },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n children: [{\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n ],\n }],\n },\n ],\n };\n\n const openView = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'md' },\n { type: 'typography', content: drawerTitle, variant: 'h3' },\n ],\n },\n { type: 'button', label: 'Close', event: 'CLOSE', variant: 'ghost', icon: 'x' },\n ],\n },\n { type: 'divider' },\n ...nonIdFields.map(field => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: field.name.charAt(0).toUpperCase() + field.name.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${field.name}` },\n ],\n })),\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Close', event: 'CLOSE', variant: 'ghost' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'closed', isInitial: true },\n { name: 'open' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'OPEN', name: 'Open' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n {\n from: 'closed', to: 'closed', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', closedView],\n ],\n },\n {\n from: 'closed', to: 'open', event: 'OPEN',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'drawer', openView],\n ],\n },\n {\n from: 'open', to: 'closed', event: 'CLOSE',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: DrawerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdDrawerEntity(params: StdDrawerParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdDrawerTrait(params: StdDrawerParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdDrawerPage(params: StdDrawerParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDrawer(params: StdDrawerParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-notification as a Function\n *\n * Notification behavior parameterized for any domain.\n * Provides a show/hide notification display.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family notification\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdNotificationParams {\n /** Entity name in PascalCase (e.g., \"Alert\", \"Notice\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}NotificationPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/notifications\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface NotificationConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdNotificationParams): NotificationConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure message and notificationType fields exist on entity for payload binding\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'message') ? [] : [{ name: 'message', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'notificationType') ? [] : [{ name: 'notificationType', type: 'string' as const, default: 'info' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Notification`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'bell',\n pageTitle: params.pageTitle ?? 'Notifications',\n pageName: params.pageName ?? `${entityName}NotificationPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/notifications`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: NotificationConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: NotificationConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n // Hidden state view (empty notification area)\n const hiddenView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'bell-off', size: 'lg' },\n { type: 'typography', content: 'No notifications', variant: 'body' },\n { type: 'typography', content: 'New notifications will appear here.', variant: 'caption' },\n ],\n },\n ],\n };\n\n // Visible state view (showing notification)\n const visibleView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Dismiss', event: 'HIDE', variant: 'ghost', icon: 'x' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'md' },\n {\n type: 'stack', direction: 'vertical', gap: 'xs',\n children: [\n { type: 'typography', content: '@entity.message', variant: 'body' },\n { type: 'badge', label: '@entity.notificationType' },\n ],\n },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'hidden', isInitial: true },\n { name: 'visible' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SHOW', name: 'Show Notification', payload: [\n { name: 'message', type: 'string', required: true },\n { name: 'notificationType', type: 'string' },\n ] },\n { key: 'HIDE', name: 'Hide Notification' },\n ],\n transitions: [\n // INIT: hidden -> hidden (render empty state)\n {\n from: 'hidden', to: 'hidden', event: 'INIT',\n effects: [\n ['render-ui', 'main', hiddenView],\n ],\n },\n // SHOW: hidden -> visible (render notification)\n {\n from: 'hidden', to: 'visible', event: 'SHOW',\n effects: [\n ['set', '@entity.message', '@payload.message'],\n ['set', '@entity.notificationType', '@payload.notificationType'],\n ['render-ui', 'main', visibleView],\n ],\n },\n // SHOW: visible -> visible (update notification)\n {\n from: 'visible', to: 'visible', event: 'SHOW',\n effects: [\n ['set', '@entity.message', '@payload.message'],\n ['set', '@entity.notificationType', '@payload.notificationType'],\n ['render-ui', 'main', visibleView],\n ],\n },\n // HIDE: visible -> hidden (clear notification)\n {\n from: 'visible', to: 'hidden', event: 'HIDE',\n effects: [\n ['set', '@entity.message', ''],\n ['render-ui', 'main', hiddenView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: NotificationConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdNotificationEntity(params: StdNotificationParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdNotificationTrait(params: StdNotificationParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdNotificationPage(params: StdNotificationParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdNotification(params: StdNotificationParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-timer as a Function\n *\n * Timer behavior parameterized for any domain.\n * Provides a countdown timer with start, pause, resume, and reset controls.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family timer\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTimerParams {\n /** Entity name in PascalCase (e.g., \"Countdown\", \"Pomodoro\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Default duration in seconds */\n duration?: number;\n /** Timer title */\n timerTitle?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}TimerPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/timer\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TimerConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n duration: number;\n timerTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTimerParams): TimerConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure timer-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'remaining') ? [] : [{ name: 'remaining', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'duration') ? [] : [{ name: 'duration', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'status') ? [] : [{ name: 'status', type: 'string' as const, default: 'idle' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Timer`,\n pluralName: p,\n duration: params.duration ?? 60,\n timerTitle: params.timerTitle ?? 'Timer',\n headerIcon: params.headerIcon ?? 'clock',\n pageName: params.pageName ?? `${entityName}TimerPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/timer`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: TimerConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: TimerConfig): Trait {\n const { entityName, timerTitle, headerIcon } = c;\n\n // Shared timer display component — shows formatted MM:SS + label + progress track\n const timerDisplay = {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: timerTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n // Large MM:SS time display — the entity.remaining field drives this\n { type: 'typography', content: '@entity.remaining', variant: 'h1' },\n // Unit/label subtitle: shows what is being timed\n { type: 'typography', content: 'seconds remaining', variant: 'caption', color: 'muted' },\n // Progress bar track — always visible, filled as timer decrements\n { type: 'progress-bar', value: '@entity.remaining', max: c.duration, color: 'primary' },\n { type: 'badge', label: '@entity.status' },\n ],\n };\n\n // Button sets for each state\n const idleButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n // Show Pause/Reset grayed out in idle for control surface discoverability\n { type: 'button', label: 'Pause', event: 'PAUSE', variant: 'ghost', icon: 'pause', disabled: true },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw', disabled: true },\n ],\n };\n\n const runningButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Pause', event: 'PAUSE', variant: 'secondary', icon: 'pause' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const pausedButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Resume', event: 'RESUME', variant: 'primary', icon: 'play' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const expiredButtons = {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'primary', icon: 'rotate-ccw' },\n ],\n };\n\n // Wrapper function for timer view with given buttons\n const timerView = (buttons: unknown) => ({\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [timerDisplay, buttons],\n });\n\n const expiredView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n timerDisplay,\n { type: 'typography', content: 'Time is up!', variant: 'h3' },\n expiredButtons,\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n ticks: [{\n name: 'countdown',\n interval: 1000,\n appliesTo: ['running'],\n guard: ['>', '@entity.remaining', 0],\n effects: [\n ['set', '@entity.remaining', ['-', '@entity.remaining', 1]],\n ],\n }],\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'running' },\n { name: 'paused' },\n { name: 'expired' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'RESET', name: 'Reset' },\n { key: 'TICK', name: 'Tick' },\n { key: 'EXPIRE', name: 'Expire' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n // START: idle -> running (set remaining to duration)\n {\n from: 'idle', to: 'running', event: 'START',\n effects: [\n ['set', '@entity.remaining', c.duration],\n ['set', '@entity.status', 'running'],\n ['render-ui', 'main', timerView(runningButtons)],\n ],\n },\n // TICK: running -> running\n {\n from: 'running', to: 'running', event: 'TICK',\n effects: [\n ['render-ui', 'main', timerView(runningButtons)],\n ],\n },\n // PAUSE: running -> paused\n {\n from: 'running', to: 'paused', event: 'PAUSE',\n effects: [\n ['set', '@entity.status', 'paused'],\n ['render-ui', 'main', timerView(pausedButtons)],\n ],\n },\n // RESUME: paused -> running\n {\n from: 'paused', to: 'running', event: 'RESUME',\n effects: [\n ['set', '@entity.status', 'running'],\n ['render-ui', 'main', timerView(runningButtons)],\n ],\n },\n // EXPIRE: running -> expired\n {\n from: 'running', to: 'expired', event: 'EXPIRE',\n effects: [\n ['set', '@entity.status', 'expired'],\n ['render-ui', 'main', expiredView],\n ],\n },\n // RESET: running -> idle\n {\n from: 'running', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.status', 'idle'],\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n // RESET: paused -> idle\n {\n from: 'paused', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.status', 'idle'],\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n // RESET: expired -> idle\n {\n from: 'expired', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.status', 'idle'],\n ['render-ui', 'main', timerView(idleButtons)],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: TimerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdTimerEntity(params: StdTimerParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdTimerTrait(params: StdTimerParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdTimerPage(params: StdTimerParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdTimer(params: StdTimerParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-tabs\n *\n * Tab navigation atom. Uses the `tabs` pattern component\n * with clickable tab headers. Each tab shows different entity data.\n *\n * @level atom\n * @family tabs\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTabsParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Tab definitions: each tab has a label and the fields it shows */\n tabItems?: Array<{ label: string; value: string }>;\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface TabsConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n tabItems: Array<{ label: string; value: string }>;\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTabsParams): TabsConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n // Default tabs: one per non-id field\n const tabItems = params.tabItems ?? nonIdFields.map(f => ({\n label: f.name.charAt(0).toUpperCase() + f.name.slice(1),\n value: f.name,\n }));\n\n return {\n entityName, fields, nonIdFields, tabItems,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Tabs`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'layout-grid',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}TabsPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: TabsConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: TabsConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle, tabItems } = c;\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'divider' },\n {\n type: 'tabs',\n tabs: tabItems,\n defaultActiveTab: tabItems[0]?.value ?? '',\n // active tab gets primary color underline and text\n activeTab: '@entity.activeTab',\n onTabChange: 'SELECT_TAB',\n },\n // divider separates tab bar from content\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: [\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n { type: 'typography', variant: 'caption', color: 'muted', content: `@entity.${tabItems[0]?.value ?? displayField}` },\n ] }],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT_TAB', name: 'Select Tab' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'idle', to: 'idle', event: 'SELECT_TAB', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: TabsConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdTabsEntity(params: StdTabsParams): Entity { return buildEntity(resolve(params)); }\nexport function stdTabsTrait(params: StdTabsParams): Trait { return buildTrait(resolve(params)); }\nexport function stdTabsPage(params: StdTabsParams): Page { return buildPage(resolve(params)); }\n\nexport function stdTabs(params: StdTabsParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-loading as a Function\n *\n * Loading behavior parameterized for any domain.\n * Provides a multi-state loading lifecycle: idle, loading, success, error.\n * Tracks async operation status with appropriate UI for each state.\n *\n * @level atom\n * @family loading\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdLoadingParams {\n /** Entity name in PascalCase (e.g., \"Request\", \"Upload\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Title text (defaults to entity name) */\n title?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}LoadingPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/loading\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface LoadingConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n title: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdLoadingParams): LoadingConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure loadingStatus tracking field exists on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'loadingStatus') ? [] : [{ name: 'loadingStatus', type: 'string' as const, default: 'idle' }]),\n ];\n\n const nonIdFields = baseFields.filter(f => f.name !== 'id' && f.name !== 'loadingStatus');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Loading`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'loader',\n title: params.title ?? entityName,\n pageName: params.pageName ?? `${entityName}LoadingPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/loading`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: LoadingConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: LoadingConfig): Trait {\n const { entityName, headerIcon, title } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n // Neutral icon in idle (not the spinner — that lives only in the loading state)\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'play-circle', size: 'lg' },\n { type: 'typography', content: title, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n // Contextual description of what this loading operation does\n { type: 'typography', variant: 'body', color: 'muted',\n content: `Ready to load ${title.toLowerCase()}. Click Start to begin.` },\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n ],\n };\n\n const loadingView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n // Spinner icon appears only in the loading state — not permanently\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'loader', size: 'lg' },\n { type: 'typography', content: 'Loading...', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'progress-bar', value: 50 },\n { type: 'typography', variant: 'caption', color: 'muted',\n content: 'Please wait while the operation completes.' },\n ],\n };\n\n const successView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Success', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'body', content: 'Operation completed successfully.' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n const errorView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'alert-circle', size: 'lg' },\n { type: 'typography', content: 'Error', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', variant: 'body', content: 'Something went wrong.' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Retry', event: 'START', variant: 'primary', icon: 'rotate-ccw' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'loading' },\n { name: 'success' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Loading' },\n { key: 'LOADED', name: 'Loaded' },\n { key: 'FAILED', name: 'Failed' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['set', '@entity.loadingStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'loading', event: 'START',\n effects: [\n ['set', '@entity.loadingStatus', 'loading'],\n ['render-ui', 'main', loadingView],\n ],\n },\n {\n from: 'loading', to: 'success', event: 'LOADED',\n effects: [\n ['set', '@entity.loadingStatus', 'success'],\n ['render-ui', 'main', successView],\n ],\n },\n {\n from: 'loading', to: 'error', event: 'FAILED',\n effects: [\n ['set', '@entity.loadingStatus', 'error'],\n ['render-ui', 'main', errorView],\n ],\n },\n {\n from: 'error', to: 'loading', event: 'START',\n effects: [\n ['set', '@entity.loadingStatus', 'loading'],\n ['render-ui', 'main', loadingView],\n ],\n },\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.loadingStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'success', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.loadingStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: LoadingConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdLoadingEntity(params: StdLoadingParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdLoadingTrait(params: StdLoadingParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdLoadingPage(params: StdLoadingParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdLoading(params: StdLoadingParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-selection as a Function\n *\n * Selection behavior parameterized for any domain.\n * Provides item selection from a list with confirm/deselect controls.\n * Three states: idle, selecting, selected with transitions for the full lifecycle.\n *\n * @level atom\n * @family selection\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSelectionParams {\n /** Entity name in PascalCase (e.g., \"Item\", \"Option\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title (defaults to plural entity name) */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}SelectionPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/selection\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SelectionConfig {\n entityName: string;\n fields: EntityField[];\n displayField: string;\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSelectionParams): SelectionConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure selectedId tracking field exists on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'selectedId') ? [] : [{ name: 'selectedId', type: 'string' as const, default: '' }]),\n ];\n\n const nonIdFields = baseFields.filter(f => f.name !== 'id' && f.name !== 'selectedId');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n displayField: nonIdFields[0]?.name ?? 'id',\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Selection`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'check-square',\n pageTitle: params.pageTitle ?? p,\n pageName: params.pageName ?? `${entityName}SelectionPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/selection`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: SelectionConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SelectionConfig): Trait {\n const { entityName, displayField, pluralName, headerIcon, pageTitle } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n // Meaningful action prompt using entity name\n { type: 'typography', variant: 'caption', color: 'muted',\n content: `Choose a ${entityName.toLowerCase()} to continue.` },\n {\n type: 'data-grid', entity: entityName,\n emptyIcon: 'inbox',\n emptyTitle: `No ${pluralName.toLowerCase()} yet`,\n emptyDescription: `Add ${pluralName.toLowerCase()} to see them here.`,\n className: 'transition-shadow hover:shadow-md cursor-pointer',\n children: [{\n // Checkbox-style affordance on LEFT of each row, then the entity name\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'circle', size: 'sm', color: 'muted' },\n { type: 'typography', variant: 'h4', content: `@entity.${displayField}` },\n { type: 'button', label: 'Select', event: 'SELECT', variant: 'ghost', icon: 'check' },\n ],\n }],\n },\n ],\n };\n\n const selectingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'badge', label: 'Selecting' },\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'x' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', content: 'Selected ID:' },\n { type: 'typography', variant: 'body', content: '@entity.selectedId' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Confirm', event: 'CONFIRM_SELECTION', variant: 'primary', icon: 'check' },\n { type: 'button', label: 'Deselect', event: 'DESELECT', variant: 'ghost', icon: 'x' },\n ],\n },\n ],\n };\n\n const selectedView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Selection Confirmed', variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Confirmed' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'typography', variant: 'caption', content: 'Selected ID:' },\n { type: 'typography', variant: 'body', content: '@entity.selectedId' },\n ],\n },\n { type: 'button', label: 'Clear Selection', event: 'CLEAR', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'selecting' },\n { name: 'selected' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT', name: 'Select', payload: [\n { name: 'id', type: 'string', required: true },\n ] },\n { key: 'DESELECT', name: 'Deselect' },\n { key: 'CLEAR', name: 'Clear' },\n { key: 'CONFIRM_SELECTION', name: 'Confirm Selection' },\n ],\n transitions: [\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'idle', to: 'selecting', event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', selectingView],\n ],\n },\n {\n from: 'selecting', to: 'selecting', event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', selectingView],\n ],\n },\n {\n from: 'selecting', to: 'idle', event: 'DESELECT',\n effects: [\n ['set', '@entity.selectedId', ''],\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'selecting', to: 'idle', event: 'CLEAR',\n effects: [\n ['set', '@entity.selectedId', ''],\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n {\n from: 'selecting', to: 'selected', event: 'CONFIRM_SELECTION',\n effects: [\n ['render-ui', 'main', selectedView],\n ],\n },\n {\n from: 'selected', to: 'idle', event: 'CLEAR',\n effects: [\n ['set', '@entity.selectedId', ''],\n ['fetch', entityName],\n ['render-ui', 'main', idleView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SelectionConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSelectionEntity(params: StdSelectionParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSelectionTrait(params: StdSelectionParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSelectionPage(params: StdSelectionParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSelection(params: StdSelectionParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-undo\n *\n * Undo/Redo atom using array operators as a stack.\n * - PUSH: appends to undoStack, clears redoStack\n * - UNDO: pops from undoStack, pushes to redoStack\n * - REDO: pops from redoStack, pushes to undoStack\n * - CLEAR: empties both stacks\n *\n * Entity fields: undoStack (array), redoStack (array), current (string)\n *\n * @level atom\n * @family undo\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdUndoParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n headerIcon?: string;\n pageTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface UndoConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdUndoParams): UndoConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Add stack fields if not present\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'undoStack') ? [] : [{ name: 'undoStack', type: 'array' as const, default: [] }]),\n ...(baseFields.some(f => f.name === 'redoStack') ? [] : [{ name: 'redoStack', type: 'array' as const, default: [] }]),\n ...(baseFields.some(f => f.name === 'current') ? [] : [{ name: 'current', type: 'string' as const, default: '' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Undo`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'history',\n pageTitle: params.pageTitle ?? 'History',\n pageName: params.pageName ?? `${entityName}UndoPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/undo`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: UndoConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: UndoConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', align: 'center', children: [\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center', children: [\n { type: 'button', label: 'Undo', event: 'UNDO', variant: 'ghost', icon: 'undo' },\n { type: 'button', label: 'Redo', event: 'REDO', variant: 'ghost', icon: 'redo' },\n // gap-6 spacer between Redo and Clear to prevent misclicking destructive action\n { type: 'divider', orientation: 'vertical' },\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'trash-2' },\n ] },\n ] },\n { type: 'divider' },\n { type: 'stack', direction: 'horizontal', gap: 'md', align: 'center', children: [\n { type: 'typography', variant: 'caption', color: 'muted', content: 'Last action:' },\n { type: 'badge', label: '@entity.current' },\n ] },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'PUSH', name: 'Push', payload: [{ name: 'data', type: 'string', required: true }] },\n { key: 'UNDO', name: 'Undo' },\n { key: 'REDO', name: 'Redo' },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n // INIT\n { from: 'idle', to: 'idle', event: 'INIT', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', mainView],\n ] },\n // PUSH: save current to undoStack, set current to new value, clear redoStack\n { from: 'idle', to: 'idle', event: 'PUSH', effects: [\n ['set', '@entity.undoStack', ['array/append', '@entity.undoStack', '@entity.current']],\n ['set', '@entity.current', '@payload.data'],\n ['set', '@entity.redoStack', []],\n ['render-ui', 'main', mainView],\n ] },\n // UNDO: push current to redoStack, pop last from undoStack to current\n { from: 'idle', to: 'idle', event: 'UNDO', effects: [\n ['set', '@entity.redoStack', ['array/append', '@entity.redoStack', '@entity.current']],\n ['set', '@entity.current', ['array/last', '@entity.undoStack']],\n ['set', '@entity.undoStack', ['array/slice', '@entity.undoStack', 0, -1]],\n ['render-ui', 'main', mainView],\n ] },\n // REDO: push current to undoStack, pop last from redoStack to current\n { from: 'idle', to: 'idle', event: 'REDO', effects: [\n ['set', '@entity.undoStack', ['array/append', '@entity.undoStack', '@entity.current']],\n ['set', '@entity.current', ['array/last', '@entity.redoStack']],\n ['set', '@entity.redoStack', ['array/slice', '@entity.redoStack', 0, -1]],\n ['render-ui', 'main', mainView],\n ] },\n // CLEAR: empty both stacks, clear current\n { from: 'idle', to: 'idle', event: 'CLEAR', effects: [\n ['set', '@entity.undoStack', []],\n ['set', '@entity.redoStack', []],\n ['set', '@entity.current', ''],\n ['render-ui', 'main', mainView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: UndoConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdUndoEntity(params: StdUndoParams): Entity { return buildEntity(resolve(params)); }\nexport function stdUndoTrait(params: StdUndoParams): Trait { return buildTrait(resolve(params)); }\nexport function stdUndoPage(params: StdUndoParams): Page { return buildPage(resolve(params)); }\n\nexport function stdUndo(params: StdUndoParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-input as a Function\n *\n * Input state management parameterized for any domain.\n * Provides idle, focused, and validating states with change tracking.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family input\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdInputParams {\n /** Entity name in PascalCase (e.g., \"Field\", \"TextInput\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Input label */\n inputLabel?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}InputPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/input\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface InputConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n inputLabel: string;\n placeholder: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdInputParams): InputConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure input-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'value') ? [] : [{ name: 'value', type: 'string' as const, default: '' }]),\n ...(baseFields.some(f => f.name === 'inputStatus') ? [] : [{ name: 'inputStatus', type: 'string' as const, default: 'idle' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Input`,\n pluralName: p,\n inputLabel: params.inputLabel ?? entityName,\n placeholder: params.placeholder ?? `Enter ${entityName.toLowerCase()}...`,\n headerIcon: params.headerIcon ?? 'text-cursor-input',\n pageName: params.pageName ?? `${entityName}InputPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/input`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: InputConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: InputConfig): Trait {\n const { entityName, inputLabel, placeholder, headerIcon } = c;\n\n const inputView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: inputLabel, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n // Form field pattern: label above, input below, help text below input\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'caption', content: inputLabel },\n { type: 'input', placeholder, event: 'CHANGE' },\n // show current entered value as status below the field (not a mystery bar)\n { type: 'typography', variant: 'caption', color: 'muted',\n content: '@entity.value' },\n ],\n },\n ],\n };\n\n const validatingView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: inputLabel, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'caption', content: inputLabel },\n { type: 'input', placeholder, event: 'CHANGE' },\n // semantic validation message — shown only in validating state\n { type: 'typography', variant: 'caption', color: 'muted',\n content: 'Validating...' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'focused' },\n { name: 'validating' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FOCUS', name: 'Focus' },\n { key: 'BLUR', name: 'Blur' },\n { key: 'CHANGE', name: 'Change', payload: [{ name: 'value', type: 'string', required: true }] },\n { key: 'VALIDATE', name: 'Validate' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', inputView],\n ],\n },\n // FOCUS: idle -> focused\n {\n from: 'idle', to: 'focused', event: 'FOCUS',\n effects: [\n ['set', '@entity.inputStatus', 'focused'],\n ['render-ui', 'main', inputView],\n ],\n },\n // CHANGE: focused -> focused\n {\n from: 'focused', to: 'focused', event: 'CHANGE',\n effects: [\n ['set', '@entity.value', '@payload.value'],\n ['render-ui', 'main', inputView],\n ],\n },\n // BLUR: focused -> idle\n {\n from: 'focused', to: 'idle', event: 'BLUR',\n effects: [\n ['set', '@entity.inputStatus', 'idle'],\n ['render-ui', 'main', inputView],\n ],\n },\n // VALIDATE: focused -> validating\n {\n from: 'focused', to: 'validating', event: 'VALIDATE',\n effects: [\n ['set', '@entity.inputStatus', 'validating'],\n ['render-ui', 'main', validatingView],\n ],\n },\n // BLUR: validating -> idle\n {\n from: 'validating', to: 'idle', event: 'BLUR',\n effects: [\n ['set', '@entity.inputStatus', 'idle'],\n ['render-ui', 'main', inputView],\n ],\n },\n // INIT: focused -> focused (self-loop)\n {\n from: 'focused', to: 'focused', event: 'INIT',\n effects: [\n ['render-ui', 'main', inputView],\n ],\n },\n // INIT: validating -> validating (self-loop)\n {\n from: 'validating', to: 'validating', event: 'INIT',\n effects: [\n ['render-ui', 'main', validatingView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: InputConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdInputEntity(params: StdInputParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdInputTrait(params: StdInputParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdInputPage(params: StdInputParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdInput(params: StdInputParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-wizard\n *\n * Multi-step wizard behavior parameterized for any domain.\n * Generates a dynamic number of steps based on the `steps` parameter,\n * with a review screen and completion view.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family workflow\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport type { Entity } from '@almadar/core/types';\nimport type { Page } from '@almadar/core/types';\nimport type { Trait } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdWizardParams {\n /** Entity name in PascalCase (e.g., \"Onboarding\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Collection name for persistent entities (defaults to lowercase plural) */\n collection?: string;\n\n /** Wizard steps: each step has a name and the fields it displays */\n steps: Array<{\n name: string;\n fields: string[];\n }>;\n\n // Labels\n /** Wizard title (defaults to \"Setup Wizard\") */\n wizardTitle?: string;\n /** Completion title (defaults to \"Complete!\") */\n completeTitle?: string;\n /** Completion description (defaults to \"Your {entity} has been created successfully.\") */\n completeDescription?: string;\n /** Submit button label on review (defaults to \"Complete\") */\n submitButtonLabel?: string;\n\n // Icons\n /** Header icon (Lucide name, defaults to \"clipboard\") */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}Page\") */\n pageName?: string;\n /** Route path (defaults to \"/wizard\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface WizardConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n steps: Array<{ name: string; fields: string[] }>;\n totalSteps: number;\n wizardProgressSteps: string[];\n traitName: string;\n wizardTitle: string;\n completeTitle: string;\n completeDescription: string;\n submitButtonLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdWizardParams): WizardConfig {\n const { entityName, steps } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n\n return {\n entityName,\n fields,\n nonIdFields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n steps,\n totalSteps: steps.length,\n wizardProgressSteps: steps.map(s => s.name),\n traitName: `${entityName}Wizard`,\n wizardTitle: params.wizardTitle ?? 'Setup Wizard',\n completeTitle: params.completeTitle ?? 'Complete!',\n completeDescription: params.completeDescription ?? `Your ${entityName.toLowerCase()} has been created successfully.`,\n submitButtonLabel: params.submitButtonLabel ?? 'Complete',\n headerIcon: params.headerIcon ?? 'clipboard',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? '/wizard',\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: WizardConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildStepUI(c: WizardConfig, stepIndex: number): Record<string, unknown> {\n const step = c.steps[stepIndex];\n const stepNumber = stepIndex + 1;\n const isFirst = stepIndex === 0;\n\n const navButtons: unknown[] = [];\n if (!isFirst) {\n navButtons.push({ type: 'button', label: 'Back', event: 'PREV', variant: 'ghost', icon: 'arrow-left' });\n }\n navButtons.push({ type: 'button', label: 'Next', event: 'NEXT', variant: 'primary', icon: 'arrow-right' });\n\n return {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: c.headerIcon, size: 'lg' },\n { type: 'typography', content: c.wizardTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: `Step ${stepNumber} of ${c.totalSteps}` },\n { type: 'wizard-progress', steps: c.wizardProgressSteps, currentStep: stepIndex },\n { type: 'divider' },\n { type: 'typography', content: step.name, variant: 'h3' },\n { type: 'form-section', entity: c.entityName, mode: 'create', submitEvent: 'NEXT', cancelEvent: isFirst ? 'INIT' : 'PREV', fields: step.fields },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: navButtons,\n },\n ],\n };\n}\n\nfunction buildReviewUI(c: WizardConfig): Record<string, unknown> {\n const reviewDetailChildren: unknown[] = c.nonIdFields.map(field => ({\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n { type: 'typography', variant: 'caption', content: field.name.charAt(0).toUpperCase() + field.name.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${field.name}` },\n ],\n }));\n\n return {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: c.headerIcon, size: 'lg' },\n { type: 'typography', content: c.wizardTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Review' },\n { type: 'wizard-progress', steps: c.wizardProgressSteps, currentStep: c.totalSteps },\n { type: 'divider' },\n {\n type: 'data-list', entity: c.entityName,\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: reviewDetailChildren,\n },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Back', event: 'PREV', variant: 'ghost', icon: 'arrow-left' },\n { type: 'button', label: c.submitButtonLabel, event: 'COMPLETE', variant: 'primary', icon: 'check' },\n ],\n },\n ],\n };\n}\n\nfunction buildCompleteUI(c: WizardConfig): Record<string, unknown> {\n return {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: c.completeTitle, variant: 'h2' },\n { type: 'typography', content: c.completeDescription, variant: 'body' },\n { type: 'button', label: 'Start New', event: 'RESTART', variant: 'primary', icon: 'refresh-cw' },\n ],\n };\n}\n\nfunction buildTrait(c: WizardConfig): Trait {\n const { entityName, totalSteps } = c;\n\n // States: step1..stepN, review, complete\n const states: Array<{ name: string; isInitial?: boolean }> = [];\n for (let i = 0; i < totalSteps; i++) {\n states.push({ name: `step${i + 1}`, ...(i === 0 ? { isInitial: true } : {}) });\n }\n states.push({ name: 'review' });\n states.push({ name: 'complete' });\n\n // Events\n const events = [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NEXT', name: 'Next Step', payload: [{ name: 'data', type: 'object' as const, required: true }] },\n { key: 'PREV', name: 'Previous Step' },\n { key: 'COMPLETE', name: 'Complete Wizard', payload: [{ name: 'data', type: 'object' as const, required: true }] },\n { key: 'RESTART', name: 'Restart Wizard' },\n ];\n\n // Transitions\n const transitions: unknown[] = [];\n\n // step1 + INIT -> step1\n transitions.push({\n from: 'step1', to: 'step1', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, 0)],\n ],\n });\n\n // stepN + NEXT -> step(N+1) for all but last step\n for (let i = 0; i < totalSteps - 1; i++) {\n transitions.push({\n from: `step${i + 1}`, to: `step${i + 2}`, event: 'NEXT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, i + 1)],\n ],\n });\n }\n\n // last step + NEXT -> review\n transitions.push({\n from: `step${totalSteps}`, to: 'review', event: 'NEXT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildReviewUI(c)],\n ],\n });\n\n // stepN + PREV -> step(N-1) for steps 2..N\n for (let i = 1; i < totalSteps; i++) {\n transitions.push({\n from: `step${i + 1}`, to: `step${i}`, event: 'PREV',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, i - 1)],\n ],\n });\n }\n\n // review + PREV -> last step\n transitions.push({\n from: 'review', to: `step${totalSteps}`, event: 'PREV',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, totalSteps - 1)],\n ],\n });\n\n // review + COMPLETE -> complete\n transitions.push({\n from: 'review', to: 'complete', event: 'COMPLETE',\n effects: [\n ['persist', 'create', entityName, '@payload.data'],\n ['notify', 'success', `${entityName} created successfully`],\n ['render-ui', 'main', buildCompleteUI(c)],\n ],\n });\n\n // complete + RESTART -> step1\n transitions.push({\n from: 'complete', to: 'step1', event: 'RESTART',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, 0)],\n ],\n });\n\n // complete + INIT -> step1\n transitions.push({\n from: 'complete', to: 'step1', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', buildStepUI(c, 0)],\n ],\n });\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states,\n events,\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: WizardConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdWizardEntity(params: StdWizardParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdWizardTrait(params: StdWizardParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdWizardPage(params: StdWizardParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdWizard(params: StdWizardParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-display\n *\n * Read-only display molecule with loading/refresh.\n * Single trait (display is self-contained, no modal atoms needed).\n * Used for dashboards, stats panels, KPIs.\n *\n * @level molecule\n * @family display\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDisplayParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n displayFields?: string[];\n pageTitle?: string;\n refreshButtonLabel?: string;\n headerIcon?: string;\n columns?: number;\n emptyTitle?: string;\n emptyDescription?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DisplayConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n displayFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n refreshButtonLabel: string;\n headerIcon: string;\n columns: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDisplayParams): DisplayConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n displayFields: params.displayFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Display`,\n pageTitle: params.pageTitle ?? p,\n refreshButtonLabel: params.refreshButtonLabel ?? 'Refresh',\n headerIcon: params.headerIcon ?? 'bar-chart-2',\n columns: params.columns ?? 3,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait builder\n// ============================================================================\n\nfunction buildTrait(c: DisplayConfig): Trait {\n const { entityName, displayFields, headerIcon, pageTitle, refreshButtonLabel, columns } = c;\n\n const cardChildren = displayFields.map(f => ({\n type: 'card',\n children: [{\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', variant: 'caption', content: f.charAt(0).toUpperCase() + f.slice(1) },\n { type: 'typography', variant: 'h3', content: `@entity.${f}` },\n ],\n }],\n }));\n\n const mainView = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between', children: [\n { type: 'stack', direction: 'horizontal', gap: 'md', children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ] },\n { type: 'button', label: refreshButtonLabel, event: 'REFRESH', variant: 'secondary', icon: 'refresh-cw' },\n ] },\n { type: 'divider' },\n { type: 'simple-grid', columns, children: cardChildren },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'loading', isInitial: true },\n { name: 'displaying' },\n { name: 'refreshing' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LOADED', name: 'Loaded' },\n { key: 'REFRESH', name: 'Refresh' },\n { key: 'REFRESHED', name: 'Refreshed' },\n ],\n transitions: [\n { from: 'loading', to: 'displaying', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'loading', to: 'displaying', event: 'LOADED', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'displaying', to: 'displaying', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'displaying', to: 'refreshing', event: 'REFRESH', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n { from: 'refreshing', to: 'displaying', event: 'REFRESHED', effects: [['fetch', entityName], ['render-ui', 'main', mainView]] },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nexport function stdDisplayEntity(params: StdDisplayParams): Entity {\n const c = resolve(params);\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nexport function stdDisplayTrait(params: StdDisplayParams): Trait { return buildTrait(resolve(params)); }\n\nexport function stdDisplayPage(params: StdDisplayParams): Page {\n const c = resolve(params);\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDisplay(params: StdDisplayParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection }),\n [buildTrait(c)],\n [makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial })],\n );\n}\n","/**\n * std-async\n *\n * Async operation behavior: idle, loading, success, error.\n * Covers fetch, submit, retry, and polling patterns in one molecule.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family async\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdAsyncParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n loadingMessage?: string;\n successMessage?: string;\n errorMessage?: string;\n\n // Icons\n headerIcon?: string;\n\n // Options\n retryable?: boolean;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface AsyncConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n loadingMessage: string;\n successMessage: string;\n errorMessage: string;\n headerIcon: string;\n retryable: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdAsyncParams): AsyncConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Async`,\n loadingMessage: params.loadingMessage ?? 'Loading...',\n successMessage: params.successMessage ?? 'Operation completed successfully.',\n errorMessage: params.errorMessage ?? 'An error occurred. Please try again.',\n headerIcon: params.headerIcon ?? 'loader',\n retryable: params.retryable ?? true,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: AsyncConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: AsyncConfig): Trait {\n const { entityName, headerIcon, loadingMessage, successMessage, errorMessage, retryable } = c;\n\n // Idle view\n const idleUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n ],\n };\n\n // Loading view\n const loadingUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'loader', size: 'lg' },\n { type: 'typography', content: loadingMessage, variant: 'h3' },\n ],\n };\n\n // Success view\n const successUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: successMessage, variant: 'h3' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n // Error view\n const errorButtons: unknown[] = [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ];\n if (retryable) {\n errorButtons.unshift({ type: 'button', label: 'Retry', event: 'RETRY', variant: 'primary', icon: 'refresh-cw' });\n }\n\n const errorUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'alert-circle', size: 'lg' },\n { type: 'typography', content: errorMessage, variant: 'h3' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: errorButtons,\n },\n ],\n };\n\n const transitions: unknown[] = [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleUI],\n ],\n },\n // START: idle -> loading\n {\n from: 'idle', to: 'loading', event: 'START',\n effects: [['render-ui', 'main', loadingUI]],\n },\n // LOADED: loading -> success\n {\n from: 'loading', to: 'success', event: 'LOADED',\n effects: [\n ['persist', 'create', entityName, '@payload.data'],\n ['render-ui', 'main', successUI],\n ],\n },\n // FAILED: loading -> error\n {\n from: 'loading', to: 'error', event: 'FAILED',\n effects: [['render-ui', 'main', errorUI]],\n },\n // RESET: success -> idle\n {\n from: 'success', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n // RESET: error -> idle\n {\n from: 'error', to: 'idle', event: 'RESET',\n effects: [['render-ui', 'main', idleUI]],\n },\n ];\n\n // RETRY: error -> loading (only if retryable)\n if (retryable) {\n transitions.push({\n from: 'error', to: 'loading', event: 'RETRY',\n effects: [['render-ui', 'main', loadingUI]],\n });\n }\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'loading' },\n { name: 'success' },\n { name: 'error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'LOADED', name: 'Loaded', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'FAILED', name: 'Failed', payload: [{ name: 'error', type: 'string', required: true }] },\n { key: 'RETRY', name: 'Retry' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions,\n },\n } as Trait;\n}\n\nfunction buildPage(c: AsyncConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdAsyncEntity(params: StdAsyncParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdAsyncTrait(params: StdAsyncParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdAsyncPage(params: StdAsyncParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdAsync(params: StdAsyncParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-combat\n *\n * Attack cycle behavior: ready, attacking, cooldown, defeated.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCombatParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n attackLabel?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CombatConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n attackLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCombatParams): CombatConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Combat`,\n attackLabel: params.attackLabel ?? 'Attack',\n headerIcon: params.headerIcon ?? 'swords',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CombatConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: CombatConfig): Trait {\n const { entityName, attackLabel } = c;\n\n // Ready view: game-hud with HP/Attack/Defense stats + Attack button\n const readyUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'game-hud', position: 'top',\n stats: [\n { label: 'HP', value: '@entity.hp' },\n { label: 'Attack', value: '@entity.attack' },\n { label: 'Defense', value: '@entity.defense' },\n ],\n },\n { type: 'button', label: attackLabel, event: 'ATTACK', variant: 'primary', icon: 'swords' },\n ],\n };\n\n // Attacking view: game-hud + Cooldown End button\n const attackingUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'game-hud', position: 'top',\n stats: [\n { label: 'HP', value: '@entity.hp' },\n { label: 'Attack', value: '@entity.attack' },\n { label: 'Defense', value: '@entity.defense' },\n ],\n },\n { type: 'button', label: 'Cooldown End', event: 'HIT', variant: 'secondary', icon: 'clock' },\n ],\n };\n\n // Cooldown view: game-hud + badge showing cooldown status\n const cooldownUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'game-hud', position: 'top',\n stats: [\n { label: 'HP', value: '@entity.hp' },\n { label: 'Attack', value: '@entity.attack' },\n { label: 'Defense', value: '@entity.defense' },\n ],\n },\n { type: 'badge', label: 'Cooling down...' },\n ],\n };\n\n // Defeated view: game-over-screen with title + Reset button\n const defeatedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'game-over-screen', title: 'Defeated', variant: 'defeat' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'ready', isInitial: true },\n { name: 'attacking' },\n { name: 'cooldown' },\n { name: 'defeated' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ATTACK', name: 'Attack', payload: [{ name: 'targetId', type: 'string', required: true }] },\n { key: 'HIT', name: 'Hit', payload: [{ name: 'damage', type: 'number', required: true }] },\n { key: 'COOLDOWN_END', name: 'Cooldown End' },\n { key: 'DEFEAT', name: 'Defeat' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT: ready -> ready\n {\n from: 'ready', to: 'ready', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', readyUI],\n ],\n },\n // ATTACK: ready -> attacking\n {\n from: 'ready', to: 'attacking', event: 'ATTACK',\n effects: [['render-ui', 'main', attackingUI]],\n },\n // HIT: attacking -> cooldown\n {\n from: 'attacking', to: 'cooldown', event: 'HIT',\n effects: [['render-ui', 'main', cooldownUI]],\n },\n // COOLDOWN_END: cooldown -> ready\n {\n from: 'cooldown', to: 'ready', event: 'COOLDOWN_END',\n effects: [['render-ui', 'main', readyUI]],\n },\n // DEFEAT: attacking -> defeated\n {\n from: 'attacking', to: 'defeated', event: 'DEFEAT',\n effects: [['render-ui', 'main', defeatedUI]],\n },\n // DEFEAT: cooldown -> defeated\n {\n from: 'cooldown', to: 'defeated', event: 'DEFEAT',\n effects: [['render-ui', 'main', defeatedUI]],\n },\n // RESET: defeated -> ready\n {\n from: 'defeated', to: 'ready', event: 'RESET',\n effects: [['render-ui', 'main', readyUI]],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CombatConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCombatEntity(params: StdCombatParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCombatTrait(params: StdCombatParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCombatPage(params: StdCombatParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCombat(params: StdCombatParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-gameflow\n *\n * Game state management behavior: menu, playing, paused, gameover.\n * Uses game UI patterns per state:\n * menu -> game-menu (title, subtitle, Start Game button)\n * playing -> game-hud (score, level stats)\n * paused -> game-menu in modal (Resume, Quit buttons)\n * gameover -> game-over-screen (score, Play Again, Main Menu)\n *\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameflowParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n gameTitle?: string;\n menuTitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameflowConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n menuTitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameflowParams): GameflowConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Gameflow`,\n gameTitle: params.gameTitle ?? entityName,\n menuTitle: params.menuTitle ?? 'Main Menu',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Game Over',\n headerIcon: params.headerIcon ?? 'gamepad-2',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: GameflowConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: GameflowConfig): Trait {\n const { entityName, gameTitle, menuTitle, pauseTitle, gameoverTitle } = c;\n\n // Menu state: game-menu with Start Game button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuTitle,\n menuItems: [\n { label: 'Start Game', event: 'START', variant: 'primary' },\n ],\n };\n\n // Playing state: game-hud with score/level stats\n const playingUI = {\n type: 'game-hud',\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n };\n\n // Paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // Game over state: game-over-screen with score and actions\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Level', value: '@entity.level' },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Game Over' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameflowConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdGameflowEntity(params: StdGameflowParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdGameflowTrait(params: StdGameflowParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdGameflowPage(params: StdGameflowParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdGameflow(params: StdGameflowParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-movement\n *\n * Entity movement behavior: idle, moving, collision detection and resolution.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family simulation\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdMovementParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n pageTitle?: string;\n\n // Icons\n headerIcon?: string;\n\n // Config\n moveSpeed?: number;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface MovementConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n headerIcon: string;\n moveSpeed: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdMovementParams): MovementConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Movement`,\n pageTitle: params.pageTitle ?? `${p} Movement`,\n headerIcon: params.headerIcon ?? 'move',\n moveSpeed: params.moveSpeed ?? 1,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: MovementConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: MovementConfig): Trait {\n const { entityName, nonIdFields, headerIcon, pageTitle } = c;\n\n // Entity field summary for display\n const fieldSummaryChildren: unknown[] = nonIdFields.slice(0, 4).map(field => ({\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', variant: 'caption', content: field.name.charAt(0).toUpperCase() + field.name.slice(1) },\n { type: 'typography', variant: 'body', content: `@entity.${field.name}` },\n ],\n }));\n\n // Idle main view\n const idleMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Idle' },\n ],\n },\n { type: 'divider' },\n ...fieldSummaryChildren,\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Move', event: 'MOVE', variant: 'primary', icon: 'navigation' },\n ],\n },\n ],\n };\n\n // Moving view\n const movingMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Moving' },\n ],\n },\n { type: 'divider' },\n ...fieldSummaryChildren,\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Stop', event: 'STOP', variant: 'danger', icon: 'square' },\n ],\n },\n ],\n };\n\n // Collision modal\n const collisionModalUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'icon', name: 'alert-triangle', size: 'md' },\n { type: 'typography', content: 'Collision Detected', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: 'A collision has been detected. Resolve to continue.', variant: 'body' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Cancel', event: 'CANCEL', variant: 'ghost' },\n { type: 'button', label: 'Resolve', event: 'RESOLVE', variant: 'primary', icon: 'check' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'moving' },\n { name: 'colliding' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'MOVE', name: 'Move', payload: [{ name: 'x', type: 'number', required: true }, { name: 'y', type: 'number', required: true }] },\n { key: 'STOP', name: 'Stop' },\n { key: 'COLLISION', name: 'Collision', payload: [{ name: 'targetId', type: 'string', required: true }] },\n { key: 'RESOLVE', name: 'Resolve' },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n // INIT: idle -> idle (fetch + render)\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // MOVE: idle -> moving\n {\n from: 'idle', to: 'moving', event: 'MOVE',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', movingMainUI],\n ],\n },\n // STOP: moving -> idle\n {\n from: 'moving', to: 'idle', event: 'STOP',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // COLLISION: moving -> colliding\n {\n from: 'moving', to: 'colliding', event: 'COLLISION',\n effects: [\n ['render-ui', 'modal', collisionModalUI],\n ],\n },\n // RESOLVE: colliding -> idle\n {\n from: 'colliding', to: 'idle', event: 'RESOLVE',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // CANCEL: colliding -> idle\n {\n from: 'colliding', to: 'idle', event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n // CLOSE: colliding -> idle\n {\n from: 'colliding', to: 'idle', event: 'CLOSE',\n effects: [\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', idleMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: MovementConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdMovementEntity(params: StdMovementParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdMovementTrait(params: StdMovementParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdMovementPage(params: StdMovementParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdMovement(params: StdMovementParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-quest\n *\n * Quest/objective tracking behavior: available, active, complete, failed.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family gameplay\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdQuestParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n formFields?: string[];\n\n // Labels\n pageTitle?: string;\n questTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface QuestConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n formFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n questTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdQuestParams): QuestConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n formFields: params.formFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Tracking`,\n pageTitle: params.pageTitle ?? `${p} Board`,\n questTitle: params.questTitle ?? entityName,\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} available`,\n emptyDescription: params.emptyDescription ?? `Check back later for new ${p.toLowerCase()}.`,\n headerIcon: params.headerIcon ?? 'flag',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: QuestConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: QuestConfig): Trait {\n const { entityName, listFields, formFields, headerIcon } = c;\n const { pageTitle, emptyTitle, emptyDescription } = c;\n\n // List item children for data-grid\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@entity.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@entity.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({ type: 'typography', variant: 'caption', content: `@entity.${listFields[2]}` });\n }\n\n // Header bar\n const headerBar = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n ],\n };\n\n // Available quests view (browsing)\n const availableMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n headerBar,\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle, emptyDescription,\n itemActions: [{ label: 'Accept', event: 'ACCEPT' }],\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Active quest view\n const activeMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Active' },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle: 'No active quests', emptyDescription: 'Accept a quest to begin.',\n itemActions: [\n { label: 'Progress', event: 'PROGRESS' },\n { label: 'Complete', event: 'COMPLETE' },\n { label: 'Fail', event: 'FAIL', variant: 'danger' },\n ],\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Complete view\n const completeMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'check-circle', size: 'lg' },\n { type: 'typography', content: 'Quest Complete', variant: 'h2' },\n { type: 'typography', content: 'Congratulations! The quest has been completed.', variant: 'body' },\n { type: 'button', label: 'View Quests', event: 'RESET', variant: 'primary', icon: 'arrow-left' },\n ],\n };\n\n // Failed view\n const failedMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'icon', name: 'x-circle', size: 'lg' },\n { type: 'typography', content: 'Quest Failed', variant: 'h2' },\n { type: 'typography', content: 'The quest was not completed. You can try again.', variant: 'body' },\n { type: 'button', label: 'View Quests', event: 'RESET', variant: 'primary', icon: 'arrow-left' },\n ],\n };\n\n // Progress modal\n const progressModalUI = {\n type: 'stack', direction: 'vertical', gap: 'md',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'icon', name: 'trending-up', size: 'md' },\n { type: 'typography', content: 'Update Progress', variant: 'h3' },\n ],\n },\n { type: 'divider' },\n { type: 'form-section', entity: entityName, mode: 'edit', submitEvent: 'SAVE', cancelEvent: 'CANCEL', fields: formFields },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'available', isInitial: true },\n { name: 'active' },\n { name: 'progressing' },\n { name: 'complete' },\n { name: 'failed' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ACCEPT', name: 'Accept' },\n { key: 'PROGRESS', name: 'Progress', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'SAVE', name: 'Save', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'FAIL', name: 'Fail' },\n { key: 'RESET', name: 'Reset' },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n // INIT: available -> available\n {\n from: 'available', to: 'available', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', availableMainUI],\n ],\n },\n // ACCEPT: available -> active\n {\n from: 'available', to: 'active', event: 'ACCEPT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // INIT: active -> active (refresh)\n {\n from: 'active', to: 'active', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // PROGRESS: active -> progressing (modal)\n {\n from: 'active', to: 'progressing', event: 'PROGRESS',\n effects: [\n ['render-ui', 'modal', progressModalUI],\n ],\n },\n // SAVE: progressing -> active\n {\n from: 'progressing', to: 'active', event: 'SAVE',\n effects: [\n ['persist', 'update', entityName, '@payload.data'],\n ['render-ui', 'modal', null],\n ['fetch', entityName],\n ['render-ui', 'main', activeMainUI],\n ],\n },\n // CANCEL: progressing -> active\n {\n from: 'progressing', to: 'active', event: 'CANCEL',\n effects: [['render-ui', 'modal', null]],\n },\n // CLOSE: progressing -> active\n {\n from: 'progressing', to: 'active', event: 'CLOSE',\n effects: [['render-ui', 'modal', null]],\n },\n // COMPLETE: active -> complete\n {\n from: 'active', to: 'complete', event: 'COMPLETE',\n effects: [\n ['render-ui', 'main', completeMainUI],\n ],\n },\n // FAIL: active -> failed\n {\n from: 'active', to: 'failed', event: 'FAIL',\n effects: [\n ['render-ui', 'main', failedMainUI],\n ],\n },\n // RESET: complete -> available\n {\n from: 'complete', to: 'available', event: 'RESET',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', availableMainUI],\n ],\n },\n // RESET: failed -> available\n {\n from: 'failed', to: 'available', event: 'RESET',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', availableMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: QuestConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdQuestEntity(params: StdQuestParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdQuestTrait(params: StdQuestParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdQuestPage(params: StdQuestParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdQuest(params: StdQuestParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-overworld\n *\n * Map/zone navigation behavior: exploring, transitioning, entered.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family navigation\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdOverworldParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n\n // Labels\n pageTitle?: string;\n worldTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface OverworldConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n worldTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdOverworldParams): OverworldConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}Navigation`,\n pageTitle: params.pageTitle ?? `${p} Map`,\n worldTitle: params.worldTitle ?? 'World Map',\n emptyTitle: params.emptyTitle ?? `No ${p.toLowerCase()} discovered`,\n emptyDescription: params.emptyDescription ?? `Explore to discover new ${p.toLowerCase()}.`,\n headerIcon: params.headerIcon ?? 'map',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: OverworldConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: OverworldConfig): Trait {\n const { entityName, listFields, headerIcon } = c;\n const { pageTitle, worldTitle, emptyTitle, emptyDescription } = c;\n\n // List item children for data-grid\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: 'map-pin', size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@entity.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@entity.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({ type: 'typography', variant: 'caption', content: `@entity.${listFields[2]}` });\n }\n\n // Exploring main view\n const exploringMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: worldTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Exploring' },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'compass', emptyTitle, emptyDescription,\n itemActions: [{ label: 'Travel', event: 'TRAVEL' }],\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Transitioning view\n const transitioningMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: 'loader', size: 'lg' },\n { type: 'typography', content: 'Traveling...', variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'typography', content: `Traveling to the destination ${pageTitle.toLowerCase()}.`, variant: 'body' },\n ],\n };\n\n // Entered zone view\n const enteredMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'badge', label: 'Entered' },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle: 'Nothing here', emptyDescription: 'This zone is empty.',\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n { type: 'divider' },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'end',\n children: [\n { type: 'button', label: 'Back to Map', event: 'BACK', variant: 'ghost', icon: 'arrow-left' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'exploring', isInitial: true },\n { name: 'transitioning' },\n { name: 'entered' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TRAVEL', name: 'Travel', payload: [{ name: 'zoneId', type: 'string', required: true }] },\n { key: 'ARRIVE', name: 'Arrive' },\n { key: 'BACK', name: 'Back' },\n ],\n transitions: [\n // INIT: exploring -> exploring\n {\n from: 'exploring', to: 'exploring', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', exploringMainUI],\n ],\n },\n // TRAVEL: exploring -> transitioning\n {\n from: 'exploring', to: 'transitioning', event: 'TRAVEL',\n effects: [\n ['render-ui', 'main', transitioningMainUI],\n ],\n },\n // ARRIVE: transitioning -> entered\n {\n from: 'transitioning', to: 'entered', event: 'ARRIVE',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', enteredMainUI],\n ],\n },\n // BACK: entered -> exploring\n {\n from: 'entered', to: 'exploring', event: 'BACK',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', exploringMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: OverworldConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdOverworldEntity(params: StdOverworldParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdOverworldTrait(params: StdOverworldParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdOverworldPage(params: StdOverworldParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdOverworld(params: StdOverworldParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-circuit-breaker\n *\n * Circuit breaker pattern behavior: closed, open, halfOpen.\n * Protects services from cascading failures with automatic recovery.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family resilience\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCircuitBreakerParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Labels\n closedLabel?: string;\n openLabel?: string;\n halfOpenLabel?: string;\n\n // Icons\n headerIcon?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CircuitBreakerConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n closedLabel: string;\n openLabel: string;\n halfOpenLabel: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCircuitBreakerParams): CircuitBreakerConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}CircuitBreaker`,\n closedLabel: params.closedLabel ?? 'Circuit Closed',\n openLabel: params.openLabel ?? 'Circuit Open',\n halfOpenLabel: params.halfOpenLabel ?? 'Circuit Half-Open',\n headerIcon: params.headerIcon ?? 'shield',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CircuitBreakerConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: CircuitBreakerConfig): Trait {\n const { entityName, headerIcon, closedLabel, openLabel, halfOpenLabel } = c;\n\n // Closed view (healthy, accepting requests)\n const closedUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: closedLabel },\n { type: 'typography', content: 'Service is healthy. All requests are being processed.', variant: 'body' },\n ],\n };\n\n // Open view (tripped, rejecting requests)\n const openUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'alert-triangle', size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: openLabel },\n { type: 'typography', content: 'Circuit is open. Requests are being rejected to prevent cascading failures.', variant: 'body' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n };\n\n // Half-open view (testing recovery)\n const halfOpenUI = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: 'activity', size: 'lg' },\n { type: 'typography', content: entityName, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n { type: 'badge', label: halfOpenLabel },\n { type: 'typography', content: 'Testing recovery. Limited requests are being allowed through.', variant: 'body' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'closed', isInitial: true },\n { name: 'open' },\n { name: 'halfOpen' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FAILURE', name: 'Failure' },\n { key: 'SUCCESS', name: 'Success' },\n { key: 'TIMEOUT', name: 'Timeout' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT: closed -> closed\n {\n from: 'closed', to: 'closed', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', closedUI],\n ],\n },\n // FAILURE: closed -> open (threshold reached)\n {\n from: 'closed', to: 'open', event: 'FAILURE',\n effects: [['render-ui', 'main', openUI]],\n },\n // SUCCESS: closed -> closed (healthy)\n {\n from: 'closed', to: 'closed', event: 'SUCCESS',\n effects: [['render-ui', 'main', closedUI]],\n },\n // TIMEOUT: open -> halfOpen (try recovery)\n {\n from: 'open', to: 'halfOpen', event: 'TIMEOUT',\n effects: [['render-ui', 'main', halfOpenUI]],\n },\n // RESET: open -> closed (manual reset)\n {\n from: 'open', to: 'closed', event: 'RESET',\n effects: [['render-ui', 'main', closedUI]],\n },\n // SUCCESS: halfOpen -> closed (recovered)\n {\n from: 'halfOpen', to: 'closed', event: 'SUCCESS',\n effects: [['render-ui', 'main', closedUI]],\n },\n // FAILURE: halfOpen -> open (still failing)\n {\n from: 'halfOpen', to: 'open', event: 'FAILURE',\n effects: [['render-ui', 'main', openUI]],\n },\n // RESET: halfOpen -> closed (manual reset)\n {\n from: 'halfOpen', to: 'closed', event: 'RESET',\n effects: [['render-ui', 'main', closedUI]],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CircuitBreakerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCircuitBreakerEntity(params: StdCircuitBreakerParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCircuitBreakerTrait(params: StdCircuitBreakerParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCircuitBreakerPage(params: StdCircuitBreakerParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCircuitBreaker(params: StdCircuitBreakerParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-cache-aside\n *\n * Cache management behavior: empty, cached, stale with fetch/invalidate cycle.\n * Pure function: params in, OrbitalDefinition out.\n *\n * @level molecule\n * @family infrastructure\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCacheAsideParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Display\n listFields?: string[];\n\n // Labels\n pageTitle?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n\n // Icons\n headerIcon?: string;\n\n // Config\n ttl?: number;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CacheAsideConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n listFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n pageTitle: string;\n emptyTitle: string;\n emptyDescription: string;\n headerIcon: string;\n ttl: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCacheAsideParams): CacheAsideConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n nonIdFields,\n listFields: params.listFields ?? nonIdFields.slice(0, 3).map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}CacheManager`,\n pageTitle: params.pageTitle ?? `${p} Cache`,\n emptyTitle: params.emptyTitle ?? 'Cache is empty',\n emptyDescription: params.emptyDescription ?? 'Fetch data to populate the cache.',\n headerIcon: params.headerIcon ?? 'database',\n ttl: params.ttl ?? 300,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CacheAsideConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildTrait(c: CacheAsideConfig): Trait {\n const { entityName, listFields, headerIcon } = c;\n const { pageTitle, emptyTitle, emptyDescription } = c;\n\n // List item children for data-grid\n const listItemChildren: unknown[] = [\n {\n type: 'stack', direction: 'horizontal', justify: 'space-between', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'sm' },\n { type: 'typography', variant: 'h4', content: `@entity.${listFields[0] ?? 'id'}` },\n ],\n },\n ...(listFields.length > 1 ? [{ type: 'badge', label: `@entity.${listFields[1]}` }] : []),\n ],\n },\n ];\n if (listFields.length > 2) {\n listItemChildren.push({ type: 'typography', variant: 'caption', content: `@entity.${listFields[2]}` });\n }\n\n // Header bar\n const headerBar = {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'button', label: 'Fetch', event: 'FETCH', variant: 'primary', icon: 'download' },\n ],\n };\n\n // Empty state main view\n const emptyMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n headerBar,\n { type: 'divider' },\n { type: 'empty-state', icon: 'inbox', title: emptyTitle, description: emptyDescription },\n ],\n };\n\n // Cached state main view\n const cachedMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'badge', label: 'Cached' },\n { type: 'button', label: 'Invalidate', event: 'INVALIDATE', variant: 'ghost', icon: 'trash' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle, emptyDescription,\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n // Stale state main view\n const staleMainUI = {\n type: 'stack', direction: 'vertical', gap: 'lg',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', justify: 'space-between',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm',\n children: [\n { type: 'badge', label: 'Stale' },\n { type: 'button', label: 'Refresh', event: 'REFRESH', variant: 'primary', icon: 'refresh-cw' },\n ],\n },\n ],\n },\n { type: 'divider' },\n {\n type: 'data-grid', entity: entityName, emptyIcon: 'inbox', emptyTitle, emptyDescription,\n children: [{ type: 'stack', direction: 'vertical', gap: 'sm', children: listItemChildren }],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'empty', isInitial: true },\n { name: 'cached' },\n { name: 'stale' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FETCH', name: 'Fetch' },\n { key: 'CACHED', name: 'Cached', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'INVALIDATE', name: 'Invalidate' },\n { key: 'REFRESH', name: 'Refresh' },\n ],\n transitions: [\n // INIT: empty -> empty\n {\n from: 'empty', to: 'empty', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', emptyMainUI],\n ],\n },\n // FETCH: empty -> cached\n {\n from: 'empty', to: 'cached', event: 'FETCH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // INIT: cached -> cached (refresh)\n {\n from: 'cached', to: 'cached', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // CACHED: cached -> cached (update with new data)\n {\n from: 'cached', to: 'cached', event: 'CACHED',\n effects: [\n ['persist', 'update', entityName, '@payload.data'],\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // INVALIDATE: cached -> stale\n {\n from: 'cached', to: 'stale', event: 'INVALIDATE',\n effects: [\n ['render-ui', 'main', staleMainUI],\n ],\n },\n // REFRESH: stale -> cached\n {\n from: 'stale', to: 'cached', event: 'REFRESH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n // FETCH: stale -> cached (same as refresh)\n {\n from: 'stale', to: 'cached', event: 'FETCH',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', cachedMainUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CacheAsideConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCacheAsideEntity(params: StdCacheAsideParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCacheAsideTrait(params: StdCacheAsideParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCacheAsidePage(params: StdCacheAsideParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCacheAside(params: StdCacheAsideParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-score as a Function\n *\n * Score tracking parameterized for any domain.\n * Provides a single-state machine with self-loops for adding, subtracting,\n * resetting, and applying combo multipliers to a score.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family score\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdScoreParams {\n /** Entity name in PascalCase (e.g., \"Points\", \"GameScore\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Score title */\n scoreTitle?: string;\n /** Header icon (Lucide name) */\n headerIcon?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}ScorePage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/score\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ScoreConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n scoreTitle: string;\n headerIcon: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdScoreParams): ScoreConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure score-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'total') ? [] : [{ name: 'total', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'combo') ? [] : [{ name: 'combo', type: 'number' as const, default: 1 }]),\n ...(baseFields.some(f => f.name === 'points') ? [] : [{ name: 'points', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'multiplier') ? [] : [{ name: 'multiplier', type: 'number' as const, default: 1 }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Score`,\n pluralName: p,\n scoreTitle: params.scoreTitle ?? 'Score',\n headerIcon: params.headerIcon ?? 'trophy',\n pageName: params.pageName ?? `${entityName}ScorePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/score`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: ScoreConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ScoreConfig): Trait {\n const { entityName } = c;\n\n const scoreView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'score-board',\n score: '@entity.total',\n highScore: 0,\n combo: '@entity.combo',\n multiplier: 1,\n level: 1,\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Add', event: 'ADD', variant: 'primary', icon: 'plus' },\n { type: 'button', label: 'Subtract', event: 'SUBTRACT', variant: 'secondary', icon: 'minus' },\n { type: 'button', label: 'Combo', event: 'COMBO', variant: 'secondary', icon: 'zap' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADD', name: 'Add Points', payload: [{ name: 'points', type: 'number', required: true }] },\n { key: 'SUBTRACT', name: 'Subtract Points', payload: [{ name: 'points', type: 'number', required: true }] },\n { key: 'RESET', name: 'Reset' },\n { key: 'COMBO', name: 'Combo', payload: [{ name: 'multiplier', type: 'number', required: true }] },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', scoreView],\n ],\n },\n // ADD: idle -> idle (self-loop)\n {\n from: 'idle', to: 'idle', event: 'ADD',\n effects: [\n ['set', '@entity.points', '@payload.points'],\n ['render-ui', 'main', scoreView],\n ],\n },\n // SUBTRACT: idle -> idle (self-loop)\n {\n from: 'idle', to: 'idle', event: 'SUBTRACT',\n effects: [\n ['set', '@entity.points', '@payload.points'],\n ['render-ui', 'main', scoreView],\n ],\n },\n // COMBO: idle -> idle (self-loop)\n {\n from: 'idle', to: 'idle', event: 'COMBO',\n effects: [\n ['set', '@entity.multiplier', '@payload.multiplier'],\n ['render-ui', 'main', scoreView],\n ],\n },\n // RESET: idle -> idle (self-loop)\n {\n from: 'idle', to: 'idle', event: 'RESET',\n effects: [\n ['set', '@entity.total', 0],\n ['set', '@entity.combo', 1],\n ['render-ui', 'main', scoreView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: ScoreConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdScoreEntity(params: StdScoreParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdScoreTrait(params: StdScoreParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdScorePage(params: StdScoreParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdScore(params: StdScoreParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-collision as a Function\n *\n * Game collision detection parameterized for any domain.\n * Provides idle and detecting states for checking collisions\n * between game entities. Tracks collision targets via entity fields.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family collision\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCollisionParams {\n /** Entity name in PascalCase (e.g., \"Hitbox\", \"Collider\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}CollisionPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/collision\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CollisionConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCollisionParams): CollisionConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure collision-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'x') ? [] : [{ name: 'x', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'y') ? [] : [{ name: 'y', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'collisionStatus') ? [] : [{ name: 'collisionStatus', type: 'string' as const, default: 'idle' }]),\n ...(baseFields.some(f => f.name === 'targetId') ? [] : [{ name: 'targetId', type: 'string' as const, default: '' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Collision`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'crosshair',\n pageTitle: params.pageTitle ?? `${entityName} Collision`,\n pageName: params.pageName ?? `${entityName}CollisionPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/collision`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: CollisionConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: CollisionConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', content: 'Position', variant: 'caption' },\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', content: '@entity.x', variant: 'body' },\n { type: 'typography', content: '@entity.y', variant: 'body' },\n ],\n },\n { type: 'badge', label: '@entity.collisionStatus' },\n ],\n },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Check', event: 'CHECK', variant: 'primary', icon: 'scan' },\n ],\n },\n ],\n };\n\n const detectingView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', content: 'Position', variant: 'caption' },\n {\n type: 'stack', direction: 'horizontal', gap: 'md',\n children: [\n { type: 'typography', content: '@entity.x', variant: 'body' },\n { type: 'typography', content: '@entity.y', variant: 'body' },\n ],\n },\n { type: 'badge', label: 'Detecting...' },\n { type: 'typography', content: '@entity.targetId', variant: 'body' },\n ],\n },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Clear', event: 'CLEAR', variant: 'ghost', icon: 'x' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'detecting' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CHECK', name: 'Check Collision' },\n { key: 'COLLISION_DETECTED', name: 'Collision Detected', payload: [{ name: 'targetId', type: 'string', required: true }] },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', idleView],\n ],\n },\n // CHECK: idle -> detecting\n {\n from: 'idle', to: 'detecting', event: 'CHECK',\n effects: [\n ['set', '@entity.collisionStatus', 'detecting'],\n ['render-ui', 'main', detectingView],\n ],\n },\n // COLLISION_DETECTED: detecting -> detecting (self-loop)\n {\n from: 'detecting', to: 'detecting', event: 'COLLISION_DETECTED',\n effects: [\n ['set', '@entity.targetId', '@payload.targetId'],\n ['set', '@entity.collisionStatus', 'detected'],\n ['render-ui', 'main', detectingView],\n ],\n },\n // CLEAR: detecting -> idle\n {\n from: 'detecting', to: 'idle', event: 'CLEAR',\n effects: [\n ['set', '@entity.collisionStatus', 'idle'],\n ['set', '@entity.targetId', ''],\n ['render-ui', 'main', idleView],\n ],\n },\n // INIT: detecting -> detecting (self-loop)\n {\n from: 'detecting', to: 'detecting', event: 'INIT',\n effects: [\n ['render-ui', 'main', detectingView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CollisionConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdCollisionEntity(params: StdCollisionParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdCollisionTrait(params: StdCollisionParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdCollisionPage(params: StdCollisionParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdCollision(params: StdCollisionParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-physics2d as a Function\n *\n * 2D physics simulation parameterized for any domain.\n * Provides idle and simulating states with force application and tick updates.\n * Tracks position and velocity via entity fields.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family physics2d\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPhysics2dParams {\n /** Entity name in PascalCase (e.g., \"Body\", \"Particle\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}PhysicsPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/physics\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface Physics2dConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPhysics2dParams): Physics2dConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure physics-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'x') ? [] : [{ name: 'x', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'y') ? [] : [{ name: 'y', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'vx') ? [] : [{ name: 'vx', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'vy') ? [] : [{ name: 'vy', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'forceX') ? [] : [{ name: 'forceX', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'forceY') ? [] : [{ name: 'forceY', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'physicsStatus') ? [] : [{ name: 'physicsStatus', type: 'string' as const, default: 'idle' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Physics`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'atom',\n pageTitle: params.pageTitle ?? `${entityName} Physics`,\n pageName: params.pageName ?? `${entityName}PhysicsPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/physics`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: Physics2dConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: Physics2dConfig): Trait {\n const { entityName } = c;\n\n const idleView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'simulation-canvas', preset: 'spring', width: 800, height: 400, running: false, speed: 1 },\n { type: 'button', label: 'Start', event: 'START', variant: 'primary', icon: 'play' },\n ],\n };\n\n const simulatingView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n { type: 'simulation-canvas', preset: 'spring', width: 800, height: 400, running: true, speed: 1 },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Apply Force', event: 'APPLY_FORCE', variant: 'secondary', icon: 'move' },\n { type: 'button', label: 'Stop', event: 'STOP', variant: 'ghost', icon: 'square' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'simulating' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Simulation' },\n { key: 'STOP', name: 'Stop Simulation' },\n { key: 'TICK', name: 'Tick' },\n { key: 'APPLY_FORCE', name: 'Apply Force', payload: [\n { name: 'forceX', type: 'number', required: true },\n { name: 'forceY', type: 'number', required: true },\n ] },\n ],\n transitions: [\n // INIT: idle -> idle\n {\n from: 'idle', to: 'idle', event: 'INIT',\n effects: [\n ['render-ui', 'main', idleView],\n ],\n },\n // START: idle -> simulating\n {\n from: 'idle', to: 'simulating', event: 'START',\n effects: [\n ['set', '@entity.physicsStatus', 'simulating'],\n ['render-ui', 'main', simulatingView],\n ],\n },\n // TICK: simulating -> simulating (self-loop)\n {\n from: 'simulating', to: 'simulating', event: 'TICK',\n effects: [\n ['render-ui', 'main', simulatingView],\n ],\n },\n // APPLY_FORCE: simulating -> simulating (self-loop)\n {\n from: 'simulating', to: 'simulating', event: 'APPLY_FORCE',\n effects: [\n ['set', '@entity.forceX', '@payload.forceX'],\n ['set', '@entity.forceY', '@payload.forceY'],\n ['render-ui', 'main', simulatingView],\n ],\n },\n // STOP: simulating -> idle\n {\n from: 'simulating', to: 'idle', event: 'STOP',\n effects: [\n ['set', '@entity.physicsStatus', 'idle'],\n ['render-ui', 'main', idleView],\n ],\n },\n // INIT: simulating -> simulating (self-loop)\n {\n from: 'simulating', to: 'simulating', event: 'INIT',\n effects: [\n ['render-ui', 'main', simulatingView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: Physics2dConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPhysics2dEntity(params: StdPhysics2dParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPhysics2dTrait(params: StdPhysics2dParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdPhysics2dPage(params: StdPhysics2dParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPhysics2d(params: StdPhysics2dParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-rate-limiter as a Function\n *\n * Rate limiting parameterized for any domain.\n * Provides open and throttled states for controlling request frequency.\n * Tracks request count and throttle status via entity fields.\n * The state machine structure is fixed. The caller controls data and presentation.\n *\n * @level atom\n * @family rate-limiter\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRateLimiterParams {\n /** Entity name in PascalCase (e.g., \"Limiter\", \"Throttle\") */\n entityName: string;\n /** Entity fields (id is auto-added) */\n fields: EntityField[];\n /** Persistence mode */\n persistence?: 'persistent' | 'runtime' | 'singleton';\n\n // Display\n /** Header icon (Lucide name) */\n headerIcon?: string;\n /** Page title */\n pageTitle?: string;\n\n // Page\n /** Page name (defaults to \"{Entity}RateLimiterPage\") */\n pageName?: string;\n /** Route path (defaults to \"/{entities}/rate-limiter\") */\n pagePath?: string;\n /** Whether this is the initial/home page */\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface RateLimiterConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pluralName: string;\n headerIcon: string;\n pageTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdRateLimiterParams): RateLimiterConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n\n // Ensure rate-limiter-related fields exist on entity\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'count') ? [] : [{ name: 'count', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'window') ? [] : [{ name: 'window', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'limiterStatus') ? [] : [{ name: 'limiterStatus', type: 'string' as const, default: 'open' }]),\n ];\n\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}RateLimiter`,\n pluralName: p,\n headerIcon: params.headerIcon ?? 'shield',\n pageTitle: params.pageTitle ?? `${entityName} Rate Limiter`,\n pageName: params.pageName ?? `${entityName}RateLimiterPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}/rate-limiter`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections (internal)\n// ============================================================================\n\nfunction buildEntity(c: RateLimiterConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: RateLimiterConfig): Trait {\n const { entityName, headerIcon, pageTitle } = c;\n\n const openView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', content: 'Requests', variant: 'caption' },\n { type: 'typography', content: '@entity.count', variant: 'h4' },\n { type: 'badge', label: '@entity.limiterStatus' },\n ],\n },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Request', event: 'REQUEST', variant: 'primary', icon: 'send' },\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'ghost', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n const throttledView = {\n type: 'stack', direction: 'vertical', gap: 'lg', align: 'center',\n children: [\n {\n type: 'stack', direction: 'horizontal', gap: 'md', align: 'center',\n children: [\n { type: 'icon', name: headerIcon, size: 'lg' },\n { type: 'typography', content: pageTitle, variant: 'h2' },\n ],\n },\n { type: 'divider' },\n {\n type: 'card',\n children: [\n {\n type: 'stack', direction: 'vertical', gap: 'sm',\n children: [\n { type: 'typography', content: 'Requests', variant: 'caption' },\n { type: 'typography', content: '@entity.count', variant: 'h4' },\n { type: 'badge', label: 'Throttled' },\n ],\n },\n ],\n },\n {\n type: 'stack', direction: 'horizontal', gap: 'sm', justify: 'center',\n children: [\n { type: 'button', label: 'Reset', event: 'RESET', variant: 'primary', icon: 'rotate-ccw' },\n ],\n },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'open', isInitial: true },\n { name: 'throttled' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'REQUEST', name: 'Request' },\n { key: 'THROTTLE', name: 'Throttle' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n // INIT: open -> open\n {\n from: 'open', to: 'open', event: 'INIT',\n effects: [\n ['render-ui', 'main', openView],\n ],\n },\n // REQUEST: open -> open (self-loop, increment count)\n {\n from: 'open', to: 'open', event: 'REQUEST',\n effects: [\n ['render-ui', 'main', openView],\n ],\n },\n // THROTTLE: open -> throttled\n {\n from: 'open', to: 'throttled', event: 'THROTTLE',\n effects: [\n ['set', '@entity.limiterStatus', 'throttled'],\n ['render-ui', 'main', throttledView],\n ],\n },\n // RESET: throttled -> open\n {\n from: 'throttled', to: 'open', event: 'RESET',\n effects: [\n ['set', '@entity.limiterStatus', 'open'],\n ['set', '@entity.count', 0],\n ['render-ui', 'main', openView],\n ],\n },\n // INIT: throttled -> throttled (self-loop)\n {\n from: 'throttled', to: 'throttled', event: 'INIT',\n effects: [\n ['render-ui', 'main', throttledView],\n ],\n },\n // RESET: open -> open (self-loop, reset count)\n {\n from: 'open', to: 'open', event: 'RESET',\n effects: [\n ['set', '@entity.count', 0],\n ['set', '@entity.limiterStatus', 'open'],\n ['render-ui', 'main', openView],\n ],\n },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: RateLimiterConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdRateLimiterEntity(params: StdRateLimiterParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdRateLimiterTrait(params: StdRateLimiterParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdRateLimiterPage(params: StdRateLimiterParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdRateLimiter(params: StdRateLimiterParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-game-hud\n *\n * Heads-up display atom. Renders the `game-hud` pattern\n * showing health, score, lives, and other stats.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameHudParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Stats to display in the HUD (defaults to all non-id fields) */\n statFields?: string[];\n /** HUD position: top-left, top-right, bottom-left, bottom-right */\n position?: string;\n /** HUD size */\n size?: string;\n /** Transparent background */\n transparent?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameHudConfig {\n entityName: string;\n fields: EntityField[];\n nonIdFields: EntityField[];\n statFields: string[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n position: string;\n size: string;\n transparent: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameHudParams): GameHudConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const nonIdFields = fields.filter(f => f.name !== 'id');\n const p = plural(entityName);\n\n return {\n entityName, fields, nonIdFields,\n statFields: params.statFields ?? nonIdFields.map(f => f.name),\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Hud`,\n position: params.position ?? 'top-left',\n size: params.size ?? 'md',\n transparent: params.transparent ?? false,\n pageName: params.pageName ?? `${entityName}HudPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameHudConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameHudConfig): Trait {\n const { entityName, statFields, position, size, transparent } = c;\n\n // Build stats array for the game-hud pattern\n const stats = statFields.map(f => ({\n label: f.charAt(0).toUpperCase() + f.slice(1),\n value: `@entity.${f}`,\n }));\n\n const hudView = {\n type: 'game-hud',\n position,\n size,\n transparent,\n stats,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'REFRESH', name: 'Refresh' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', hudView]] },\n { from: 'idle', to: 'idle', event: 'REFRESH', effects: [['fetch', entityName], ['render-ui', 'main', hudView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameHudConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameHudEntity(params: StdGameHudParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameHudTrait(params: StdGameHudParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameHudPage(params: StdGameHudParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameHud(params: StdGameHudParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-score-board\n *\n * Score display atom using the `score-board` pattern.\n * Shows score, high score, combo, multiplier, level.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdScoreBoardParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ScoreBoardConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdScoreBoardParams): ScoreBoardConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Ensure score fields exist\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'score') ? [] : [{ name: 'score', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'highScore') ? [] : [{ name: 'highScore', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'combo') ? [] : [{ name: 'combo', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'multiplier') ? [] : [{ name: 'multiplier', type: 'number' as const, default: 1 }]),\n ...(baseFields.some(f => f.name === 'level') ? [] : [{ name: 'level', type: 'number' as const, default: 1 }]),\n ];\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}ScoreBoard`,\n pageName: params.pageName ?? `${entityName}ScorePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: ScoreBoardConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: ScoreBoardConfig): Trait {\n const { entityName } = c;\n\n const boardView = {\n type: 'score-board',\n score: `@entity.score`,\n highScore: `@entity.highScore`,\n combo: `@entity.combo`,\n multiplier: `@entity.multiplier`,\n level: `@entity.level`,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADD_SCORE', name: 'Add Score', payload: [{ name: 'points', type: 'number', required: true }] },\n { key: 'COMBO', name: 'Combo', payload: [{ name: 'multiplier', type: 'number', required: true }] },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', boardView]] },\n { from: 'idle', to: 'idle', event: 'ADD_SCORE', effects: [\n ['set', '@entity.score', ['+', '@entity.score', '@payload.points']],\n ['set', '@entity.combo', ['+', '@entity.combo', 1]],\n ['render-ui', 'main', boardView],\n ] },\n { from: 'idle', to: 'idle', event: 'COMBO', effects: [\n ['set', '@entity.multiplier', '@payload.multiplier'],\n ['render-ui', 'main', boardView],\n ] },\n { from: 'idle', to: 'idle', event: 'RESET', effects: [\n ['set', '@entity.score', 0],\n ['set', '@entity.combo', 0],\n ['set', '@entity.multiplier', 1],\n ['render-ui', 'main', boardView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: ScoreBoardConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdScoreBoardEntity(params: StdScoreBoardParams): Entity { return buildEntity(resolve(params)); }\nexport function stdScoreBoardTrait(params: StdScoreBoardParams): Trait { return buildTrait(resolve(params)); }\nexport function stdScoreBoardPage(params: StdScoreBoardParams): Page { return buildPage(resolve(params)); }\n\nexport function stdScoreBoard(params: StdScoreBoardParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-menu\n *\n * Game main menu atom using the `game-menu` pattern.\n * Shows title, subtitle, and menu options (Start, Options, Credits, etc.).\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameMenuParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Game title */\n gameTitle?: string;\n /** Game subtitle */\n subtitle?: string;\n /** Menu items: each has a label and an event to fire */\n menuItems?: Array<{ label: string; event: string }>;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameMenuConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n gameTitle: string;\n subtitle: string;\n menuItems: Array<{ label: string; event: string }>;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameMenuParams): GameMenuConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Menu`,\n gameTitle: params.gameTitle ?? entityName,\n subtitle: params.subtitle ?? 'Press Start',\n menuItems: params.menuItems ?? [\n { label: 'Start Game', event: 'START' },\n { label: 'Options', event: 'OPTIONS' },\n { label: 'Credits', event: 'CREDITS' },\n ],\n pageName: params.pageName ?? `${entityName}MenuPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameMenuConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameMenuConfig): Trait {\n const { entityName, gameTitle, subtitle, menuItems } = c;\n\n const menuView = {\n type: 'game-menu',\n title: gameTitle,\n subtitle,\n menuItems: menuItems.map(item => ({\n label: item.label,\n action: item.event,\n })),\n };\n\n // Build event declarations from menu items\n const menuEvents = menuItems.map(item => ({\n key: item.event,\n name: item.label,\n }));\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ...menuEvents,\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['render-ui', 'main', menuView]] },\n { from: 'idle', to: 'idle', event: 'NAVIGATE', effects: [] },\n // Each menu item is a self-loop (the actual navigation happens via the event bus to other traits)\n ...menuItems.map(item => ({\n from: 'idle', to: 'idle', event: item.event, effects: [['render-ui', 'main', menuView]],\n })),\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameMenuConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameMenuEntity(params: StdGameMenuParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameMenuTrait(params: StdGameMenuParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameMenuPage(params: StdGameMenuParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameMenu(params: StdGameMenuParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-over-screen\n *\n * Game over screen atom using the `game-over-screen` pattern.\n * Shows final score, high score, and retry/quit actions.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameOverScreenParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n title?: string;\n message?: string;\n /** Actions: each has a label and event */\n actions?: Array<{ label: string; event: string }>;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameOverConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n title: string;\n message: string;\n actions: Array<{ label: string; event: string }>;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameOverScreenParams): GameOverConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'currentScore') ? [] : [{ name: 'currentScore', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'highScore') ? [] : [{ name: 'highScore', type: 'number' as const, default: 0 }]),\n ];\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameOver`,\n title: params.title ?? 'Game Over',\n message: params.message ?? 'Better luck next time!',\n actions: params.actions ?? [\n { label: 'Play Again', event: 'RETRY' },\n { label: 'Main Menu', event: 'QUIT' },\n ],\n pageName: params.pageName ?? `${entityName}GameOverPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameOverConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameOverConfig): Trait {\n const { entityName, title, message, actions } = c;\n\n const gameOverView = {\n type: 'game-over-screen',\n title,\n message,\n currentScore: '@entity.currentScore',\n highScore: '@entity.highScore',\n menuItems: actions.map(a => ({ label: a.label, action: a.event })),\n };\n\n const actionEvents = actions.map(a => ({ key: a.event, name: a.label }));\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NAVIGATE', name: 'Navigate' },\n { key: 'RESTART', name: 'Restart' },\n ...actionEvents,\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', gameOverView]] },\n { from: 'idle', to: 'idle', event: 'NAVIGATE', effects: [] },\n { from: 'idle', to: 'idle', event: 'RESTART', effects: [] },\n ...actions.map(a => ({\n from: 'idle', to: 'idle', event: a.event, effects: [['render-ui', 'main', gameOverView]],\n })),\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameOverConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameOverScreenEntity(params: StdGameOverScreenParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameOverScreenTrait(params: StdGameOverScreenParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameOverScreenPage(params: StdGameOverScreenParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameOverScreen(params: StdGameOverScreenParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-dialogue-box\n *\n * RPG dialogue atom using the `dialogue-box` pattern.\n * Shows speaker, portrait, typewriter text, and choices.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDialogueBoxParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Typewriter speed in ms per character */\n typewriterSpeed?: number;\n /** Position: top, bottom, center */\n position?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DialogueConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n typewriterSpeed: number;\n position: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDialogueBoxParams): DialogueConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'speaker') ? [] : [{ name: 'speaker', type: 'string' as const, default: 'Narrator' }]),\n ...(baseFields.some(f => f.name === 'text') ? [] : [{ name: 'text', type: 'string' as const, default: 'Welcome, adventurer. Your journey begins here.' }]),\n ];\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Dialogue`,\n typewriterSpeed: params.typewriterSpeed ?? 30,\n position: params.position ?? 'bottom',\n pageName: params.pageName ?? `${entityName}DialoguePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: DialogueConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: DialogueConfig): Trait {\n const { entityName, typewriterSpeed, position } = c;\n\n const dialogueView = {\n type: 'dialogue-box',\n dialogue: {\n speaker: `@entity.speaker`,\n text: `@entity.text`,\n },\n typewriterSpeed,\n position,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'talking', isInitial: true },\n { name: 'idle' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'ADVANCE', name: 'Advance' },\n { key: 'CHOICE', name: 'Choice', payload: [{ name: 'choiceId', type: 'string', required: true }] },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'START_DIALOGUE', name: 'Start Dialogue' },\n ],\n transitions: [\n // INIT sets initial dialogue content then renders\n { from: 'talking', to: 'talking', event: 'INIT', effects: [\n ['fetch', entityName],\n ['set', '@entity.speaker', 'Narrator'],\n ['set', '@entity.text', 'Welcome, adventurer. Your journey begins here.'],\n ['render-ui', 'main', dialogueView],\n ] },\n { from: 'talking', to: 'talking', event: 'ADVANCE', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', dialogueView],\n ] },\n { from: 'talking', to: 'talking', event: 'CHOICE', effects: [\n ['render-ui', 'main', dialogueView],\n ] },\n { from: 'talking', to: 'idle', event: 'COMPLETE', effects: [\n ['render-ui', 'main', {\n type: 'stack', direction: 'vertical', gap: 'md', align: 'center',\n children: [\n { type: 'typography', content: 'Dialogue complete', variant: 'caption' },\n { type: 'button', label: 'New Dialogue', event: 'START_DIALOGUE', variant: 'primary', icon: 'message-circle' },\n ],\n }],\n ] },\n { from: 'idle', to: 'talking', event: 'START_DIALOGUE', effects: [\n ['fetch', entityName],\n ['render-ui', 'main', dialogueView],\n ] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: DialogueConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdDialogueBoxEntity(params: StdDialogueBoxParams): Entity { return buildEntity(resolve(params)); }\nexport function stdDialogueBoxTrait(params: StdDialogueBoxParams): Trait { return buildTrait(resolve(params)); }\nexport function stdDialogueBoxPage(params: StdDialogueBoxParams): Page { return buildPage(resolve(params)); }\n\nexport function stdDialogueBox(params: StdDialogueBoxParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-inventory-panel\n *\n * Grid-based inventory atom using the `inventory-panel` pattern.\n * Shows items in a grid with select, use, and drop actions.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdInventoryPanelParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Number of columns in inventory grid */\n columns?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface InventoryPanelConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n columns: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdInventoryPanelParams): InventoryPanelConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}InventoryPanel`,\n columns: params.columns ?? 4,\n pageName: params.pageName ?? `${entityName}InventoryPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: InventoryPanelConfig): Entity {\n const fields = [\n ...c.fields.filter(f => f.name !== 'items'),\n { name: 'items', type: 'array' as const },\n ];\n return makeEntity({\n name: c.entityName,\n fields,\n persistence: 'singleton',\n instances: [{\n id: 'inventory',\n items: [\n { id: 'item-0', name: 'Iron Sword', quantity: 1, rarity: 'common' },\n { id: 'item-1', name: 'Health Potion', quantity: 3, rarity: 'common' },\n { id: 'item-2', name: 'Shield', quantity: 1, rarity: 'uncommon' },\n { id: 'item-3', name: 'Magic Scroll', quantity: 2, rarity: 'rare' },\n { id: 'item-4', name: 'Gold Ring', quantity: 1, rarity: 'epic' },\n { id: 'item-5', name: 'Dragon Scale', quantity: 1, rarity: 'epic' },\n ],\n }],\n });\n}\n\nfunction buildTrait(c: InventoryPanelConfig): Trait {\n const { entityName, columns } = c;\n\n const inventoryView = {\n type: 'inventory-panel',\n items: '@entity.items',\n slots: columns * 4,\n columns,\n selectSlotEvent: 'SELECT_SLOT',\n useItemEvent: 'USE_ITEM',\n dropItemEvent: 'DROP_ITEM',\n showTooltips: true,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT_SLOT', name: 'Select Slot', payload: [{ name: 'slotId', type: 'string', required: true }] },\n { key: 'USE_ITEM', name: 'Use Item', payload: [{ name: 'id', type: 'string', required: true }] },\n { key: 'DROP_ITEM', name: 'Drop Item', payload: [{ name: 'id', type: 'string', required: true }] },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', inventoryView]] },\n { from: 'idle', to: 'idle', event: 'SELECT_SLOT', effects: [['render-ui', 'main', inventoryView]] },\n { from: 'idle', to: 'idle', event: 'USE_ITEM', effects: [['fetch', entityName], ['render-ui', 'main', inventoryView]] },\n { from: 'idle', to: 'idle', event: 'DROP_ITEM', effects: [['persist', 'delete', entityName, '@payload.id'], ['fetch', entityName], ['render-ui', 'main', inventoryView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: InventoryPanelConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdInventoryPanelEntity(params: StdInventoryPanelParams): Entity { return buildEntity(resolve(params)); }\nexport function stdInventoryPanelTrait(params: StdInventoryPanelParams): Trait { return buildTrait(resolve(params)); }\nexport function stdInventoryPanelPage(params: StdInventoryPanelParams): Page { return buildPage(resolve(params)); }\n\nexport function stdInventoryPanel(params: StdInventoryPanelParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-combat-log\n *\n * Scrollable combat event log atom using the `combat-log` pattern.\n * Displays timestamped combat events with icons and colors.\n * Supports appending new events and clearing the log.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCombatLogParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Log panel title */\n title?: string;\n /** Maximum visible events before scrolling */\n maxVisible?: number;\n /** Auto-scroll to newest event */\n autoScroll?: boolean;\n /** Show timestamps on each entry */\n showTimestamps?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface CombatLogConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n title: string;\n maxVisible: number;\n autoScroll: boolean;\n showTimestamps: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdCombatLogParams): CombatLogConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}CombatLog`,\n title: params.title ?? 'Combat Log',\n maxVisible: params.maxVisible ?? 10,\n autoScroll: params.autoScroll ?? true,\n showTimestamps: params.showTimestamps ?? true,\n pageName: params.pageName ?? `${entityName}LogPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: CombatLogConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: CombatLogConfig): Trait {\n const { entityName, title, maxVisible, autoScroll, showTimestamps } = c;\n\n const logView = {\n type: 'combat-log',\n events: `@${entityName}`,\n maxVisible,\n autoScroll,\n showTimestamps,\n title,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'idle', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LOG_EVENT', name: 'Log Event', payload: [{ name: 'data', type: 'object', required: true }] },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', logView]] },\n { from: 'idle', to: 'idle', event: 'LOG_EVENT', effects: [['render-ui', 'main', logView]] },\n { from: 'idle', to: 'idle', event: 'CLEAR', effects: [['render-ui', 'main', logView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: CombatLogConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdCombatLogEntity(params: StdCombatLogParams): Entity { return buildEntity(resolve(params)); }\nexport function stdCombatLogTrait(params: StdCombatLogParams): Trait { return buildTrait(resolve(params)); }\nexport function stdCombatLogPage(params: StdCombatLogParams): Page { return buildPage(resolve(params)); }\n\nexport function stdCombatLog(params: StdCombatLogParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-sprite\n *\n * Sprite renderer atom using the `sprite` pattern.\n * Renders a single frame from a spritesheet with position and scale.\n * Handles frame changes and click events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSpriteParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Width of each frame in pixels */\n frameWidth?: number;\n /** Height of each frame in pixels */\n frameHeight?: number;\n /** Scale factor */\n scale?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SpriteConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n frameWidth: number;\n frameHeight: number;\n scale: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSpriteParams): SpriteConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}Sprite`,\n frameWidth: params.frameWidth ?? 64,\n frameHeight: params.frameHeight ?? 64,\n scale: params.scale ?? 1,\n pageName: params.pageName ?? `${entityName}SpritePage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: SpriteConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SpriteConfig): Trait {\n const { entityName, frameWidth, frameHeight, scale } = c;\n\n const spriteView = {\n type: 'sprite',\n spritesheet: `@${entityName}.spritesheet`,\n frameWidth,\n frameHeight,\n frame: `@${entityName}.frame`,\n x: `@${entityName}.x`,\n y: `@${entityName}.y`,\n scale,\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SET_FRAME', name: 'Set Frame', payload: [{ name: 'frame', type: 'number', required: true }] },\n { key: 'CLICK', name: 'Click' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', spriteView]] },\n { from: 'idle', to: 'idle', event: 'SET_FRAME', effects: [['render-ui', 'main', spriteView]] },\n { from: 'idle', to: 'idle', event: 'CLICK', effects: [] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SpriteConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdSpriteEntity(params: StdSpriteParams): Entity { return buildEntity(resolve(params)); }\nexport function stdSpriteTrait(params: StdSpriteParams): Trait { return buildTrait(resolve(params)); }\nexport function stdSpritePage(params: StdSpriteParams): Page { return buildPage(resolve(params)); }\n\nexport function stdSprite(params: StdSpriteParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-audio\n *\n * Game audio provider atom using the `game-audio-provider` pattern.\n * Wraps child content with an audio context, providing sound playback\n * and mute toggling.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameAudioParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Initial muted state */\n initialMuted?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameAudioConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n initialMuted: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameAudioParams): GameAudioConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameAudio`,\n initialMuted: params.initialMuted ?? false,\n pageName: params.pageName ?? `${entityName}AudioPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameAudioConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameAudioConfig): Trait {\n const { entityName, initialMuted } = c;\n\n const audioView = {\n type: 'game-audio-provider',\n manifest: {},\n baseUrl: '',\n initialMuted,\n children: [],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TOGGLE_MUTE', name: 'Toggle Mute' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', audioView]] },\n { from: 'idle', to: 'idle', event: 'TOGGLE_MUTE', effects: [['render-ui', 'main', audioView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameAudioConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameAudioEntity(params: StdGameAudioParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameAudioTrait(params: StdGameAudioParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameAudioPage(params: StdGameAudioParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameAudio(params: StdGameAudioParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-isometric-canvas\n *\n * Isometric game renderer atom using the `isometric-canvas` pattern.\n * Renders tiles, units, and features on an isometric grid.\n * Handles tile clicks, unit clicks, and hover events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdIsometricCanvasParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Board width in tiles */\n boardWidth?: number;\n /** Board height in tiles */\n boardHeight?: number;\n /** Render scale */\n scale?: number;\n /** Unit render scale */\n unitScale?: number;\n /** Show debug grid */\n debug?: boolean;\n /** Show minimap */\n showMinimap?: boolean;\n /** Enable camera controls */\n enableCamera?: boolean;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface IsometricConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n boardWidth: number;\n boardHeight: number;\n scale: number;\n unitScale: number;\n debug: boolean;\n showMinimap: boolean;\n enableCamera: boolean;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdIsometricCanvasParams): IsometricConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}IsometricCanvas`,\n boardWidth: params.boardWidth ?? 8,\n boardHeight: params.boardHeight ?? 8,\n scale: params.scale ?? 1,\n unitScale: params.unitScale ?? 2,\n debug: params.debug ?? false,\n showMinimap: params.showMinimap ?? false,\n enableCamera: params.enableCamera ?? true,\n pageName: params.pageName ?? `${entityName}CanvasPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction generateTiles(width: number, height: number): Record<string, unknown>[] {\n const terrains = ['grass', 'dirt', 'stone', 'water', 'sand'];\n const tiles: Record<string, unknown>[] = [];\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n tiles.push({ x, y, terrain: terrains[(x + y) % terrains.length] });\n }\n }\n return tiles;\n}\n\nfunction buildEntity(c: IsometricConfig): Entity {\n const fields = [\n ...ensureIdField(c.fields),\n { name: 'tiles', type: 'array' as const },\n { name: 'units', type: 'array' as const },\n { name: 'features', type: 'array' as const },\n ];\n return makeEntity({\n name: c.entityName,\n fields,\n persistence: 'singleton',\n instances: [{\n id: 'board',\n tiles: generateTiles(c.boardWidth, c.boardHeight),\n units: [],\n features: [],\n }],\n });\n}\n\nfunction buildTrait(c: IsometricConfig): Trait {\n const { entityName, boardWidth, boardHeight, scale, unitScale, debug, showMinimap, enableCamera } = c;\n\n const canvasView = {\n type: 'isometric-canvas',\n tiles: '@entity.tiles',\n boardWidth,\n boardHeight,\n scale,\n unitScale,\n debug,\n showMinimap,\n enableCamera,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n tileHoverEvent: 'TILE_HOVER',\n tileLeaveEvent: 'TILE_LEAVE',\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'active' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TILE_CLICK', name: 'Tile Click', payload: [{ name: 'tileId', type: 'string', required: true }] },\n { key: 'UNIT_CLICK', name: 'Unit Click', payload: [{ name: 'unitId', type: 'string', required: true }] },\n { key: 'TILE_HOVER', name: 'Tile Hover' },\n { key: 'TILE_LEAVE', name: 'Tile Leave' },\n { key: 'DESELECT', name: 'Deselect' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'TILE_HOVER', effects: [] },\n { from: 'idle', to: 'idle', event: 'TILE_HOVER', effects: [] },\n { from: 'active', to: 'active', event: 'TILE_LEAVE', effects: [] },\n { from: 'idle', to: 'idle', event: 'TILE_LEAVE', effects: [] },\n { from: 'active', to: 'idle', event: 'DESELECT', effects: [['render-ui', 'main', canvasView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: IsometricConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdIsometricCanvasEntity(params: StdIsometricCanvasParams): Entity { return buildEntity(resolve(params)); }\nexport function stdIsometricCanvasTrait(params: StdIsometricCanvasParams): Trait { return buildTrait(resolve(params)); }\nexport function stdIsometricCanvasPage(params: StdIsometricCanvasParams): Page { return buildPage(resolve(params)); }\n\nexport function stdIsometricCanvas(params: StdIsometricCanvasParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-platformer-canvas\n *\n * Side-scrolling platformer atom using the `platformer-canvas` pattern.\n * Renders player, platforms, and handles movement events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPlatformerCanvasParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Canvas width */\n canvasWidth?: number;\n /** Canvas height */\n canvasHeight?: number;\n /** World width (scrollable area) */\n worldWidth?: number;\n /** World height */\n worldHeight?: number;\n /** Follow camera enabled */\n followCamera?: boolean;\n /** Background color */\n bgColor?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PlatformerConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n canvasWidth: number;\n canvasHeight: number;\n worldWidth: number;\n worldHeight: number;\n followCamera: boolean;\n bgColor: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPlatformerCanvasParams): PlatformerConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}PlatformerCanvas`,\n canvasWidth: params.canvasWidth ?? 800,\n canvasHeight: params.canvasHeight ?? 400,\n worldWidth: params.worldWidth ?? 2400,\n worldHeight: params.worldHeight ?? 400,\n followCamera: params.followCamera ?? true,\n bgColor: params.bgColor ?? '#1a1a2e',\n pageName: params.pageName ?? `${entityName}PlatformerPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: PlatformerConfig): Entity {\n const fields = [\n ...ensureIdField(c.fields),\n { name: 'platforms', type: 'array' as const },\n { name: 'player', type: 'object' as const },\n ];\n return makeEntity({\n name: c.entityName,\n fields,\n persistence: 'singleton',\n instances: [{\n id: 'level',\n platforms: [\n { x: 0, y: 350, width: 2400, height: 50 },\n { x: 200, y: 250, width: 150, height: 20 },\n { x: 500, y: 200, width: 120, height: 20 },\n { x: 800, y: 280, width: 180, height: 20 },\n { x: 1100, y: 180, width: 100, height: 20 },\n { x: 1400, y: 230, width: 160, height: 20 },\n { x: 1700, y: 150, width: 140, height: 20 },\n ],\n player: { x: 50, y: 300, width: 30, height: 30, vx: 0, vy: 0 },\n }],\n });\n}\n\nfunction buildTrait(c: PlatformerConfig): Trait {\n const { entityName, canvasWidth, canvasHeight, worldWidth, worldHeight, followCamera, bgColor } = c;\n\n const canvasView = {\n type: 'platformer-canvas',\n platforms: '@entity.platforms',\n player: '@entity.player',\n canvasWidth,\n canvasHeight,\n worldWidth,\n worldHeight,\n followCamera,\n bgColor,\n leftEvent: 'LEFT',\n rightEvent: 'RIGHT',\n jumpEvent: 'JUMP',\n stopEvent: 'STOP',\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'running' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'LEFT', name: 'Move Left' },\n { key: 'RIGHT', name: 'Move Right' },\n { key: 'JUMP', name: 'Jump' },\n { key: 'STOP', name: 'Stop' },\n { key: 'START', name: 'Start' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'running', event: 'START', effects: [['render-ui', 'main', canvasView]] },\n { from: 'running', to: 'running', event: 'LEFT', effects: [] },\n { from: 'running', to: 'running', event: 'RIGHT', effects: [] },\n { from: 'running', to: 'running', event: 'JUMP', effects: [] },\n { from: 'running', to: 'idle', event: 'STOP', effects: [['render-ui', 'main', canvasView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: PlatformerConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdPlatformerCanvasEntity(params: StdPlatformerCanvasParams): Entity { return buildEntity(resolve(params)); }\nexport function stdPlatformerCanvasTrait(params: StdPlatformerCanvasParams): Trait { return buildTrait(resolve(params)); }\nexport function stdPlatformerCanvasPage(params: StdPlatformerCanvasParams): Page { return buildPage(resolve(params)); }\n\nexport function stdPlatformerCanvas(params: StdPlatformerCanvasParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-simulation-canvas\n *\n * 2D physics simulation renderer atom using the `simulation-canvas` pattern.\n * Runs built-in Euler integration for educational presets (pendulum, spring, etc.).\n * Supports start, stop, and reset controls.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSimulationCanvasParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Physics preset name */\n preset?: string;\n /** Canvas width in pixels */\n width?: number;\n /** Canvas height in pixels */\n height?: number;\n /** Simulation speed multiplier */\n speed?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SimulationCanvasConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n preset: string;\n width: number;\n height: number;\n speed: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSimulationCanvasParams): SimulationCanvasConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}SimulationCanvas`,\n preset: params.preset ?? 'pendulum',\n width: params.width ?? 800,\n height: params.height ?? 400,\n speed: params.speed ?? 1,\n pageName: params.pageName ?? `${entityName}SimulationPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: SimulationCanvasConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: SimulationCanvasConfig): Trait {\n const { preset, width, height, speed } = c;\n\n const idleView = {\n type: 'simulation-canvas',\n preset,\n width,\n height,\n running: false,\n speed,\n };\n\n const runningView = {\n type: 'simulation-canvas',\n preset,\n width,\n height,\n running: true,\n speed,\n };\n\n return {\n name: c.traitName,\n linkedEntity: c.entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'running' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'STOP', name: 'Stop' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', c.entityName], ['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'running', event: 'START', effects: [['render-ui', 'main', runningView]] },\n { from: 'running', to: 'idle', event: 'STOP', effects: [['render-ui', 'main', idleView]] },\n { from: 'running', to: 'running', event: 'RESET', effects: [['render-ui', 'main', runningView]] },\n { from: 'idle', to: 'idle', event: 'RESET', effects: [['render-ui', 'main', idleView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: SimulationCanvasConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdSimulationCanvasEntity(params: StdSimulationCanvasParams): Entity { return buildEntity(resolve(params)); }\nexport function stdSimulationCanvasTrait(params: StdSimulationCanvasParams): Trait { return buildTrait(resolve(params)); }\nexport function stdSimulationCanvasPage(params: StdSimulationCanvasParams): Page { return buildPage(resolve(params)); }\n\nexport function stdSimulationCanvas(params: StdSimulationCanvasParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-canvas-2d\n *\n * 2D game canvas atom using the `game-canvas2-d` pattern.\n * Provides a render loop with configurable FPS, width, and height.\n * Handles init, start, stop, and per-frame tick events.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameCanvas2dParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Canvas width in pixels */\n width?: number;\n /** Canvas height in pixels */\n height?: number;\n /** Target frames per second */\n fps?: number;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameCanvas2dConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n width: number;\n height: number;\n fps: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameCanvas2dParams): GameCanvas2dConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameCanvas2d`,\n width: params.width ?? 800,\n height: params.height ?? 600,\n fps: params.fps ?? 60,\n pageName: params.pageName ?? `${entityName}Canvas2dPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameCanvas2dConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameCanvas2dConfig): Trait {\n const { width, height, fps } = c;\n\n const idleView = {\n type: 'game-canvas2-d',\n width,\n height,\n fps,\n };\n\n const renderingView = {\n type: 'game-canvas2-d',\n width,\n height,\n fps,\n };\n\n return {\n name: c.traitName,\n linkedEntity: c.entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'rendering' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'STOP', name: 'Stop' },\n { key: 'TICK', name: 'Tick' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', c.entityName], ['render-ui', 'main', idleView]] },\n { from: 'idle', to: 'rendering', event: 'START', effects: [['render-ui', 'main', renderingView]] },\n { from: 'rendering', to: 'rendering', event: 'TICK', effects: [] },\n { from: 'rendering', to: 'idle', event: 'STOP', effects: [['render-ui', 'main', idleView]] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameCanvas2dConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameCanvas2dEntity(params: StdGameCanvas2dParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameCanvas2dTrait(params: StdGameCanvas2dParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameCanvas2dPage(params: StdGameCanvas2dParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameCanvas2d(params: StdGameCanvas2dParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-game-canvas-3d\n *\n * 3D game canvas atom using the `game-canvas3-d` pattern.\n * Renders tiles, units, and features in a 3D scene with configurable\n * orientation, camera mode, grid, shadows, and background color.\n *\n * @level atom\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdGameCanvas3dParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n /** Map orientation */\n orientation?: string;\n /** Camera mode */\n cameraMode?: string;\n /** Show grid overlay */\n showGrid?: boolean;\n /** Enable shadows */\n shadows?: boolean;\n /** Background color */\n backgroundColor?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface GameCanvas3dConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n traitName: string;\n orientation: string;\n cameraMode: string;\n showGrid: boolean;\n shadows: boolean;\n backgroundColor: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdGameCanvas3dParams): GameCanvas3dConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName, fields,\n persistence: params.persistence ?? 'runtime',\n traitName: `${entityName}GameCanvas3d`,\n orientation: params.orientation ?? 'isometric',\n cameraMode: params.cameraMode ?? 'orbital',\n showGrid: params.showGrid ?? true,\n shadows: params.shadows ?? true,\n backgroundColor: params.backgroundColor ?? '#1a1a2e',\n pageName: params.pageName ?? `${entityName}Canvas3dPage`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Projections\n// ============================================================================\n\nfunction buildEntity(c: GameCanvas3dConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence });\n}\n\nfunction buildTrait(c: GameCanvas3dConfig): Trait {\n const { entityName, orientation, cameraMode, showGrid, shadows, backgroundColor } = c;\n\n const canvasView = {\n type: 'game-canvas3-d',\n tiles: `@${entityName}`,\n units: `@${entityName}`,\n features: `@${entityName}`,\n orientation,\n cameraMode,\n showGrid,\n shadows,\n backgroundColor,\n tileClickEvent: 'TILE_CLICK',\n unitClickEvent: 'UNIT_CLICK',\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'idle', isInitial: true },\n { name: 'active' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'TILE_CLICK', name: 'Tile Click', payload: [{ name: 'tileId', type: 'string', required: true }] },\n { key: 'UNIT_CLICK', name: 'Unit Click', payload: [{ name: 'unitId', type: 'string', required: true }] },\n { key: 'CAMERA_CHANGE', name: 'Camera Change' },\n ],\n transitions: [\n { from: 'idle', to: 'idle', event: 'INIT', effects: [['fetch', entityName], ['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'idle', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'TILE_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'UNIT_CLICK', effects: [['render-ui', 'main', canvasView]] },\n { from: 'active', to: 'active', event: 'CAMERA_CHANGE', effects: [] },\n { from: 'idle', to: 'idle', event: 'CAMERA_CHANGE', effects: [] },\n ],\n },\n } as Trait;\n}\n\nfunction buildPage(c: GameCanvas3dConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function stdGameCanvas3dEntity(params: StdGameCanvas3dParams): Entity { return buildEntity(resolve(params)); }\nexport function stdGameCanvas3dTrait(params: StdGameCanvas3dParams): Trait { return buildTrait(resolve(params)); }\nexport function stdGameCanvas3dPage(params: StdGameCanvas3dParams): Page { return buildPage(resolve(params)); }\n\nexport function stdGameCanvas3d(params: StdGameCanvas3dParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(`${c.entityName}Orbital`, buildEntity(c), [buildTrait(c)], [buildPage(c)]);\n}\n","/**\n * std-turn-based-battle\n *\n * Turn-based strategy game molecule (Fire Emblem, XCOM style).\n * Composes game atoms into a two-trait orbital:\n *\n * 1. BattleFlow trait (primary): menu -> playing -> paused -> gameover\n * Renders game-menu, game-hud + combat-log, game-over-screen per state.\n * 2. BattleLog trait (secondary): idle state, combat-log pattern.\n * Only renders when LOG_EVENT fires from the shared event bus.\n *\n * Composition pattern: extractTrait from atom orbitals, assemble into\n * one orbital with one shared entity and one page.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdCombatLog } from './std-combat-log.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTurnBasedBattleParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Game config\n gameTitle?: string;\n boardWidth?: number;\n boardHeight?: number;\n\n // Labels\n menuSubtitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Combat log\n logTitle?: string;\n logMaxVisible?: number;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface BattleConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n battleTraitName: string;\n logTraitName: string;\n gameTitle: string;\n boardWidth: number;\n boardHeight: number;\n menuSubtitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n logTitle: string;\n logMaxVisible: number;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdTurnBasedBattleParams): BattleConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n battleTraitName: `${entityName}BattleFlow`,\n logTraitName: `${entityName}CombatLog`,\n gameTitle: params.gameTitle ?? 'Battle Arena',\n boardWidth: params.boardWidth ?? 8,\n boardHeight: params.boardHeight ?? 8,\n menuSubtitle: params.menuSubtitle ?? 'Turn-Based Strategy',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Battle Over',\n logTitle: params.logTitle ?? 'Combat Log',\n logMaxVisible: params.logMaxVisible ?? 10,\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// BattleFlow trait (primary state machine)\n// ============================================================================\n\nfunction buildBattleFlowTrait(c: BattleConfig): Trait {\n const { entityName, gameTitle, menuSubtitle, pauseTitle, gameoverTitle } = c;\n\n // menu state: game-menu with Start Battle button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuSubtitle,\n menuItems: [\n { label: 'Start Battle', event: 'START', variant: 'primary' },\n ],\n };\n\n // playing state: game-hud showing turn/score stats\n const playingUI = {\n type: 'game-hud',\n stats: [\n { label: 'Turn', value: '@entity.turn' },\n { label: 'Score', value: '@entity.score' },\n ],\n };\n\n // paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // gameover state: game-over-screen with final stats\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Turns', value: '@entity.turn' },\n { label: 'Score', value: '@entity.score' },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.battleTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Battle' },\n { key: 'END_TURN', name: 'End Turn' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Game Over' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu (fetch entity, render menu)\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // END_TURN: playing -> playing (increment turn)\n {\n from: 'playing', to: 'playing', event: 'END_TURN',\n effects: [\n ['set', '@entity.turn', ['+', '@entity.turn', 1]],\n ['render-ui', 'main', playingUI],\n ],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused (modal)\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// BattleLog trait (extracted from stdCombatLog atom, INIT render removed)\n// ============================================================================\n\nfunction buildBattleLogTrait(c: BattleConfig): Trait {\n const logTrait = extractTrait(stdCombatLog({\n entityName: c.entityName,\n fields: c.fields,\n title: c.logTitle,\n maxVisible: c.logMaxVisible,\n autoScroll: true,\n showTimestamps: true,\n }));\n\n // Override the name to avoid collision with standalone combat-log\n logTrait.name = c.logTraitName;\n\n // Remove the INIT transition's render-ui effect so the log does not\n // render to main on page load (the BattleFlow trait owns main).\n // Keep the fetch so entity data is ready when LOG_EVENT fires.\n const sm = logTrait.stateMachine;\n if (sm && 'transitions' in sm) {\n const transitions = sm.transitions as Array<{\n event: string;\n effects: unknown[];\n }>;\n for (const t of transitions) {\n if (t.event === 'INIT') {\n t.effects = t.effects.filter(e =>\n !(Array.isArray(e) && e[0] === 'render-ui'),\n );\n }\n }\n }\n\n return logTrait;\n}\n\n// ============================================================================\n// Entity, Page builders\n// ============================================================================\n\nfunction buildEntity(c: BattleConfig): Entity {\n return makeEntity({\n name: c.entityName,\n fields: c.fields,\n persistence: c.persistence,\n collection: c.collection,\n });\n}\n\nfunction buildPage(c: BattleConfig): Page {\n return {\n name: c.pageName,\n path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.battleTraitName },\n { ref: c.logTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdTurnBasedBattleEntity(params: StdTurnBasedBattleParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdTurnBasedBattleTrait(params: StdTurnBasedBattleParams): Trait {\n return buildBattleFlowTrait(resolve(params));\n}\n\nexport function stdTurnBasedBattlePage(params: StdTurnBasedBattleParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdTurnBasedBattle(params: StdTurnBasedBattleParams): OrbitalDefinition {\n const c = resolve(params);\n\n const battleFlowTrait = buildBattleFlowTrait(c);\n const battleLogTrait = buildBattleLogTrait(c);\n const entity = buildEntity(c);\n const page = buildPage(c);\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [battleFlowTrait, battleLogTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-platformer-game\n *\n * Side-scrolling platformer game molecule.\n * Composes game atoms into a two-trait orbital:\n *\n * 1. PlatformerFlow trait (primary): menu -> playing -> paused -> gameover\n * Renders game-menu, platformer-canvas, game-over-screen per state.\n * 2. PlatformerCanvas trait (secondary): extracted from stdPlatformerCanvas,\n * INIT render-ui removed (standalone: false pattern) so the flow trait\n * owns the main render slot.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdPlatformerCanvas } from './std-platformer-canvas.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPlatformerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Game config\n gameTitle?: string;\n canvasWidth?: number;\n canvasHeight?: number;\n\n // Labels\n menuSubtitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PlatformerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n flowTraitName: string;\n canvasTraitName: string;\n gameTitle: string;\n canvasWidth: number;\n canvasHeight: number;\n menuSubtitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPlatformerGameParams): PlatformerGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n flowTraitName: `${entityName}PlatformerFlow`,\n canvasTraitName: `${entityName}PlatformerCanvas`,\n gameTitle: params.gameTitle ?? 'Platformer',\n canvasWidth: params.canvasWidth ?? 800,\n canvasHeight: params.canvasHeight ?? 400,\n menuSubtitle: params.menuSubtitle ?? 'Side-Scrolling Adventure',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Game Over',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// PlatformerFlow trait (primary state machine)\n// ============================================================================\n\nfunction buildPlatformerFlowTrait(c: PlatformerGameConfig): Trait {\n const { entityName, gameTitle, menuSubtitle, pauseTitle, gameoverTitle, canvasWidth, canvasHeight } = c;\n\n // menu state: game-menu with Start Game button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuSubtitle,\n menuItems: [\n { label: 'Start Game', event: 'START', variant: 'primary' },\n ],\n };\n\n // playing state: platformer-canvas for side-scrolling gameplay\n const playingUI = {\n type: 'platformer-canvas',\n canvasWidth,\n canvasHeight,\n worldWidth: canvasWidth * 3,\n worldHeight: canvasHeight,\n followCamera: true,\n bgColor: '#1a1a2e',\n leftEvent: 'LEFT',\n rightEvent: 'RIGHT',\n jumpEvent: 'JUMP',\n stopEvent: 'STOP',\n };\n\n // paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // gameover state: game-over-screen with final stats\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Lives', value: '@entity.lives' },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.flowTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Game' },\n { key: 'LEFT', name: 'Move Left' },\n { key: 'RIGHT', name: 'Move Right' },\n { key: 'JUMP', name: 'Jump' },\n { key: 'STOP', name: 'Stop' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Game Over' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu (fetch entity, render menu)\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing (render platformer canvas)\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // Movement: playing -> playing self-loops\n {\n from: 'playing', to: 'playing', event: 'LEFT',\n effects: [],\n },\n {\n from: 'playing', to: 'playing', event: 'RIGHT',\n effects: [],\n },\n {\n from: 'playing', to: 'playing', event: 'JUMP',\n effects: [],\n },\n {\n from: 'playing', to: 'playing', event: 'STOP',\n effects: [],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused (modal)\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// PlatformerCanvas trait (extracted from stdPlatformerCanvas, INIT render removed)\n// ============================================================================\n\nfunction buildPlatformerCanvasTrait(c: PlatformerGameConfig): Trait {\n const canvasTrait = extractTrait(stdPlatformerCanvas({\n entityName: c.entityName,\n fields: c.fields,\n canvasWidth: c.canvasWidth,\n canvasHeight: c.canvasHeight,\n followCamera: true,\n bgColor: '#1a1a2e',\n }));\n\n // Override name to avoid collision with standalone platformer-canvas\n canvasTrait.name = c.canvasTraitName;\n\n // Remove the INIT transition's render-ui effect so the canvas does not\n // render to main on page load (the PlatformerFlow trait owns main).\n // Keep the fetch so entity data is ready.\n const sm = canvasTrait.stateMachine;\n if (sm && 'transitions' in sm) {\n const transitions = sm.transitions as Array<{\n event: string;\n effects: unknown[];\n }>;\n for (const t of transitions) {\n if (t.event === 'INIT') {\n t.effects = t.effects.filter(e =>\n !(Array.isArray(e) && e[0] === 'render-ui'),\n );\n }\n }\n }\n\n return canvasTrait;\n}\n\n// ============================================================================\n// Entity, Page builders\n// ============================================================================\n\nfunction buildEntity(c: PlatformerGameConfig): Entity {\n return makeEntity({\n name: c.entityName,\n fields: c.fields,\n persistence: c.persistence,\n collection: c.collection,\n });\n}\n\nfunction buildPage(c: PlatformerGameConfig): Page {\n return {\n name: c.pageName,\n path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.flowTraitName },\n { ref: c.canvasTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPlatformerGameEntity(params: StdPlatformerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPlatformerGameTrait(params: StdPlatformerGameParams): Trait {\n return buildPlatformerFlowTrait(resolve(params));\n}\n\nexport function stdPlatformerGamePage(params: StdPlatformerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPlatformerGame(params: StdPlatformerGameParams): OrbitalDefinition {\n const c = resolve(params);\n\n const flowTrait = buildPlatformerFlowTrait(c);\n const canvasTrait = buildPlatformerCanvasTrait(c);\n const entity = buildEntity(c);\n const page = buildPage(c);\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [flowTrait, canvasTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-puzzle-game\n *\n * Puzzle game molecule.\n * Composes game atoms into a two-trait orbital:\n *\n * 1. PuzzleFlow trait (primary): menu -> playing -> paused -> gameover\n * Renders game-menu, game-canvas-2d with score-board, game-over-screen.\n * 2. PuzzleScore trait (secondary): extracted from stdScoreBoard,\n * INIT render-ui removed (standalone: false pattern) so the flow trait\n * owns the main render slot.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, ensureIdField, plural, extractTrait } from '@almadar/core/builders';\nimport { stdScoreBoard } from './std-score-board.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPuzzleGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n\n // Game config\n gameTitle?: string;\n width?: number;\n height?: number;\n\n // Labels\n menuSubtitle?: string;\n pauseTitle?: string;\n gameoverTitle?: string;\n\n // Page\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface PuzzleGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n flowTraitName: string;\n scoreTraitName: string;\n gameTitle: string;\n width: number;\n height: number;\n menuSubtitle: string;\n pauseTitle: string;\n gameoverTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdPuzzleGameParams): PuzzleGameConfig {\n const { entityName } = params;\n const baseFields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n // Merge in score-board fields that the extracted PuzzleScore trait references\n const fields = [\n ...baseFields,\n ...(baseFields.some(f => f.name === 'score') ? [] : [{ name: 'score', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'highScore') ? [] : [{ name: 'highScore', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'combo') ? [] : [{ name: 'combo', type: 'number' as const, default: 0 }]),\n ...(baseFields.some(f => f.name === 'multiplier') ? [] : [{ name: 'multiplier', type: 'number' as const, default: 1 }]),\n ...(baseFields.some(f => f.name === 'level') ? [] : [{ name: 'level', type: 'number' as const, default: 1 }]),\n ];\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n flowTraitName: `${entityName}PuzzleFlow`,\n scoreTraitName: `${entityName}PuzzleScore`,\n gameTitle: params.gameTitle ?? 'Puzzle',\n width: params.width ?? 800,\n height: params.height ?? 600,\n menuSubtitle: params.menuSubtitle ?? 'Puzzle Challenge',\n pauseTitle: params.pauseTitle ?? 'Paused',\n gameoverTitle: params.gameoverTitle ?? 'Puzzle Complete',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// PuzzleFlow trait (primary state machine)\n// ============================================================================\n\nfunction buildPuzzleFlowTrait(c: PuzzleGameConfig): Trait {\n const { entityName, gameTitle, menuSubtitle, pauseTitle, gameoverTitle, width, height } = c;\n\n // menu state: game-menu with Start Puzzle button\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n subtitle: menuSubtitle,\n menuItems: [\n { label: 'Start Puzzle', event: 'START', variant: 'primary' },\n ],\n };\n\n // playing state: game-canvas-2d for puzzle rendering\n const playingUI = {\n type: 'game-canvas2-d',\n width,\n height,\n fps: 60,\n };\n\n // paused state: game-menu in modal with Resume/Quit\n const pausedModalUI = {\n type: 'game-menu',\n title: pauseTitle,\n menuItems: [\n { label: 'Resume', event: 'RESUME', variant: 'primary' },\n { label: 'Quit', event: 'RESTART', variant: 'ghost' },\n ],\n };\n\n // gameover state: game-over-screen with final stats\n const gameoverUI = {\n type: 'game-over-screen',\n title: gameoverTitle,\n stats: [\n { label: 'Score', value: '@entity.score' },\n { label: 'Moves', value: '@entity.moves' },\n ],\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n { label: 'Main Menu', event: 'RESTART', variant: 'secondary' },\n ],\n };\n\n return {\n name: c.flowTraitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'paused' },\n { name: 'gameover' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start Puzzle' },\n { key: 'MOVE', name: 'Make Move' },\n { key: 'HINT', name: 'Show Hint' },\n { key: 'PAUSE', name: 'Pause' },\n { key: 'RESUME', name: 'Resume' },\n { key: 'GAME_OVER', name: 'Puzzle Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n // INIT: menu -> menu (fetch entity, render menu)\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n // START: menu -> playing (render puzzle canvas)\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n // MOVE: playing -> playing (increment moves)\n {\n from: 'playing', to: 'playing', event: 'MOVE',\n effects: [\n ['set', '@entity.moves', ['+', '@entity.moves', 1]],\n ['render-ui', 'main', playingUI],\n ],\n },\n // HINT: playing -> playing self-loop\n {\n from: 'playing', to: 'playing', event: 'HINT',\n effects: [],\n },\n // NAVIGATE: self-loops (game-menu emits NAVIGATE internally)\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'paused', to: 'paused', event: 'NAVIGATE',\n effects: [],\n },\n // PAUSE: playing -> paused (modal)\n {\n from: 'playing', to: 'paused', event: 'PAUSE',\n effects: [['render-ui', 'modal', pausedModalUI]],\n },\n // RESUME: paused -> playing\n {\n from: 'paused', to: 'playing', event: 'RESUME',\n effects: [['render-ui', 'modal', null]],\n },\n // CLOSE: paused -> playing (modal exit requirement)\n {\n from: 'paused', to: 'playing', event: 'CLOSE',\n effects: [['render-ui', 'modal', null]],\n },\n // GAME_OVER: playing -> gameover\n {\n from: 'playing', to: 'gameover', event: 'GAME_OVER',\n effects: [['render-ui', 'main', gameoverUI]],\n },\n // RESTART: gameover -> menu\n {\n from: 'gameover', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n // RESTART: paused -> menu\n {\n from: 'paused', to: 'menu', event: 'RESTART',\n effects: [\n ['render-ui', 'modal', null],\n ['render-ui', 'main', menuUI],\n ],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// PuzzleScore trait (extracted from stdScoreBoard, INIT render removed)\n// ============================================================================\n\nfunction buildPuzzleScoreTrait(c: PuzzleGameConfig): Trait {\n const scoreTrait = extractTrait(stdScoreBoard({\n entityName: c.entityName,\n fields: c.fields,\n }));\n\n // Override name to avoid collision with standalone score-board\n scoreTrait.name = c.scoreTraitName;\n\n // Remove the INIT transition's render-ui effect so the score board does not\n // render to main on page load (the PuzzleFlow trait owns main).\n // Keep the fetch so entity data is ready when ADD_SCORE fires.\n const sm = scoreTrait.stateMachine;\n if (sm && 'transitions' in sm) {\n const transitions = sm.transitions as Array<{\n event: string;\n effects: unknown[];\n }>;\n for (const t of transitions) {\n if (t.event === 'INIT') {\n t.effects = t.effects.filter(e =>\n !(Array.isArray(e) && e[0] === 'render-ui'),\n );\n }\n }\n }\n\n return scoreTrait;\n}\n\n// ============================================================================\n// Entity, Page builders\n// ============================================================================\n\nfunction buildEntity(c: PuzzleGameConfig): Entity {\n return makeEntity({\n name: c.entityName,\n fields: c.fields,\n persistence: c.persistence,\n collection: c.collection,\n });\n}\n\nfunction buildPage(c: PuzzleGameConfig): Page {\n return {\n name: c.pageName,\n path: c.pagePath,\n ...(c.isInitial ? { isInitial: true } : {}),\n traits: [\n { ref: c.flowTraitName },\n { ref: c.scoreTraitName },\n ],\n } as Page;\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdPuzzleGameEntity(params: StdPuzzleGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdPuzzleGameTrait(params: StdPuzzleGameParams): Trait {\n return buildPuzzleFlowTrait(resolve(params));\n}\n\nexport function stdPuzzleGamePage(params: StdPuzzleGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdPuzzleGame(params: StdPuzzleGameParams): OrbitalDefinition {\n const c = resolve(params);\n\n const flowTrait = buildPuzzleFlowTrait(c);\n const scoreTrait = buildPuzzleScoreTrait(c);\n const entity = buildEntity(c);\n const page = buildPage(c);\n\n return {\n name: `${c.entityName}Orbital`,\n entity,\n traits: [flowTrait, scoreTrait],\n pages: [page],\n } as OrbitalDefinition;\n}\n","/**\n * std-builder-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `builder-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdBuilderGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface BuilderGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdBuilderGameParams): BuilderGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}BuilderGame`,\n gameTitle: params.gameTitle ?? 'Builder Challenge',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: BuilderGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'builder-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: BuilderGameConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildPage(c: BuilderGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdBuilderGameEntity(params: StdBuilderGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdBuilderGameTrait(params: StdBuilderGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdBuilderGamePage(params: StdBuilderGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdBuilderGame(params: StdBuilderGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-classifier-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `classifier-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdClassifierGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface ClassifierGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdClassifierGameParams): ClassifierGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}ClassifierGame`,\n gameTitle: params.gameTitle ?? 'Sort & Classify',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: ClassifierGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'classifier-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: ClassifierGameConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildPage(c: ClassifierGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdClassifierGameEntity(params: StdClassifierGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdClassifierGameTrait(params: StdClassifierGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdClassifierGamePage(params: StdClassifierGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdClassifierGame(params: StdClassifierGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-sequencer-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `sequencer-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSequencerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SequencerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSequencerGameParams): SequencerGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}SequencerGame`,\n gameTitle: params.gameTitle ?? 'Sequencer',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: SequencerGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'sequencer-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: SequencerGameConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildPage(c: SequencerGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSequencerGameEntity(params: StdSequencerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSequencerGameTrait(params: StdSequencerGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSequencerGamePage(params: StdSequencerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSequencerGame(params: StdSequencerGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-debugger-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `debugger-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDebuggerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface DebuggerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdDebuggerGameParams): DebuggerGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}DebuggerGame`,\n gameTitle: params.gameTitle ?? 'Bug Hunter',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: DebuggerGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'debugger-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: DebuggerGameConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildPage(c: DebuggerGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdDebuggerGameEntity(params: StdDebuggerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdDebuggerGameTrait(params: StdDebuggerGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdDebuggerGamePage(params: StdDebuggerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdDebuggerGame(params: StdDebuggerGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-negotiator-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `negotiator-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdNegotiatorGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface NegotiatorGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdNegotiatorGameParams): NegotiatorGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}NegotiatorGame`,\n gameTitle: params.gameTitle ?? 'Negotiator',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: NegotiatorGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'negotiator-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: NegotiatorGameConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildPage(c: NegotiatorGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdNegotiatorGameEntity(params: StdNegotiatorGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdNegotiatorGameTrait(params: StdNegotiatorGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdNegotiatorGamePage(params: StdNegotiatorGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdNegotiatorGame(params: StdNegotiatorGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-simulator-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `simulator-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSimulatorGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface SimulatorGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdSimulatorGameParams): SimulatorGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}SimulatorGame`,\n gameTitle: params.gameTitle ?? 'Simulator',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: SimulatorGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'simulator-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: SimulatorGameConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildPage(c: SimulatorGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdSimulatorGameEntity(params: StdSimulatorGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdSimulatorGameTrait(params: StdSimulatorGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdSimulatorGamePage(params: StdSimulatorGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdSimulatorGame(params: StdSimulatorGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-event-handler-game\n *\n * Educational game molecule: menu -> playing -> complete.\n * Uses the `event-handler-board` pattern for the playing state.\n *\n * @level molecule\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalDefinition, Entity, Page, Trait, EntityField } from '@almadar/core/types';\nimport { makeEntity, makePage, makeOrbital, ensureIdField, plural } from '@almadar/core/builders';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdEventHandlerGameParams {\n entityName: string;\n fields: EntityField[];\n persistence?: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n gameTitle?: string;\n pageName?: string;\n pagePath?: string;\n isInitial?: boolean;\n}\n\n// ============================================================================\n// Resolve\n// ============================================================================\n\ninterface EventHandlerGameConfig {\n entityName: string;\n fields: EntityField[];\n persistence: 'persistent' | 'runtime' | 'singleton';\n collection?: string;\n traitName: string;\n gameTitle: string;\n pageName: string;\n pagePath: string;\n isInitial: boolean;\n}\n\nfunction resolve(params: StdEventHandlerGameParams): EventHandlerGameConfig {\n const { entityName } = params;\n const fields = ensureIdField(params.fields);\n const p = plural(entityName);\n\n return {\n entityName,\n fields,\n persistence: params.persistence ?? 'runtime',\n collection: params.collection,\n traitName: `${entityName}EventHandlerGame`,\n gameTitle: params.gameTitle ?? 'Event Handler',\n pageName: params.pageName ?? `${entityName}Page`,\n pagePath: params.pagePath ?? `/${p.toLowerCase()}`,\n isInitial: params.isInitial ?? false,\n };\n}\n\n// ============================================================================\n// Trait\n// ============================================================================\n\nfunction buildTrait(c: EventHandlerGameConfig): Trait {\n const { entityName, gameTitle } = c;\n\n const menuUI = {\n type: 'game-menu',\n title: gameTitle,\n menuItems: [\n { label: 'Start', event: 'START', variant: 'primary' },\n ],\n };\n\n const playingUI = {\n type: 'event-handler-board',\n entity: entityName,\n completeEvent: 'COMPLETE',\n };\n\n const completeUI = {\n type: 'game-over-screen',\n title: 'Well Done!',\n menuItems: [\n { label: 'Play Again', event: 'RESTART', variant: 'primary' },\n ],\n };\n\n return {\n name: c.traitName,\n linkedEntity: entityName,\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'menu', isInitial: true },\n { name: 'playing' },\n { name: 'complete' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'START', name: 'Start' },\n { key: 'COMPLETE', name: 'Complete' },\n { key: 'RESTART', name: 'Restart' },\n { key: 'NAVIGATE', name: 'Navigate' },\n ],\n transitions: [\n {\n from: 'menu', to: 'menu', event: 'INIT',\n effects: [\n ['fetch', entityName],\n ['render-ui', 'main', menuUI],\n ],\n },\n {\n from: 'menu', to: 'playing', event: 'START',\n effects: [['render-ui', 'main', playingUI]],\n },\n {\n from: 'menu', to: 'menu', event: 'NAVIGATE',\n effects: [],\n },\n {\n from: 'playing', to: 'complete', event: 'COMPLETE',\n effects: [['render-ui', 'main', completeUI]],\n },\n {\n from: 'complete', to: 'menu', event: 'RESTART',\n effects: [['render-ui', 'main', menuUI]],\n },\n ],\n },\n } as Trait;\n}\n\n// ============================================================================\n// Entity, Page\n// ============================================================================\n\nfunction buildEntity(c: EventHandlerGameConfig): Entity {\n return makeEntity({ name: c.entityName, fields: c.fields, persistence: c.persistence, collection: c.collection });\n}\n\nfunction buildPage(c: EventHandlerGameConfig): Page {\n return makePage({ name: c.pageName, path: c.pagePath, traitName: c.traitName, isInitial: c.isInitial });\n}\n\n// ============================================================================\n// Projections (public API)\n// ============================================================================\n\nexport function stdEventHandlerGameEntity(params: StdEventHandlerGameParams): Entity {\n return buildEntity(resolve(params));\n}\n\nexport function stdEventHandlerGameTrait(params: StdEventHandlerGameParams): Trait {\n return buildTrait(resolve(params));\n}\n\nexport function stdEventHandlerGamePage(params: StdEventHandlerGameParams): Page {\n return buildPage(resolve(params));\n}\n\n// ============================================================================\n// Composed Orbital\n// ============================================================================\n\nexport function stdEventHandlerGame(params: StdEventHandlerGameParams): OrbitalDefinition {\n const c = resolve(params);\n return makeOrbital(\n `${c.entityName}Orbital`,\n buildEntity(c),\n [buildTrait(c)],\n [buildPage(c)],\n );\n}\n","/**\n * std-social-feed\n *\n * Social feed organism. Composes molecules via compose:\n * - stdDetail(Post): browse + create + view posts\n * - stdMessaging(Comment): messaging thread for comments\n *\n * Pages: /feed (initial), /messages\n * Connections: COMMENT event wires posts to comments.\n *\n * @level organism\n * @family social\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdDetail } from './std-detail.js';\nimport { stdMessaging } from './std-messaging.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdSocialFeedParams {\n appName?: string;\n postFields?: EntityField[];\n commentFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_POST_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', default: '' },\n { name: 'content', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'createdAt', type: 'string', default: '' },\n { name: 'likes', type: 'number', default: 0 },\n];\n\nconst DEFAULT_COMMENT_FIELDS: EntityField[] = [\n { name: 'body', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'postId', type: 'string', default: '' },\n { name: 'createdAt', type: 'string', default: '' },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdSocialFeed(params: StdSocialFeedParams): OrbitalSchema {\n const appName = params.appName ?? 'SocialFeed';\n\n const postOrbital = stdDetail({\n entityName: 'Post',\n fields: params.postFields ?? DEFAULT_POST_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Feed',\n headerIcon: 'rss',\n createButtonLabel: 'New Post',\n createFormTitle: 'Create Post',\n pageName: 'FeedPage',\n pagePath: '/feed',\n isInitial: true,\n });\n\n const commentOrbital = stdMessaging({\n entityName: 'Comment',\n fields: params.commentFields ?? DEFAULT_COMMENT_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Messages',\n headerIcon: 'message-circle',\n composerTitle: 'New Comment',\n pageName: 'MessagesPage',\n pagePath: '/messages',\n });\n\n const pages: ComposePage[] = [\n { name: 'FeedPage', path: '/feed', traits: ['PostBrowse', 'PostCreate', 'PostView'], isInitial: true },\n { name: 'MessagesPage', path: '/messages', traits: ['CommentBrowse', 'CommentCompose', 'CommentView'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'PostBrowse',\n to: 'CommentBrowse',\n event: { event: 'COMMENT', description: 'Navigate to comments for a post' },\n },\n ];\n\n return compose([postOrbital, commentOrbital], pages, connections, appName);\n}\n","/**\n * std-lms\n *\n * Learning management system organism. Composes molecules via compose:\n * - stdList(Course): CRUD list of courses\n * - stdWizard(Enrollment): multi-step enrollment wizard\n * - stdDisplay(Progress): read-only progress dashboard\n *\n * Pages: /courses (initial), /enroll, /progress\n * Connections: ENROLL (courses->enrollment), COMPLETE_LESSON (enrollment->progress)\n *\n * @level organism\n * @family education\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdWizard } from './std-wizard.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdLmsParams {\n appName?: string;\n courseFields?: EntityField[];\n enrollmentFields?: EntityField[];\n progressFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_COURSE_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', default: '' },\n { name: 'description', type: 'string', default: '' },\n { name: 'instructor', type: 'string', default: '' },\n { name: 'duration', type: 'string', default: '' },\n { name: 'level', type: 'string', default: 'Beginner' },\n];\n\nconst DEFAULT_ENROLLMENT_FIELDS: EntityField[] = [\n { name: 'studentName', type: 'string', default: '' },\n { name: 'email', type: 'string', default: '' },\n { name: 'courseId', type: 'string', default: '' },\n { name: 'enrolledAt', type: 'string', default: '' },\n { name: 'status', type: 'string', default: 'pending' },\n];\n\nconst DEFAULT_PROGRESS_FIELDS: EntityField[] = [\n { name: 'courseName', type: 'string', default: '' },\n { name: 'lessonsCompleted', type: 'number', default: 0 },\n { name: 'totalLessons', type: 'number', default: 0 },\n { name: 'percentComplete', type: 'number', default: 0 },\n { name: 'lastActivity', type: 'string', default: '' },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdLms(params: StdLmsParams): OrbitalSchema {\n const appName = params.appName ?? 'LMS';\n\n const courseOrbital = stdList({\n entityName: 'Course',\n fields: params.courseFields ?? DEFAULT_COURSE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Courses',\n headerIcon: 'book-open',\n createButtonLabel: 'Add Course',\n createFormTitle: 'New Course',\n pageName: 'CoursesPage',\n pagePath: '/courses',\n isInitial: true,\n });\n\n const enrollmentOrbital = stdWizard({\n entityName: 'Enrollment',\n fields: params.enrollmentFields ?? DEFAULT_ENROLLMENT_FIELDS,\n persistence: 'runtime',\n wizardTitle: 'Course Enrollment',\n completeTitle: 'Enrolled!',\n completeDescription: 'You have been successfully enrolled in the course.',\n headerIcon: 'user-plus',\n steps: [\n { name: 'Student Info', fields: ['studentName', 'email'] },\n { name: 'Course Selection', fields: ['courseId'] },\n ],\n pageName: 'EnrollPage',\n pagePath: '/enroll',\n });\n\n const progressOrbital = stdDisplay({\n entityName: 'Progress',\n fields: params.progressFields ?? DEFAULT_PROGRESS_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Progress',\n headerIcon: 'trending-up',\n columns: 3,\n pageName: 'ProgressPage',\n pagePath: '/progress',\n });\n\n const pages: ComposePage[] = [\n { name: 'CoursesPage', path: '/courses', traits: ['CourseBrowse', 'CourseCreate', 'CourseEdit', 'CourseView', 'CourseDelete'], isInitial: true },\n { name: 'EnrollPage', path: '/enroll', traits: ['EnrollmentWizard'] },\n { name: 'ProgressPage', path: '/progress', traits: ['ProgressDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'CourseBrowse',\n to: 'EnrollmentWizard',\n event: { event: 'ENROLL', description: 'Enroll in a course' },\n },\n {\n from: 'EnrollmentWizard',\n to: 'ProgressDisplay',\n event: { event: 'COMPLETE_LESSON', description: 'Lesson completed, update progress' },\n },\n ];\n\n return compose([courseOrbital, enrollmentOrbital, progressOrbital], pages, connections, appName);\n}\n","/**\n * std-crm\n *\n * Customer relationship management organism. Composes molecules via compose:\n * - stdList(Contact): CRUD list of contacts\n * - stdList(Deal): CRUD list of deals\n * - stdDisplay(Pipeline): read-only pipeline dashboard\n * - stdMessaging(Note): notes/communication thread\n *\n * Pages: /contacts (initial), /deals, /pipeline, /notes\n * Connections: CONVERT_LEAD (contacts->deals), CLOSE_DEAL (deals->pipeline)\n *\n * @level organism\n * @family business\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdDisplay } from './std-display.js';\nimport { stdMessaging } from './std-messaging.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCrmParams {\n appName?: string;\n contactFields?: EntityField[];\n dealFields?: EntityField[];\n pipelineFields?: EntityField[];\n noteFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_CONTACT_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', default: '' },\n { name: 'company', type: 'string', default: '' },\n { name: 'email', type: 'string', default: '' },\n { name: 'phone', type: 'string', default: '' },\n { name: 'status', type: 'string', default: 'lead' },\n];\n\nconst DEFAULT_DEAL_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', default: '' },\n { name: 'contactId', type: 'string', default: '' },\n { name: 'value', type: 'number', default: 0 },\n { name: 'stage', type: 'string', default: 'prospecting' },\n { name: 'closedAt', type: 'string', default: '' },\n];\n\nconst DEFAULT_PIPELINE_FIELDS: EntityField[] = [\n { name: 'totalDeals', type: 'number', default: 0 },\n { name: 'totalValue', type: 'number', default: 0 },\n { name: 'wonDeals', type: 'number', default: 0 },\n { name: 'lostDeals', type: 'number', default: 0 },\n { name: 'conversionRate', type: 'number', default: 0 },\n];\n\nconst DEFAULT_NOTE_FIELDS: EntityField[] = [\n { name: 'subject', type: 'string', default: '' },\n { name: 'body', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'createdAt', type: 'string', default: '' },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdCrm(params: StdCrmParams): OrbitalSchema {\n const appName = params.appName ?? 'CRM';\n\n const contactOrbital = stdList({\n entityName: 'Contact',\n fields: params.contactFields ?? DEFAULT_CONTACT_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Contacts',\n headerIcon: 'users',\n createButtonLabel: 'Add Contact',\n createFormTitle: 'New Contact',\n pageName: 'ContactsPage',\n pagePath: '/contacts',\n isInitial: true,\n });\n\n const dealOrbital = stdList({\n entityName: 'Deal',\n fields: params.dealFields ?? DEFAULT_DEAL_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Deals',\n headerIcon: 'briefcase',\n createButtonLabel: 'New Deal',\n createFormTitle: 'Create Deal',\n pageName: 'DealsPage',\n pagePath: '/deals',\n });\n\n const pipelineOrbital = stdDisplay({\n entityName: 'Pipeline',\n fields: params.pipelineFields ?? DEFAULT_PIPELINE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Pipeline',\n headerIcon: 'bar-chart-2',\n columns: 3,\n pageName: 'PipelinePage',\n pagePath: '/pipeline',\n });\n\n const noteOrbital = stdMessaging({\n entityName: 'Note',\n fields: params.noteFields ?? DEFAULT_NOTE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Notes',\n headerIcon: 'file-text',\n composerTitle: 'New Note',\n pageName: 'NotesPage',\n pagePath: '/notes',\n });\n\n const pages: ComposePage[] = [\n { name: 'ContactsPage', path: '/contacts', traits: ['ContactBrowse', 'ContactCreate', 'ContactEdit', 'ContactView', 'ContactDelete'], isInitial: true },\n { name: 'DealsPage', path: '/deals', traits: ['DealBrowse', 'DealCreate', 'DealEdit', 'DealView', 'DealDelete'] },\n { name: 'PipelinePage', path: '/pipeline', traits: ['PipelineDisplay'] },\n { name: 'NotesPage', path: '/notes', traits: ['NoteBrowse', 'NoteCompose', 'NoteView'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'ContactBrowse',\n to: 'DealBrowse',\n event: { event: 'CONVERT_LEAD', description: 'Convert contact lead to a deal' },\n },\n {\n from: 'DealBrowse',\n to: 'PipelineDisplay',\n event: { event: 'CLOSE_DEAL', description: 'Close a deal and update pipeline' },\n },\n ];\n\n return compose([contactOrbital, dealOrbital, pipelineOrbital, noteOrbital], pages, connections, appName);\n}\n","/**\n * std-hr-portal\n *\n * HR portal organism. Composes molecules via compose:\n * - stdList(Employee): CRUD list of employees\n * - stdWizard(Onboarding): multi-step onboarding wizard\n * - stdList(TimeOff): CRUD list of time-off requests\n * - stdDisplay(OrgChart): read-only org chart dashboard\n *\n * Pages: /employees (initial), /onboarding, /timeoff, /org-chart\n * Connections: ONBOARD (employees->onboarding), APPROVE_LEAVE (timeoff->orgchart)\n *\n * @level organism\n * @family hr\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdWizard } from './std-wizard.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdHrPortalParams {\n appName?: string;\n employeeFields?: EntityField[];\n onboardingFields?: EntityField[];\n timeOffFields?: EntityField[];\n orgChartFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_EMPLOYEE_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', default: '' },\n { name: 'email', type: 'string', default: '' },\n { name: 'department', type: 'string', default: '' },\n { name: 'role', type: 'string', default: '' },\n { name: 'startDate', type: 'string', default: '' },\n];\n\nconst DEFAULT_ONBOARDING_FIELDS: EntityField[] = [\n { name: 'employeeName', type: 'string', default: '' },\n { name: 'department', type: 'string', default: '' },\n { name: 'manager', type: 'string', default: '' },\n { name: 'equipmentReady', type: 'boolean', default: false },\n { name: 'accessGranted', type: 'boolean', default: false },\n];\n\nconst DEFAULT_TIMEOFF_FIELDS: EntityField[] = [\n { name: 'employeeName', type: 'string', default: '' },\n { name: 'leaveType', type: 'string', default: 'vacation' },\n { name: 'startDate', type: 'string', default: '' },\n { name: 'endDate', type: 'string', default: '' },\n { name: 'status', type: 'string', default: 'pending' },\n];\n\nconst DEFAULT_ORGCHART_FIELDS: EntityField[] = [\n { name: 'totalEmployees', type: 'number', default: 0 },\n { name: 'departments', type: 'number', default: 0 },\n { name: 'openPositions', type: 'number', default: 0 },\n { name: 'avgTenure', type: 'string', default: '0 years' },\n { name: 'headcount', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdHrPortal(params: StdHrPortalParams): OrbitalSchema {\n const appName = params.appName ?? 'HRPortal';\n\n const employeeOrbital = stdList({\n entityName: 'Employee',\n fields: params.employeeFields ?? DEFAULT_EMPLOYEE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Employees',\n headerIcon: 'users',\n createButtonLabel: 'Add Employee',\n createFormTitle: 'New Employee',\n pageName: 'EmployeesPage',\n pagePath: '/employees',\n isInitial: true,\n });\n\n const onboardingOrbital = stdWizard({\n entityName: 'Onboarding',\n fields: params.onboardingFields ?? DEFAULT_ONBOARDING_FIELDS,\n persistence: 'runtime',\n wizardTitle: 'Employee Onboarding',\n completeTitle: 'Onboarding Complete!',\n completeDescription: 'The new employee has been fully onboarded.',\n headerIcon: 'clipboard-check',\n steps: [\n { name: 'Employee Details', fields: ['employeeName', 'department'] },\n { name: 'Manager Assignment', fields: ['manager'] },\n { name: 'Setup Checklist', fields: ['equipmentReady', 'accessGranted'] },\n ],\n pageName: 'OnboardingPage',\n pagePath: '/onboarding',\n });\n\n const timeOffOrbital = stdList({\n entityName: 'TimeOff',\n fields: params.timeOffFields ?? DEFAULT_TIMEOFF_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Time Off Requests',\n headerIcon: 'calendar',\n createButtonLabel: 'Request Time Off',\n createFormTitle: 'New Time Off Request',\n pageName: 'TimeOffPage',\n pagePath: '/timeoff',\n });\n\n const orgChartOrbital = stdDisplay({\n entityName: 'OrgChart',\n fields: params.orgChartFields ?? DEFAULT_ORGCHART_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Org Chart',\n headerIcon: 'git-branch',\n columns: 3,\n pageName: 'OrgChartPage',\n pagePath: '/org-chart',\n });\n\n const pages: ComposePage[] = [\n { name: 'EmployeesPage', path: '/employees', traits: ['EmployeeBrowse', 'EmployeeCreate', 'EmployeeEdit', 'EmployeeView', 'EmployeeDelete'], isInitial: true },\n { name: 'OnboardingPage', path: '/onboarding', traits: ['OnboardingWizard'] },\n { name: 'TimeOffPage', path: '/timeoff', traits: ['TimeOffBrowse', 'TimeOffCreate', 'TimeOffEdit', 'TimeOffView', 'TimeOffDelete'] },\n { name: 'OrgChartPage', path: '/org-chart', traits: ['OrgChartDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'EmployeeBrowse',\n to: 'OnboardingWizard',\n event: { event: 'ONBOARD', description: 'Start onboarding for a new employee' },\n },\n {\n from: 'TimeOffBrowse',\n to: 'OrgChartDisplay',\n event: { event: 'APPROVE_LEAVE', description: 'Approve leave and update org chart' },\n },\n ];\n\n return compose([employeeOrbital, onboardingOrbital, timeOffOrbital, orgChartOrbital], pages, connections, appName);\n}\n","/**\n * std-helpdesk\n *\n * Helpdesk organism. Composes molecules via compose:\n * - stdList(Ticket): CRUD list of support tickets\n * - stdMessaging(Response): messaging thread for ticket responses\n * - stdDisplay(SupportMetrics): read-only metrics dashboard\n *\n * Pages: /tickets (initial), /responses, /metrics\n * Connections: ASSIGN (tickets->responses), RESOLVE (responses->metrics)\n *\n * @level organism\n * @family support\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport type { ComposeConnection, ComposePage } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdMessaging } from './std-messaging.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdHelpdeskParams {\n appName?: string;\n ticketFields?: EntityField[];\n responseFields?: EntityField[];\n metricsFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_TICKET_FIELDS: EntityField[] = [\n { name: 'subject', type: 'string', default: '' },\n { name: 'description', type: 'string', default: '' },\n { name: 'priority', type: 'string', default: 'medium' },\n { name: 'status', type: 'string', default: 'open' },\n { name: 'assignee', type: 'string', default: '' },\n];\n\nconst DEFAULT_RESPONSE_FIELDS: EntityField[] = [\n { name: 'ticketId', type: 'string', default: '' },\n { name: 'body', type: 'string', default: '' },\n { name: 'author', type: 'string', default: '' },\n { name: 'createdAt', type: 'string', default: '' },\n];\n\nconst DEFAULT_METRICS_FIELDS: EntityField[] = [\n { name: 'openTickets', type: 'number', default: 0 },\n { name: 'resolvedTickets', type: 'number', default: 0 },\n { name: 'avgResponseTime', type: 'string', default: '0h' },\n { name: 'satisfactionScore', type: 'number', default: 0 },\n { name: 'activeAgents', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Composed Application\n// ============================================================================\n\nexport function stdHelpdesk(params: StdHelpdeskParams): OrbitalSchema {\n const appName = params.appName ?? 'Helpdesk';\n\n const ticketOrbital = stdList({\n entityName: 'Ticket',\n fields: params.ticketFields ?? DEFAULT_TICKET_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Tickets',\n headerIcon: 'inbox',\n createButtonLabel: 'New Ticket',\n createFormTitle: 'Create Ticket',\n pageName: 'TicketsPage',\n pagePath: '/tickets',\n isInitial: true,\n });\n\n const responseOrbital = stdMessaging({\n entityName: 'Response',\n fields: params.responseFields ?? DEFAULT_RESPONSE_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Responses',\n headerIcon: 'message-circle',\n composerTitle: 'New Response',\n pageName: 'ResponsesPage',\n pagePath: '/responses',\n });\n\n const metricsOrbital = stdDisplay({\n entityName: 'SupportMetrics',\n fields: params.metricsFields ?? DEFAULT_METRICS_FIELDS,\n persistence: 'runtime',\n pageTitle: 'Support Metrics',\n headerIcon: 'activity',\n columns: 3,\n pageName: 'MetricsPage',\n pagePath: '/metrics',\n });\n\n const pages: ComposePage[] = [\n { name: 'TicketsPage', path: '/tickets', traits: ['TicketBrowse', 'TicketCreate', 'TicketEdit', 'TicketView', 'TicketDelete'], isInitial: true },\n { name: 'ResponsesPage', path: '/responses', traits: ['ResponseBrowse', 'ResponseCompose', 'ResponseView'] },\n { name: 'MetricsPage', path: '/metrics', traits: ['SupportMetricsDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'TicketBrowse',\n to: 'ResponseBrowse',\n event: { event: 'ASSIGN', description: 'Assign ticket and open response thread' },\n },\n {\n from: 'ResponseBrowse',\n to: 'SupportMetricsDisplay',\n event: { event: 'RESOLVE', description: 'Resolve ticket and update metrics' },\n },\n ];\n\n return compose([ticketOrbital, responseOrbital, metricsOrbital], pages, connections, appName);\n}\n","/**\n * std-ecommerce\n *\n * E-commerce organism. Composes molecules via compose:\n * - stdList(Product): product catalog with CRUD\n * - stdCart(CartItem): shopping cart with add/remove\n * - stdWizard(Checkout): checkout wizard\n * - stdList(OrderRecord): order history\n *\n * Cross-orbital connections:\n * - ADD_TO_CART: ProductBrowse -> CartItemCartBrowse\n * - CHECKOUT_STARTED: CartItemCartBrowse -> CheckoutWizard\n * - ORDER_PLACED: CheckoutWizard -> OrderRecordBrowse\n *\n * @level organism\n * @family commerce\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdCart } from './std-cart.js';\nimport { stdWizard } from './std-wizard.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdEcommerceParams {\n appName?: string;\n productFields?: EntityField[];\n cartItemFields?: EntityField[];\n orderFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_PRODUCT_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'price', type: 'number', required: true },\n { name: 'category', type: 'string' },\n { name: 'sku', type: 'string' },\n { name: 'inStock', type: 'boolean', default: true },\n];\n\nconst DEFAULT_CART_ITEM_FIELDS: EntityField[] = [\n { name: 'productName', type: 'string', required: true },\n { name: 'quantity', type: 'number', required: true, default: 1 },\n { name: 'unitPrice', type: 'number', required: true },\n { name: 'totalPrice', type: 'number' },\n];\n\nconst DEFAULT_ORDER_FIELDS: EntityField[] = [\n { name: 'customerName', type: 'string', required: true },\n { name: 'email', type: 'string', required: true },\n { name: 'shippingAddress', type: 'string', required: true },\n { name: 'paymentMethod', type: 'string', required: true },\n { name: 'orderTotal', type: 'number' },\n { name: 'status', type: 'string', default: 'pending' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdEcommerce(params: StdEcommerceParams): OrbitalSchema {\n const productFields = params.productFields ?? DEFAULT_PRODUCT_FIELDS;\n const cartItemFields = params.cartItemFields ?? DEFAULT_CART_ITEM_FIELDS;\n const orderFields = params.orderFields ?? DEFAULT_ORDER_FIELDS;\n\n const products = stdList({\n entityName: 'Product',\n fields: productFields,\n pageTitle: 'Products',\n headerIcon: 'package',\n pageName: 'ProductsPage',\n pagePath: '/products',\n isInitial: true,\n });\n\n const cart = stdCart({\n entityName: 'CartItem',\n fields: cartItemFields,\n pageTitle: 'Shopping Cart',\n headerIcon: 'shopping-cart',\n pageName: 'CartPage',\n pagePath: '/cart',\n });\n\n const checkout = stdWizard({\n entityName: 'Checkout',\n fields: orderFields,\n wizardTitle: 'Checkout',\n headerIcon: 'credit-card',\n pageName: 'CheckoutPage',\n pagePath: '/checkout',\n steps: [\n { name: 'Customer Info', fields: ['customerName', 'email'] },\n { name: 'Shipping', fields: ['shippingAddress'] },\n { name: 'Payment', fields: ['paymentMethod'] },\n ],\n completeTitle: 'Order Placed',\n completeDescription: 'Your order has been placed successfully.',\n submitButtonLabel: 'Place Order',\n });\n\n const orderHistory = stdList({\n entityName: 'OrderRecord',\n fields: orderFields,\n pageTitle: 'Order History',\n headerIcon: 'clipboard-list',\n pageName: 'OrdersPage',\n pagePath: '/orders',\n });\n\n return compose(\n [products, cart, checkout, orderHistory],\n [\n { name: 'ProductsPage', path: '/products', traits: ['ProductBrowse', 'ProductCreate', 'ProductEdit', 'ProductView', 'ProductDelete'], isInitial: true },\n { name: 'CartPage', path: '/cart', traits: ['CartItemCartBrowse', 'CartItemAddItem'] },\n { name: 'CheckoutPage', path: '/checkout', traits: ['CheckoutWizard'] },\n { name: 'OrdersPage', path: '/orders', traits: ['OrderRecordBrowse', 'OrderRecordCreate', 'OrderRecordEdit', 'OrderRecordView', 'OrderRecordDelete'] },\n ],\n [\n { from: 'ProductBrowse', to: 'CartItemCartBrowse', event: { event: 'ADD_TO_CART', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'CartItemCartBrowse', to: 'CheckoutWizard', event: { event: 'CHECKOUT_STARTED', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'CheckoutWizard', to: 'OrderRecordBrowse', event: { event: 'ORDER_PLACED', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n params.appName ?? 'EcommerceApp',\n );\n}\n","/**\n * std-healthcare\n *\n * Healthcare organism. Composes molecules via compose:\n * - stdList(Patient): patient registry with CRUD\n * - stdList(Appointment): appointment management\n * - stdWizard(IntakeForm): patient intake wizard\n * - stdDetail(Prescription): prescription browse + view\n * - stdDisplay(Dashboard): clinic dashboard KPIs\n *\n * Cross-orbital connections:\n * - INTAKE_COMPLETE: IntakeFormWizard -> PatientBrowse\n * - PRESCRIBE: AppointmentBrowse -> PrescriptionBrowse\n *\n * @level organism\n * @family healthcare\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdWizard } from './std-wizard.js';\nimport { stdDetail } from './std-detail.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdHealthcareParams {\n appName?: string;\n patientFields?: EntityField[];\n appointmentFields?: EntityField[];\n intakeFormFields?: EntityField[];\n prescriptionFields?: EntityField[];\n dashboardFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_PATIENT_FIELDS: EntityField[] = [\n { name: 'firstName', type: 'string', required: true },\n { name: 'lastName', type: 'string', required: true },\n { name: 'dateOfBirth', type: 'string', required: true },\n { name: 'phone', type: 'string' },\n { name: 'insuranceId', type: 'string' },\n { name: 'status', type: 'string', default: 'active' },\n];\n\nconst DEFAULT_APPOINTMENT_FIELDS: EntityField[] = [\n { name: 'patientName', type: 'string', required: true },\n { name: 'doctorName', type: 'string', required: true },\n { name: 'date', type: 'string', required: true },\n { name: 'time', type: 'string', required: true },\n { name: 'reason', type: 'string' },\n { name: 'status', type: 'string', default: 'scheduled' },\n];\n\nconst DEFAULT_INTAKE_FORM_FIELDS: EntityField[] = [\n { name: 'firstName', type: 'string', required: true },\n { name: 'lastName', type: 'string', required: true },\n { name: 'dateOfBirth', type: 'string', required: true },\n { name: 'allergies', type: 'string' },\n { name: 'medications', type: 'string' },\n { name: 'emergencyContact', type: 'string' },\n { name: 'insuranceProvider', type: 'string' },\n { name: 'insuranceId', type: 'string' },\n];\n\nconst DEFAULT_PRESCRIPTION_FIELDS: EntityField[] = [\n { name: 'medication', type: 'string', required: true },\n { name: 'dosage', type: 'string', required: true },\n { name: 'frequency', type: 'string', required: true },\n { name: 'patientName', type: 'string', required: true },\n { name: 'prescribedBy', type: 'string' },\n { name: 'startDate', type: 'string' },\n { name: 'endDate', type: 'string' },\n];\n\nconst DEFAULT_DASHBOARD_FIELDS: EntityField[] = [\n { name: 'totalPatients', type: 'number', default: 0 },\n { name: 'appointmentsToday', type: 'number', default: 0 },\n { name: 'pendingIntakes', type: 'number', default: 0 },\n { name: 'activePrescriptions', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdHealthcare(params: StdHealthcareParams): OrbitalSchema {\n const patientFields = params.patientFields ?? DEFAULT_PATIENT_FIELDS;\n const appointmentFields = params.appointmentFields ?? DEFAULT_APPOINTMENT_FIELDS;\n const intakeFormFields = params.intakeFormFields ?? DEFAULT_INTAKE_FORM_FIELDS;\n const prescriptionFields = params.prescriptionFields ?? DEFAULT_PRESCRIPTION_FIELDS;\n const dashboardFields = params.dashboardFields ?? DEFAULT_DASHBOARD_FIELDS;\n\n const patients = stdList({\n entityName: 'Patient',\n fields: patientFields,\n pageTitle: 'Patients',\n headerIcon: 'users',\n pageName: 'PatientsPage',\n pagePath: '/patients',\n isInitial: true,\n });\n\n const appointments = stdList({\n entityName: 'Appointment',\n fields: appointmentFields,\n pageTitle: 'Appointments',\n headerIcon: 'calendar',\n pageName: 'AppointmentsPage',\n pagePath: '/appointments',\n });\n\n const intake = stdWizard({\n entityName: 'IntakeForm',\n fields: intakeFormFields,\n wizardTitle: 'Patient Intake',\n headerIcon: 'clipboard',\n pageName: 'IntakePage',\n pagePath: '/intake',\n steps: [\n { name: 'Personal Info', fields: ['firstName', 'lastName', 'dateOfBirth'] },\n { name: 'Medical History', fields: ['allergies', 'medications'] },\n { name: 'Insurance', fields: ['emergencyContact', 'insuranceProvider', 'insuranceId'] },\n ],\n completeTitle: 'Intake Complete',\n completeDescription: 'Patient intake form has been submitted successfully.',\n submitButtonLabel: 'Submit Intake',\n });\n\n const prescriptions = stdDetail({\n entityName: 'Prescription',\n fields: prescriptionFields,\n pageTitle: 'Prescriptions',\n headerIcon: 'file-text',\n pageName: 'PrescriptionsPage',\n pagePath: '/prescriptions',\n });\n\n const dashboard = stdDisplay({\n entityName: 'Dashboard',\n fields: dashboardFields,\n pageTitle: 'Clinic Dashboard',\n headerIcon: 'activity',\n pageName: 'DashboardPage',\n pagePath: '/dashboard',\n columns: 4,\n persistence: 'singleton',\n });\n\n return compose(\n [patients, appointments, intake, prescriptions, dashboard],\n [\n { name: 'PatientsPage', path: '/patients', traits: ['PatientBrowse', 'PatientCreate', 'PatientEdit', 'PatientView', 'PatientDelete'], isInitial: true },\n { name: 'AppointmentsPage', path: '/appointments', traits: ['AppointmentBrowse', 'AppointmentCreate', 'AppointmentEdit', 'AppointmentView', 'AppointmentDelete'] },\n { name: 'IntakePage', path: '/intake', traits: ['IntakeFormWizard'] },\n { name: 'PrescriptionsPage', path: '/prescriptions', traits: ['PrescriptionBrowse', 'PrescriptionCreate', 'PrescriptionView'] },\n { name: 'DashboardPage', path: '/dashboard', traits: ['DashboardDisplay'] },\n ],\n [\n { from: 'IntakeFormWizard', to: 'PatientBrowse', event: { event: 'INTAKE_COMPLETE', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'AppointmentBrowse', to: 'PrescriptionBrowse', event: { event: 'PRESCRIBE', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n params.appName ?? 'HealthcareApp',\n );\n}\n","/**\n * std-cms\n *\n * Content management organism. Composes molecules via compose:\n * - stdList(Article): article management with CRUD\n * - stdDetail(MediaAsset): media library browse + view\n * - stdList(Category): category management\n *\n * Cross-orbital connections:\n * - PUBLISH: ArticleBrowse -> MediaAssetBrowse\n * - CATEGORIZE: ArticleBrowse -> CategoryBrowse\n *\n * @level organism\n * @family content\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdDetail } from './std-detail.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCmsParams {\n appName?: string;\n articleFields?: EntityField[];\n mediaAssetFields?: EntityField[];\n categoryFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_ARTICLE_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'slug', type: 'string', required: true },\n { name: 'content', type: 'string' },\n { name: 'author', type: 'string' },\n { name: 'status', type: 'string', default: 'draft' },\n { name: 'publishedAt', type: 'string' },\n];\n\nconst DEFAULT_MEDIA_ASSET_FIELDS: EntityField[] = [\n { name: 'fileName', type: 'string', required: true },\n { name: 'fileType', type: 'string', required: true },\n { name: 'fileSize', type: 'number' },\n { name: 'url', type: 'string' },\n { name: 'altText', type: 'string' },\n { name: 'uploadedAt', type: 'string' },\n];\n\nconst DEFAULT_CATEGORY_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'slug', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'parentCategory', type: 'string' },\n { name: 'articleCount', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdCms(params: StdCmsParams): OrbitalSchema {\n const articleFields = params.articleFields ?? DEFAULT_ARTICLE_FIELDS;\n const mediaAssetFields = params.mediaAssetFields ?? DEFAULT_MEDIA_ASSET_FIELDS;\n const categoryFields = params.categoryFields ?? DEFAULT_CATEGORY_FIELDS;\n\n const articles = stdList({\n entityName: 'Article',\n fields: articleFields,\n pageTitle: 'Articles',\n headerIcon: 'file-text',\n pageName: 'ArticlesPage',\n pagePath: '/articles',\n isInitial: true,\n });\n\n const media = stdDetail({\n entityName: 'MediaAsset',\n fields: mediaAssetFields,\n pageTitle: 'Media Library',\n headerIcon: 'image',\n pageName: 'MediaPage',\n pagePath: '/media',\n });\n\n const categories = stdList({\n entityName: 'Category',\n fields: categoryFields,\n pageTitle: 'Categories',\n headerIcon: 'folder',\n pageName: 'CategoriesPage',\n pagePath: '/categories',\n });\n\n return compose(\n [articles, media, categories],\n [\n { name: 'ArticlesPage', path: '/articles', traits: ['ArticleBrowse', 'ArticleCreate', 'ArticleEdit', 'ArticleView', 'ArticleDelete'], isInitial: true },\n { name: 'MediaPage', path: '/media', traits: ['MediaAssetBrowse', 'MediaAssetCreate', 'MediaAssetView'] },\n { name: 'CategoriesPage', path: '/categories', traits: ['CategoryBrowse', 'CategoryCreate', 'CategoryEdit', 'CategoryView', 'CategoryDelete'] },\n ],\n [\n { from: 'ArticleBrowse', to: 'MediaAssetBrowse', event: { event: 'PUBLISH', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'ArticleBrowse', to: 'CategoryBrowse', event: { event: 'CATEGORIZE', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n params.appName ?? 'CmsApp',\n );\n}\n","/**\n * std-project-manager\n *\n * Project management organism. Composes molecules via compose:\n * - stdList(Task): task management with CRUD\n * - stdList(Sprint): sprint management with CRUD\n * - stdDisplay(Burndown): burndown chart dashboard\n *\n * Cross-orbital connections:\n * - ASSIGN_TASK: SprintBrowse -> TaskBrowse\n * - COMPLETE_SPRINT: SprintBrowse -> BurndownDisplay\n *\n * @level organism\n * @family productivity\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdProjectManagerParams {\n appName?: string;\n taskFields?: EntityField[];\n sprintFields?: EntityField[];\n burndownFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_TASK_FIELDS: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'assignee', type: 'string' },\n { name: 'priority', type: 'string', default: 'medium' },\n { name: 'status', type: 'string', default: 'todo' },\n { name: 'storyPoints', type: 'number', default: 0 },\n { name: 'dueDate', type: 'string' },\n];\n\nconst DEFAULT_SPRINT_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'startDate', type: 'string', required: true },\n { name: 'endDate', type: 'string', required: true },\n { name: 'goal', type: 'string' },\n { name: 'status', type: 'string', default: 'planning' },\n { name: 'taskCount', type: 'number', default: 0 },\n];\n\nconst DEFAULT_BURNDOWN_FIELDS: EntityField[] = [\n { name: 'totalPoints', type: 'number', default: 0 },\n { name: 'completedPoints', type: 'number', default: 0 },\n { name: 'remainingPoints', type: 'number', default: 0 },\n { name: 'velocity', type: 'number', default: 0 },\n { name: 'daysRemaining', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdProjectManager(params: StdProjectManagerParams): OrbitalSchema {\n const taskFields = params.taskFields ?? DEFAULT_TASK_FIELDS;\n const sprintFields = params.sprintFields ?? DEFAULT_SPRINT_FIELDS;\n const burndownFields = params.burndownFields ?? DEFAULT_BURNDOWN_FIELDS;\n\n const tasks = stdList({\n entityName: 'Task',\n fields: taskFields,\n pageTitle: 'Tasks',\n headerIcon: 'check-square',\n pageName: 'TasksPage',\n pagePath: '/tasks',\n isInitial: true,\n });\n\n const sprints = stdList({\n entityName: 'Sprint',\n fields: sprintFields,\n pageTitle: 'Sprints',\n headerIcon: 'zap',\n pageName: 'SprintsPage',\n pagePath: '/sprints',\n });\n\n const burndown = stdDisplay({\n entityName: 'Burndown',\n fields: burndownFields,\n pageTitle: 'Burndown Chart',\n headerIcon: 'trending-down',\n pageName: 'BurndownPage',\n pagePath: '/burndown',\n columns: 5,\n persistence: 'singleton',\n });\n\n return compose(\n [tasks, sprints, burndown],\n [\n { name: 'TasksPage', path: '/tasks', traits: ['TaskBrowse', 'TaskCreate', 'TaskEdit', 'TaskView', 'TaskDelete'], isInitial: true },\n { name: 'SprintsPage', path: '/sprints', traits: ['SprintBrowse', 'SprintCreate', 'SprintEdit', 'SprintView', 'SprintDelete'] },\n { name: 'BurndownPage', path: '/burndown', traits: ['BurndownDisplay'] },\n ],\n [\n { from: 'SprintBrowse', to: 'TaskBrowse', event: { event: 'ASSIGN_TASK', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'SprintBrowse', to: 'BurndownDisplay', event: { event: 'COMPLETE_SPRINT', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n params.appName ?? 'ProjectManagerApp',\n );\n}\n","/**\n * std-booking-system\n *\n * Booking system organism. Composes molecules via compose:\n * - stdList(Provider): provider directory with CRUD\n * - stdWizard(Booking): booking wizard\n * - stdList(Appointment): appointment list with CRUD\n * - stdDisplay(Schedule): schedule overview dashboard\n *\n * Cross-orbital connections:\n * - BOOK: ProviderBrowse -> BookingWizard\n * - CONFIRM: BookingWizard -> AppointmentBrowse\n *\n * @level organism\n * @family scheduling\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from '@almadar/core/types';\nimport type { EntityField } from '@almadar/core/types';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdWizard } from './std-wizard.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdBookingSystemParams {\n appName?: string;\n providerFields?: EntityField[];\n bookingFields?: EntityField[];\n appointmentFields?: EntityField[];\n scheduleFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst DEFAULT_PROVIDER_FIELDS: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'specialty', type: 'string', required: true },\n { name: 'location', type: 'string' },\n { name: 'phone', type: 'string' },\n { name: 'rating', type: 'number', default: 0 },\n { name: 'available', type: 'boolean', default: true },\n];\n\nconst DEFAULT_BOOKING_FIELDS: EntityField[] = [\n { name: 'providerName', type: 'string', required: true },\n { name: 'customerName', type: 'string', required: true },\n { name: 'customerEmail', type: 'string', required: true },\n { name: 'date', type: 'string', required: true },\n { name: 'time', type: 'string', required: true },\n { name: 'notes', type: 'string' },\n];\n\nconst DEFAULT_APPOINTMENT_FIELDS: EntityField[] = [\n { name: 'providerName', type: 'string', required: true },\n { name: 'customerName', type: 'string', required: true },\n { name: 'date', type: 'string', required: true },\n { name: 'time', type: 'string', required: true },\n { name: 'status', type: 'string', default: 'confirmed' },\n { name: 'notes', type: 'string' },\n];\n\nconst DEFAULT_SCHEDULE_FIELDS: EntityField[] = [\n { name: 'totalBookings', type: 'number', default: 0 },\n { name: 'confirmedToday', type: 'number', default: 0 },\n { name: 'pendingBookings', type: 'number', default: 0 },\n { name: 'availableSlots', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdBookingSystem(params: StdBookingSystemParams): OrbitalSchema {\n const providerFields = params.providerFields ?? DEFAULT_PROVIDER_FIELDS;\n const bookingFields = params.bookingFields ?? DEFAULT_BOOKING_FIELDS;\n const appointmentFields = params.appointmentFields ?? DEFAULT_APPOINTMENT_FIELDS;\n const scheduleFields = params.scheduleFields ?? DEFAULT_SCHEDULE_FIELDS;\n\n const providers = stdList({\n entityName: 'Provider',\n fields: providerFields,\n pageTitle: 'Providers',\n headerIcon: 'briefcase',\n pageName: 'ProvidersPage',\n pagePath: '/providers',\n isInitial: true,\n });\n\n const booking = stdWizard({\n entityName: 'Booking',\n fields: bookingFields,\n wizardTitle: 'Book Appointment',\n headerIcon: 'calendar',\n pageName: 'BookPage',\n pagePath: '/book',\n steps: [\n { name: 'Provider Selection', fields: ['providerName'] },\n { name: 'Your Details', fields: ['customerName', 'customerEmail'] },\n { name: 'Date and Time', fields: ['date', 'time', 'notes'] },\n ],\n completeTitle: 'Booking Confirmed',\n completeDescription: 'Your appointment has been booked successfully.',\n submitButtonLabel: 'Confirm Booking',\n });\n\n const appointments = stdList({\n entityName: 'Appointment',\n fields: appointmentFields,\n pageTitle: 'Appointments',\n headerIcon: 'clock',\n pageName: 'AppointmentsPage',\n pagePath: '/appointments',\n });\n\n const schedule = stdDisplay({\n entityName: 'Schedule',\n fields: scheduleFields,\n pageTitle: 'Schedule Overview',\n headerIcon: 'bar-chart-2',\n pageName: 'SchedulePage',\n pagePath: '/schedule',\n columns: 4,\n persistence: 'singleton',\n });\n\n return compose(\n [providers, booking, appointments, schedule],\n [\n { name: 'ProvidersPage', path: '/providers', traits: ['ProviderBrowse', 'ProviderCreate', 'ProviderEdit', 'ProviderView', 'ProviderDelete'], isInitial: true },\n { name: 'BookPage', path: '/book', traits: ['BookingWizard'] },\n { name: 'AppointmentsPage', path: '/appointments', traits: ['AppointmentBrowse', 'AppointmentCreate', 'AppointmentEdit', 'AppointmentView', 'AppointmentDelete'] },\n { name: 'SchedulePage', path: '/schedule', traits: ['ScheduleDisplay'] },\n ],\n [\n { from: 'ProviderBrowse', to: 'BookingWizard', event: { event: 'BOOK', payload: [{ name: 'id', type: 'string', required: true }] } },\n { from: 'BookingWizard', to: 'AppointmentBrowse', event: { event: 'CONFIRM', payload: [{ name: 'id', type: 'string', required: true }] } },\n ],\n params.appName ?? 'BookingSystemApp',\n );\n}\n","/**\n * std-devops-dashboard\n *\n * DevOps monitoring organism.\n * Composes: stdCircuitBreaker(ServiceNode) + stdDisplay(AlertMetric)\n * + stdList(LogEntry) + stdDisplay(SystemMetric)\n *\n * Pages: /services (initial), /alerts, /logs, /metrics\n *\n * @level organism\n * @family devops\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdCircuitBreaker } from './std-circuit-breaker.js';\nimport { stdDisplay } from './std-display.js';\nimport { stdList } from './std-list.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdDevopsDashboardParams {\n serviceNodeFields?: EntityField[];\n alertMetricFields?: EntityField[];\n logEntryFields?: EntityField[];\n systemMetricFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultServiceNodeFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'status', type: 'string', required: true },\n { name: 'url', type: 'string' },\n { name: 'lastChecked', type: 'string' },\n];\n\nconst defaultAlertMetricFields: EntityField[] = [\n { name: 'severity', type: 'string', required: true },\n { name: 'message', type: 'string', required: true },\n { name: 'timestamp', type: 'string' },\n { name: 'source', type: 'string' },\n];\n\nconst defaultLogEntryFields: EntityField[] = [\n { name: 'level', type: 'string', required: true },\n { name: 'message', type: 'string', required: true },\n { name: 'timestamp', type: 'string' },\n { name: 'service', type: 'string' },\n];\n\nconst defaultSystemMetricFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'value', type: 'number', required: true },\n { name: 'unit', type: 'string' },\n { name: 'trend', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdDevopsDashboard(params: StdDevopsDashboardParams): OrbitalSchema {\n const serviceNodeFields = params.serviceNodeFields ?? defaultServiceNodeFields;\n const alertMetricFields = params.alertMetricFields ?? defaultAlertMetricFields;\n const logEntryFields = params.logEntryFields ?? defaultLogEntryFields;\n const systemMetricFields = params.systemMetricFields ?? defaultSystemMetricFields;\n\n const serviceNodeOrbital = stdCircuitBreaker({\n entityName: 'ServiceNode',\n fields: serviceNodeFields,\n headerIcon: 'server',\n });\n\n const alertMetricOrbital = stdDisplay({\n entityName: 'AlertMetric',\n fields: alertMetricFields,\n headerIcon: 'alert-triangle',\n pageTitle: 'Alerts',\n });\n\n const logEntryOrbital = stdList({\n entityName: 'LogEntry',\n fields: logEntryFields,\n headerIcon: 'file-text',\n pageTitle: 'Logs',\n });\n\n const systemMetricOrbital = stdDisplay({\n entityName: 'SystemMetric',\n fields: systemMetricFields,\n headerIcon: 'activity',\n pageTitle: 'Metrics',\n });\n\n const pages: ComposePage[] = [\n { name: 'ServicesPage', path: '/services', traits: ['ServiceNodeCircuitBreaker'], isInitial: true },\n { name: 'AlertsPage', path: '/alerts', traits: ['AlertMetricDisplay'] },\n { name: 'LogsPage', path: '/logs', traits: ['LogEntryBrowse', 'LogEntryCreate', 'LogEntryEdit', 'LogEntryView', 'LogEntryDelete'] },\n { name: 'MetricsPage', path: '/metrics', traits: ['SystemMetricDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [serviceNodeOrbital, alertMetricOrbital, logEntryOrbital, systemMetricOrbital],\n pages,\n connections,\n 'DevOps Dashboard',\n );\n}\n","/**\n * std-cicd-pipeline\n *\n * CI/CD pipeline organism.\n * Composes: stdList(Build) + stdDisplay(Stage) + stdAsync(Deployment)\n *\n * Pages: /builds (initial), /stages, /deploy\n *\n * @level organism\n * @family devops\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdDisplay } from './std-display.js';\nimport { stdAsync } from './std-async.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCicdPipelineParams {\n buildFields?: EntityField[];\n stageFields?: EntityField[];\n deploymentFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultBuildFields: EntityField[] = [\n { name: 'branch', type: 'string', required: true },\n { name: 'status', type: 'string', required: true },\n { name: 'commit', type: 'string' },\n { name: 'triggeredBy', type: 'string' },\n];\n\nconst defaultStageFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'status', type: 'string', required: true },\n { name: 'duration', type: 'string' },\n { name: 'output', type: 'string' },\n];\n\nconst defaultDeploymentFields: EntityField[] = [\n { name: 'environment', type: 'string', required: true },\n { name: 'version', type: 'string', required: true },\n { name: 'status', type: 'string' },\n { name: 'deployedAt', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdCicdPipeline(params: StdCicdPipelineParams): OrbitalSchema {\n const buildFields = params.buildFields ?? defaultBuildFields;\n const stageFields = params.stageFields ?? defaultStageFields;\n const deploymentFields = params.deploymentFields ?? defaultDeploymentFields;\n\n const buildOrbital = stdList({\n entityName: 'Build',\n fields: buildFields,\n headerIcon: 'package',\n pageTitle: 'Builds',\n });\n\n const stageOrbital = stdDisplay({\n entityName: 'Stage',\n fields: stageFields,\n headerIcon: 'layers',\n pageTitle: 'Stages',\n });\n\n const deploymentOrbital = stdAsync({\n entityName: 'Deployment',\n fields: deploymentFields,\n headerIcon: 'upload-cloud',\n loadingMessage: 'Deploying...',\n successMessage: 'Deployment successful.',\n errorMessage: 'Deployment failed.',\n });\n\n const pages: ComposePage[] = [\n { name: 'BuildsPage', path: '/builds', traits: ['BuildBrowse', 'BuildCreate', 'BuildEdit', 'BuildView', 'BuildDelete'], isInitial: true },\n { name: 'StagesPage', path: '/stages', traits: ['StageDisplay'] },\n { name: 'DeployPage', path: '/deploy', traits: ['DeploymentAsync'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [buildOrbital, stageOrbital, deploymentOrbital],\n pages,\n connections,\n 'CI/CD Pipeline',\n );\n}\n","/**\n * std-api-gateway\n *\n * API gateway management organism.\n * Composes: stdList(Route) + stdCircuitBreaker(Backend) + stdDisplay(Analytics)\n *\n * Pages: /routes (initial), /backends, /analytics\n *\n * @level organism\n * @family devops\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdCircuitBreaker } from './std-circuit-breaker.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdApiGatewayParams {\n routeFields?: EntityField[];\n backendFields?: EntityField[];\n analyticsFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultRouteFields: EntityField[] = [\n { name: 'path', type: 'string', required: true },\n { name: 'method', type: 'string', required: true },\n { name: 'backend', type: 'string', required: true },\n { name: 'rateLimit', type: 'number' },\n];\n\nconst defaultBackendFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'url', type: 'string', required: true },\n { name: 'status', type: 'string' },\n { name: 'latency', type: 'number' },\n];\n\nconst defaultAnalyticsFields: EntityField[] = [\n { name: 'totalRequests', type: 'number', required: true },\n { name: 'errorRate', type: 'number', required: true },\n { name: 'avgLatency', type: 'number' },\n { name: 'uptime', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdApiGateway(params: StdApiGatewayParams): OrbitalSchema {\n const routeFields = params.routeFields ?? defaultRouteFields;\n const backendFields = params.backendFields ?? defaultBackendFields;\n const analyticsFields = params.analyticsFields ?? defaultAnalyticsFields;\n\n const routeOrbital = stdList({\n entityName: 'Route',\n fields: routeFields,\n headerIcon: 'git-branch',\n pageTitle: 'Routes',\n });\n\n const backendOrbital = stdCircuitBreaker({\n entityName: 'Backend',\n fields: backendFields,\n headerIcon: 'server',\n });\n\n const analyticsOrbital = stdDisplay({\n entityName: 'Analytics',\n fields: analyticsFields,\n headerIcon: 'bar-chart-2',\n pageTitle: 'Analytics',\n });\n\n const pages: ComposePage[] = [\n { name: 'RoutesPage', path: '/routes', traits: ['RouteBrowse', 'RouteCreate', 'RouteEdit', 'RouteView', 'RouteDelete'], isInitial: true },\n { name: 'BackendsPage', path: '/backends', traits: ['BackendCircuitBreaker'] },\n { name: 'AnalyticsPage', path: '/analytics', traits: ['AnalyticsDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [routeOrbital, backendOrbital, analyticsOrbital],\n pages,\n connections,\n 'API Gateway',\n );\n}\n","/**\n * std-rpg-game\n *\n * RPG game organism.\n * Composes: stdTurnBasedBattle(BattleState) + stdOverworld(WorldZone)\n * + stdInventory(RpgItem) + stdQuest(Mission)\n *\n * Pages: /battle, /world (initial), /inventory, /quests\n * Connections: ENCOUNTER_STARTED (world->battle), LOOT_DROPPED (battle->inventory),\n * QUEST_ACCEPTED (world->quests)\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdTurnBasedBattle } from './std-turn-based-battle.js';\nimport { stdOverworld } from './std-overworld.js';\nimport { stdInventory } from './std-inventory.js';\nimport { stdQuest } from './std-quest.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRpgGameParams {\n battleStateFields?: EntityField[];\n worldZoneFields?: EntityField[];\n rpgItemFields?: EntityField[];\n missionFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultBattleStateFields: EntityField[] = [\n { name: 'turn', type: 'number', default: 0 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'phase', type: 'string', default: 'setup' },\n { name: 'outcome', type: 'string' },\n];\n\nconst defaultWorldZoneFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'level', type: 'number', default: 1 },\n { name: 'explored', type: 'boolean', default: false },\n];\n\nconst defaultRpgItemFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'type', type: 'string', required: true },\n { name: 'quantity', type: 'number', default: 1 },\n { name: 'rarity', type: 'string', default: 'common' },\n];\n\nconst defaultMissionFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'status', type: 'string', default: 'available' },\n { name: 'reward', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdRpgGame(params: StdRpgGameParams): OrbitalSchema {\n const battleStateFields = params.battleStateFields ?? defaultBattleStateFields;\n const worldZoneFields = params.worldZoneFields ?? defaultWorldZoneFields;\n const rpgItemFields = params.rpgItemFields ?? defaultRpgItemFields;\n const missionFields = params.missionFields ?? defaultMissionFields;\n\n const battleOrbital = stdTurnBasedBattle({\n entityName: 'BattleState',\n fields: battleStateFields,\n gameTitle: 'Battle Arena',\n });\n\n const worldOrbital = stdOverworld({\n entityName: 'WorldZone',\n fields: worldZoneFields,\n worldTitle: 'World Map',\n headerIcon: 'map',\n });\n\n const inventoryOrbital = stdInventory({\n entityName: 'RpgItem',\n fields: rpgItemFields,\n headerIcon: 'briefcase',\n pageTitle: 'Inventory',\n });\n\n const questOrbital = stdQuest({\n entityName: 'Mission',\n fields: missionFields,\n headerIcon: 'flag',\n });\n\n const pages: ComposePage[] = [\n { name: 'BattlePage', path: '/battle', traits: ['BattleStateBattleFlow', 'BattleStateCombatLog'] },\n { name: 'WorldPage', path: '/world', traits: ['WorldZoneNavigation'], isInitial: true },\n { name: 'InventoryPage', path: '/inventory', traits: ['RpgItemBrowse', 'RpgItemAdd', 'RpgItemUse', 'RpgItemDrop'] },\n { name: 'QuestsPage', path: '/quests', traits: ['MissionTracking'] },\n ];\n\n const connections: ComposeConnection[] = [\n {\n from: 'WorldZoneNavigation',\n to: 'BattleStateBattleFlow',\n event: {\n event: 'ENCOUNTER_STARTED',\n payload: [{ name: 'zoneId', type: 'string', required: true }],\n },\n triggers: 'START',\n },\n {\n from: 'BattleStateBattleFlow',\n to: 'RpgItemBrowse',\n event: {\n event: 'LOOT_DROPPED',\n payload: [{ name: 'itemId', type: 'string', required: true }],\n },\n triggers: 'INIT',\n },\n {\n from: 'WorldZoneNavigation',\n to: 'MissionTracking',\n event: {\n event: 'QUEST_ACCEPTED',\n payload: [{ name: 'questId', type: 'string', required: true }],\n },\n triggers: 'INIT',\n },\n ];\n\n return compose(\n [battleOrbital, worldOrbital, inventoryOrbital, questOrbital],\n pages,\n connections,\n 'RPG Game',\n );\n}\n","/**\n * std-platformer-app\n *\n * Platformer game organism.\n * Composes: stdPlatformerGame(PlatLevel) + stdScoreBoard(PlatScore) + stdInventory(Collectible)\n *\n * Pages: /game (initial), /scores, /collectibles\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdPlatformerGame } from './std-platformer-game.js';\nimport { stdScoreBoard } from './std-score-board.js';\nimport { stdInventory } from './std-inventory.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPlatformerAppParams {\n platLevelFields?: EntityField[];\n platScoreFields?: EntityField[];\n collectibleFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultPlatLevelFields: EntityField[] = [\n { name: 'level', type: 'number', default: 1 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'lives', type: 'number', default: 3 },\n { name: 'time', type: 'number', default: 0 },\n];\n\nconst defaultPlatScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'level', type: 'number' },\n { name: 'completedAt', type: 'string' },\n];\n\nconst defaultCollectibleFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'type', type: 'string', required: true },\n { name: 'quantity', type: 'number', default: 1 },\n { name: 'rarity', type: 'string', default: 'common' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdPlatformerApp(params: StdPlatformerAppParams): OrbitalSchema {\n const platLevelFields = params.platLevelFields ?? defaultPlatLevelFields;\n const platScoreFields = params.platScoreFields ?? defaultPlatScoreFields;\n const collectibleFields = params.collectibleFields ?? defaultCollectibleFields;\n\n const gameOrbital = stdPlatformerGame({\n entityName: 'PlatLevel',\n fields: platLevelFields,\n gameTitle: 'Platformer',\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'PlatScore',\n fields: platScoreFields,\n });\n\n const collectibleOrbital = stdInventory({\n entityName: 'Collectible',\n fields: collectibleFields,\n pageTitle: 'Collectibles',\n });\n\n const pages: ComposePage[] = [\n { name: 'GamePage', path: '/game', traits: ['PlatLevelPlatformerFlow', 'PlatLevelPlatformerCanvas'], isInitial: true },\n { name: 'ScoresPage', path: '/scores', traits: ['PlatScoreScoreBoard'] },\n { name: 'CollectiblesPage', path: '/collectibles', traits: ['CollectibleBrowse', 'CollectibleAdd', 'CollectibleUse', 'CollectibleDrop'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [gameOrbital, scoreOrbital, collectibleOrbital],\n pages,\n connections,\n 'Platformer App',\n );\n}\n","/**\n * std-puzzle-app\n *\n * Puzzle game organism.\n * Composes: stdPuzzleGame(PuzzleLevel) + stdScoreBoard(PuzzleScore)\n *\n * Pages: /puzzle (initial), /scores\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdPuzzleGame } from './std-puzzle-game.js';\nimport { stdScoreBoard } from './std-score-board.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdPuzzleAppParams {\n puzzleLevelFields?: EntityField[];\n puzzleScoreFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultPuzzleLevelFields: EntityField[] = [\n { name: 'level', type: 'number', default: 1 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'moves', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultPuzzleScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'level', type: 'number' },\n { name: 'moves', type: 'number' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdPuzzleApp(params: StdPuzzleAppParams): OrbitalSchema {\n const puzzleLevelFields = params.puzzleLevelFields ?? defaultPuzzleLevelFields;\n const puzzleScoreFields = params.puzzleScoreFields ?? defaultPuzzleScoreFields;\n\n const puzzleOrbital = stdPuzzleGame({\n entityName: 'PuzzleLevel',\n fields: puzzleLevelFields,\n gameTitle: 'Puzzle Challenge',\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'PuzzleScore',\n fields: puzzleScoreFields,\n });\n\n const pages: ComposePage[] = [\n { name: 'PuzzlePage', path: '/puzzle', traits: ['PuzzleLevelPuzzleFlow', 'PuzzleLevelPuzzleScore'], isInitial: true },\n { name: 'ScoresPage', path: '/scores', traits: ['PuzzleScoreScoreBoard'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [puzzleOrbital, scoreOrbital],\n pages,\n connections,\n 'Puzzle App',\n );\n}\n","/**\n * std-strategy-game\n *\n * Strategy game organism.\n * Composes: stdTurnBasedBattle(ArmyBattle) + stdOverworld(Territory) + stdDisplay(Resource)\n *\n * Pages: /battle, /map (initial), /resources\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdTurnBasedBattle } from './std-turn-based-battle.js';\nimport { stdOverworld } from './std-overworld.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdStrategyGameParams {\n armyBattleFields?: EntityField[];\n territoryFields?: EntityField[];\n resourceFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultArmyBattleFields: EntityField[] = [\n { name: 'turn', type: 'number', default: 0 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'armySize', type: 'number', default: 10 },\n { name: 'morale', type: 'number', default: 100 },\n];\n\nconst defaultTerritoryFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'owner', type: 'string' },\n { name: 'defense', type: 'number', default: 0 },\n { name: 'explored', type: 'boolean', default: false },\n];\n\nconst defaultResourceFields: EntityField[] = [\n { name: 'gold', type: 'number', default: 0 },\n { name: 'food', type: 'number', default: 0 },\n { name: 'wood', type: 'number', default: 0 },\n { name: 'iron', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdStrategyGame(params: StdStrategyGameParams): OrbitalSchema {\n const armyBattleFields = params.armyBattleFields ?? defaultArmyBattleFields;\n const territoryFields = params.territoryFields ?? defaultTerritoryFields;\n const resourceFields = params.resourceFields ?? defaultResourceFields;\n\n const battleOrbital = stdTurnBasedBattle({\n entityName: 'ArmyBattle',\n fields: armyBattleFields,\n gameTitle: 'Army Battle',\n menuSubtitle: 'Turn-Based Strategy',\n });\n\n const overworldOrbital = stdOverworld({\n entityName: 'Territory',\n fields: territoryFields,\n worldTitle: 'Territory Map',\n headerIcon: 'map',\n });\n\n const resourceOrbital = stdDisplay({\n entityName: 'Resource',\n fields: resourceFields,\n headerIcon: 'database',\n pageTitle: 'Resources',\n });\n\n const pages: ComposePage[] = [\n { name: 'BattlePage', path: '/battle', traits: ['ArmyBattleBattleFlow', 'ArmyBattleCombatLog'] },\n { name: 'MapPage', path: '/map', traits: ['TerritoryNavigation'], isInitial: true },\n { name: 'ResourcesPage', path: '/resources', traits: ['ResourceDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [battleOrbital, overworldOrbital, resourceOrbital],\n pages,\n connections,\n 'Strategy Game',\n );\n}\n","/**\n * std-arcade-game\n *\n * Arcade game organism.\n * Composes: stdGameflow(ArcadeState) + stdGameCanvas2d(ArcadeCanvas)\n * + stdScoreBoard(ArcadeScore) + stdGameHud(ArcadeHud)\n *\n * Pages: /game (initial), /scores\n *\n * @level organism\n * @family game\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdGameflow } from './std-gameflow.js';\nimport { stdGameCanvas2d } from './std-game-canvas-2d.js';\nimport { stdScoreBoard } from './std-score-board.js';\nimport { stdGameHud } from './std-game-hud.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdArcadeGameParams {\n arcadeStateFields?: EntityField[];\n arcadeCanvasFields?: EntityField[];\n arcadeScoreFields?: EntityField[];\n arcadeHudFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultArcadeStateFields: EntityField[] = [\n { name: 'level', type: 'number', default: 1 },\n { name: 'score', type: 'number', default: 0 },\n { name: 'lives', type: 'number', default: 3 },\n { name: 'highScore', type: 'number', default: 0 },\n];\n\nconst defaultArcadeCanvasFields: EntityField[] = [\n { name: 'width', type: 'number', default: 800 },\n { name: 'height', type: 'number', default: 600 },\n { name: 'fps', type: 'number', default: 60 },\n { name: 'running', type: 'boolean', default: false },\n];\n\nconst defaultArcadeScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'level', type: 'number' },\n { name: 'completedAt', type: 'string' },\n];\n\nconst defaultArcadeHudFields: EntityField[] = [\n { name: 'score', type: 'number', default: 0 },\n { name: 'lives', type: 'number', default: 3 },\n { name: 'level', type: 'number', default: 1 },\n { name: 'timer', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdArcadeGame(params: StdArcadeGameParams): OrbitalSchema {\n const arcadeStateFields = params.arcadeStateFields ?? defaultArcadeStateFields;\n const arcadeCanvasFields = params.arcadeCanvasFields ?? defaultArcadeCanvasFields;\n const arcadeScoreFields = params.arcadeScoreFields ?? defaultArcadeScoreFields;\n const arcadeHudFields = params.arcadeHudFields ?? defaultArcadeHudFields;\n\n const gameflowOrbital = stdGameflow({\n entityName: 'ArcadeState',\n fields: arcadeStateFields,\n gameTitle: 'Arcade',\n });\n\n const canvasOrbital = stdGameCanvas2d({\n entityName: 'ArcadeCanvas',\n fields: arcadeCanvasFields,\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'ArcadeScore',\n fields: arcadeScoreFields,\n });\n\n const hudOrbital = stdGameHud({\n entityName: 'ArcadeHud',\n fields: arcadeHudFields,\n });\n\n const pages: ComposePage[] = [\n { name: 'GamePage', path: '/game', traits: ['ArcadeStateGameflow'], isInitial: true },\n { name: 'CanvasPage', path: '/canvas', traits: ['ArcadeCanvasGameCanvas2d'] },\n { name: 'HudPage', path: '/hud', traits: ['ArcadeHudHud'] },\n { name: 'ScoresPage', path: '/scores', traits: ['ArcadeScoreScoreBoard'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [gameflowOrbital, canvasOrbital, scoreOrbital, hudOrbital],\n pages,\n connections,\n 'Arcade Game',\n );\n}\n","/**\n * std-coding-academy\n *\n * Coding academy organism.\n * Composes: stdSequencerGame(SeqChallenge) + stdBuilderGame(BuildChallenge)\n * + stdEventHandlerGame(EventChallenge) + stdDisplay(StudentProgress)\n *\n * Pages: /sequencer (initial), /builder, /events, /progress\n *\n * @level organism\n * @family educational\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdSequencerGame } from './std-sequencer-game.js';\nimport { stdBuilderGame } from './std-builder-game.js';\nimport { stdEventHandlerGame } from './std-event-handler-game.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdCodingAcademyParams {\n seqChallengeFields?: EntityField[];\n buildChallengeFields?: EntityField[];\n eventChallengeFields?: EntityField[];\n studentProgressFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultSeqChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'difficulty', type: 'string', default: 'easy' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultBuildChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'difficulty', type: 'string', default: 'easy' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultEventChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'difficulty', type: 'string', default: 'easy' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultStudentProgressFields: EntityField[] = [\n { name: 'totalLessons', type: 'number', default: 0 },\n { name: 'completedLessons', type: 'number', default: 0 },\n { name: 'averageScore', type: 'number', default: 0 },\n { name: 'streak', type: 'number', default: 0 },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdCodingAcademy(params: StdCodingAcademyParams): OrbitalSchema {\n const seqChallengeFields = params.seqChallengeFields ?? defaultSeqChallengeFields;\n const buildChallengeFields = params.buildChallengeFields ?? defaultBuildChallengeFields;\n const eventChallengeFields = params.eventChallengeFields ?? defaultEventChallengeFields;\n const studentProgressFields = params.studentProgressFields ?? defaultStudentProgressFields;\n\n const sequencerOrbital = stdSequencerGame({\n entityName: 'SeqChallenge',\n fields: seqChallengeFields,\n gameTitle: 'Sequencer Challenge',\n });\n\n const builderOrbital = stdBuilderGame({\n entityName: 'BuildChallenge',\n fields: buildChallengeFields,\n gameTitle: 'Builder Challenge',\n });\n\n const eventHandlerOrbital = stdEventHandlerGame({\n entityName: 'EventChallenge',\n fields: eventChallengeFields,\n gameTitle: 'Event Handler Challenge',\n });\n\n const progressOrbital = stdDisplay({\n entityName: 'StudentProgress',\n fields: studentProgressFields,\n headerIcon: 'trending-up',\n pageTitle: 'Progress',\n });\n\n const pages: ComposePage[] = [\n { name: 'SequencerPage', path: '/sequencer', traits: ['SeqChallengeSequencerGame'], isInitial: true },\n { name: 'BuilderPage', path: '/builder', traits: ['BuildChallengeBuilderGame'] },\n { name: 'EventsPage', path: '/events', traits: ['EventChallengeEventHandlerGame'] },\n { name: 'ProgressPage', path: '/progress', traits: ['StudentProgressDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [sequencerOrbital, builderOrbital, eventHandlerOrbital, progressOrbital],\n pages,\n connections,\n 'Coding Academy',\n );\n}\n","/**\n * std-stem-lab\n *\n * STEM lab organism.\n * Composes: stdSimulatorGame(Experiment) + stdClassifierGame(Classification)\n * + stdDisplay(LabResult)\n *\n * Pages: /simulator (initial), /classifier, /results\n *\n * @level organism\n * @family educational\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdSimulatorGame } from './std-simulator-game.js';\nimport { stdClassifierGame } from './std-classifier-game.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdStemLabParams {\n experimentFields?: EntityField[];\n classificationFields?: EntityField[];\n labResultFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultExperimentFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'hypothesis', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'completed', type: 'boolean', default: false },\n];\n\nconst defaultClassificationFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'category', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'accuracy', type: 'number', default: 0 },\n];\n\nconst defaultLabResultFields: EntityField[] = [\n { name: 'experimentCount', type: 'number', default: 0 },\n { name: 'avgAccuracy', type: 'number', default: 0 },\n { name: 'totalScore', type: 'number', default: 0 },\n { name: 'grade', type: 'string', default: 'N/A' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdStemLab(params: StdStemLabParams): OrbitalSchema {\n const experimentFields = params.experimentFields ?? defaultExperimentFields;\n const classificationFields = params.classificationFields ?? defaultClassificationFields;\n const labResultFields = params.labResultFields ?? defaultLabResultFields;\n\n const simulatorOrbital = stdSimulatorGame({\n entityName: 'Experiment',\n fields: experimentFields,\n gameTitle: 'Experiment Simulator',\n });\n\n const classifierOrbital = stdClassifierGame({\n entityName: 'Classification',\n fields: classificationFields,\n gameTitle: 'Classification Lab',\n });\n\n const resultsOrbital = stdDisplay({\n entityName: 'LabResult',\n fields: labResultFields,\n headerIcon: 'clipboard',\n pageTitle: 'Lab Results',\n });\n\n const pages: ComposePage[] = [\n { name: 'SimulatorPage', path: '/simulator', traits: ['ExperimentSimulatorGame'], isInitial: true },\n { name: 'ClassifierPage', path: '/classifier', traits: ['ClassificationClassifierGame'] },\n { name: 'ResultsPage', path: '/results', traits: ['LabResultDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [simulatorOrbital, classifierOrbital, resultsOrbital],\n pages,\n connections,\n 'STEM Lab',\n );\n}\n","/**\n * std-logic-training\n *\n * Logic training organism.\n * Composes: stdDebuggerGame(DebugChallenge) + stdNegotiatorGame(NegotiateChallenge)\n * + stdScoreBoard(TrainingScore)\n *\n * Pages: /debugger (initial), /negotiator, /scores\n *\n * @level organism\n * @family educational\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdDebuggerGame } from './std-debugger-game.js';\nimport { stdNegotiatorGame } from './std-negotiator-game.js';\nimport { stdScoreBoard } from './std-score-board.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdLogicTrainingParams {\n debugChallengeFields?: EntityField[];\n negotiateChallengeFields?: EntityField[];\n trainingScoreFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultDebugChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'bugType', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'solved', type: 'boolean', default: false },\n];\n\nconst defaultNegotiateChallengeFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'scenario', type: 'string' },\n { name: 'score', type: 'number', default: 0 },\n { name: 'outcome', type: 'string' },\n];\n\nconst defaultTrainingScoreFields: EntityField[] = [\n { name: 'playerName', type: 'string', required: true },\n { name: 'score', type: 'number', required: true },\n { name: 'category', type: 'string' },\n { name: 'completedAt', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdLogicTraining(params: StdLogicTrainingParams): OrbitalSchema {\n const debugChallengeFields = params.debugChallengeFields ?? defaultDebugChallengeFields;\n const negotiateChallengeFields = params.negotiateChallengeFields ?? defaultNegotiateChallengeFields;\n const trainingScoreFields = params.trainingScoreFields ?? defaultTrainingScoreFields;\n\n const debuggerOrbital = stdDebuggerGame({\n entityName: 'DebugChallenge',\n fields: debugChallengeFields,\n gameTitle: 'Debug Challenge',\n });\n\n const negotiatorOrbital = stdNegotiatorGame({\n entityName: 'NegotiateChallenge',\n fields: negotiateChallengeFields,\n gameTitle: 'Negotiate Challenge',\n });\n\n const scoreOrbital = stdScoreBoard({\n entityName: 'TrainingScore',\n fields: trainingScoreFields,\n });\n\n const pages: ComposePage[] = [\n { name: 'DebuggerPage', path: '/debugger', traits: ['DebugChallengeDebuggerGame'], isInitial: true },\n { name: 'NegotiatorPage', path: '/negotiator', traits: ['NegotiateChallengeNegotiatorGame'] },\n { name: 'ScoresPage', path: '/scores', traits: ['TrainingScoreScoreBoard'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [debuggerOrbital, negotiatorOrbital, scoreOrbital],\n pages,\n connections,\n 'Logic Training',\n );\n}\n","/**\n * std-iot-dashboard\n *\n * IoT dashboard organism.\n * Composes: stdDisplay(SensorReading) + stdList(Device) + stdCircuitBreaker(DeviceAlert)\n *\n * Pages: /sensors (initial), /devices, /alerts\n *\n * @level organism\n * @family iot\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdDisplay } from './std-display.js';\nimport { stdList } from './std-list.js';\nimport { stdCircuitBreaker } from './std-circuit-breaker.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdIotDashboardParams {\n sensorReadingFields?: EntityField[];\n deviceFields?: EntityField[];\n deviceAlertFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultSensorReadingFields: EntityField[] = [\n { name: 'sensorId', type: 'string', required: true },\n { name: 'value', type: 'number', required: true },\n { name: 'unit', type: 'string' },\n { name: 'timestamp', type: 'string' },\n];\n\nconst defaultDeviceFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'type', type: 'string', required: true },\n { name: 'status', type: 'string', default: 'offline' },\n { name: 'lastSeen', type: 'string' },\n];\n\nconst defaultDeviceAlertFields: EntityField[] = [\n { name: 'deviceId', type: 'string', required: true },\n { name: 'severity', type: 'string', required: true },\n { name: 'message', type: 'string' },\n { name: 'acknowledged', type: 'boolean', default: false },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdIotDashboard(params: StdIotDashboardParams): OrbitalSchema {\n const sensorReadingFields = params.sensorReadingFields ?? defaultSensorReadingFields;\n const deviceFields = params.deviceFields ?? defaultDeviceFields;\n const deviceAlertFields = params.deviceAlertFields ?? defaultDeviceAlertFields;\n\n const sensorOrbital = stdDisplay({\n entityName: 'SensorReading',\n fields: sensorReadingFields,\n headerIcon: 'thermometer',\n pageTitle: 'Sensor Readings',\n });\n\n const deviceOrbital = stdList({\n entityName: 'Device',\n fields: deviceFields,\n headerIcon: 'cpu',\n pageTitle: 'Devices',\n });\n\n const alertOrbital = stdCircuitBreaker({\n entityName: 'DeviceAlert',\n fields: deviceAlertFields,\n headerIcon: 'bell',\n });\n\n const pages: ComposePage[] = [\n { name: 'SensorsPage', path: '/sensors', traits: ['SensorReadingDisplay'], isInitial: true },\n { name: 'DevicesPage', path: '/devices', traits: ['DeviceBrowse', 'DeviceCreate', 'DeviceEdit', 'DeviceView', 'DeviceDelete'] },\n { name: 'AlertsPage', path: '/alerts', traits: ['DeviceAlertCircuitBreaker'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [sensorOrbital, deviceOrbital, alertOrbital],\n pages,\n connections,\n 'IoT Dashboard',\n );\n}\n","/**\n * std-realtime-chat\n *\n * Realtime chat organism.\n * Composes: stdMessaging(ChatMessage) + stdList(Channel) + stdDisplay(OnlineUser)\n *\n * Pages: /chat (initial), /channels, /online\n *\n * @level organism\n * @family communication\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdMessaging } from './std-messaging.js';\nimport { stdList } from './std-list.js';\nimport { stdDisplay } from './std-display.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdRealtimeChatParams {\n chatMessageFields?: EntityField[];\n channelFields?: EntityField[];\n onlineUserFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultChatMessageFields: EntityField[] = [\n { name: 'sender', type: 'string', required: true },\n { name: 'content', type: 'string', required: true },\n { name: 'channel', type: 'string' },\n { name: 'timestamp', type: 'string' },\n];\n\nconst defaultChannelFields: EntityField[] = [\n { name: 'name', type: 'string', required: true },\n { name: 'description', type: 'string' },\n { name: 'memberCount', type: 'number', default: 0 },\n { name: 'isPrivate', type: 'boolean', default: false },\n];\n\nconst defaultOnlineUserFields: EntityField[] = [\n { name: 'username', type: 'string', required: true },\n { name: 'status', type: 'string', default: 'online' },\n { name: 'lastActive', type: 'string' },\n { name: 'avatar', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdRealtimeChat(params: StdRealtimeChatParams): OrbitalSchema {\n const chatMessageFields = params.chatMessageFields ?? defaultChatMessageFields;\n const channelFields = params.channelFields ?? defaultChannelFields;\n const onlineUserFields = params.onlineUserFields ?? defaultOnlineUserFields;\n\n const messagingOrbital = stdMessaging({\n entityName: 'ChatMessage',\n fields: chatMessageFields,\n headerIcon: 'message-circle',\n pageTitle: 'Chat',\n });\n\n const channelOrbital = stdList({\n entityName: 'Channel',\n fields: channelFields,\n headerIcon: 'hash',\n pageTitle: 'Channels',\n });\n\n const onlineOrbital = stdDisplay({\n entityName: 'OnlineUser',\n fields: onlineUserFields,\n headerIcon: 'users',\n pageTitle: 'Online Users',\n });\n\n const pages: ComposePage[] = [\n { name: 'ChatPage', path: '/chat', traits: ['ChatMessageBrowse', 'ChatMessageCompose', 'ChatMessageView'], isInitial: true },\n { name: 'ChannelsPage', path: '/channels', traits: ['ChannelBrowse', 'ChannelCreate', 'ChannelEdit', 'ChannelView', 'ChannelDelete'] },\n { name: 'OnlinePage', path: '/online', traits: ['OnlineUserDisplay'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [messagingOrbital, channelOrbital, onlineOrbital],\n pages,\n connections,\n 'Realtime Chat',\n );\n}\n","/**\n * std-finance-tracker\n *\n * Finance tracker organism.\n * Composes: stdList(Transaction) + stdDisplay(FinanceSummary) + stdDetail(FinanceReport)\n *\n * Pages: /transactions (initial), /summary, /reports\n *\n * @level organism\n * @family finance\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdList } from './std-list.js';\nimport { stdDisplay } from './std-display.js';\nimport { stdDetail } from './std-detail.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdFinanceTrackerParams {\n transactionFields?: EntityField[];\n financeSummaryFields?: EntityField[];\n financeReportFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultTransactionFields: EntityField[] = [\n { name: 'description', type: 'string', required: true },\n { name: 'amount', type: 'number', required: true },\n { name: 'category', type: 'string' },\n { name: 'date', type: 'string' },\n];\n\nconst defaultFinanceSummaryFields: EntityField[] = [\n { name: 'totalIncome', type: 'number', default: 0 },\n { name: 'totalExpenses', type: 'number', default: 0 },\n { name: 'balance', type: 'number', default: 0 },\n { name: 'savingsRate', type: 'number', default: 0 },\n];\n\nconst defaultFinanceReportFields: EntityField[] = [\n { name: 'title', type: 'string', required: true },\n { name: 'period', type: 'string', required: true },\n { name: 'total', type: 'number' },\n { name: 'generatedAt', type: 'string' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdFinanceTracker(params: StdFinanceTrackerParams): OrbitalSchema {\n const transactionFields = params.transactionFields ?? defaultTransactionFields;\n const financeSummaryFields = params.financeSummaryFields ?? defaultFinanceSummaryFields;\n const financeReportFields = params.financeReportFields ?? defaultFinanceReportFields;\n\n const transactionOrbital = stdList({\n entityName: 'Transaction',\n fields: transactionFields,\n headerIcon: 'credit-card',\n pageTitle: 'Transactions',\n });\n\n const summaryOrbital = stdDisplay({\n entityName: 'FinanceSummary',\n fields: financeSummaryFields,\n headerIcon: 'pie-chart',\n pageTitle: 'Financial Summary',\n });\n\n const reportOrbital = stdDetail({\n entityName: 'FinanceReport',\n fields: financeReportFields,\n headerIcon: 'file-text',\n pageTitle: 'Reports',\n });\n\n const pages: ComposePage[] = [\n { name: 'TransactionsPage', path: '/transactions', traits: ['TransactionBrowse', 'TransactionCreate', 'TransactionEdit', 'TransactionView', 'TransactionDelete'], isInitial: true },\n { name: 'SummaryPage', path: '/summary', traits: ['FinanceSummaryDisplay'] },\n { name: 'ReportsPage', path: '/reports', traits: ['FinanceReportBrowse', 'FinanceReportCreate', 'FinanceReportView'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [transactionOrbital, summaryOrbital, reportOrbital],\n pages,\n connections,\n 'Finance Tracker',\n );\n}\n","/**\n * std-trading-dashboard\n *\n * Trading dashboard organism.\n * Composes: stdDisplay(Portfolio) + stdList(TradeOrder) + stdAsync(MarketFeed)\n *\n * Pages: /portfolio (initial), /orders, /market\n *\n * @level organism\n * @family finance\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema, EntityField } from '@almadar/core/types';\nimport type { ComposePage, ComposeConnection } from '@almadar/core/builders';\nimport { compose } from '@almadar/core/builders';\nimport { stdDisplay } from './std-display.js';\nimport { stdList } from './std-list.js';\nimport { stdAsync } from './std-async.js';\n\n// ============================================================================\n// Params\n// ============================================================================\n\nexport interface StdTradingDashboardParams {\n portfolioFields?: EntityField[];\n tradeOrderFields?: EntityField[];\n marketFeedFields?: EntityField[];\n}\n\n// ============================================================================\n// Defaults\n// ============================================================================\n\nconst defaultPortfolioFields: EntityField[] = [\n { name: 'totalValue', type: 'number', default: 0 },\n { name: 'dailyChange', type: 'number', default: 0 },\n { name: 'positions', type: 'number', default: 0 },\n { name: 'cashBalance', type: 'number', default: 0 },\n];\n\nconst defaultTradeOrderFields: EntityField[] = [\n { name: 'symbol', type: 'string', required: true },\n { name: 'side', type: 'string', required: true },\n { name: 'quantity', type: 'number', required: true },\n { name: 'price', type: 'number' },\n];\n\nconst defaultMarketFeedFields: EntityField[] = [\n { name: 'symbol', type: 'string', required: true },\n { name: 'price', type: 'number', required: true },\n { name: 'change', type: 'number' },\n { name: 'volume', type: 'number' },\n];\n\n// ============================================================================\n// Organism\n// ============================================================================\n\nexport function stdTradingDashboard(params: StdTradingDashboardParams): OrbitalSchema {\n const portfolioFields = params.portfolioFields ?? defaultPortfolioFields;\n const tradeOrderFields = params.tradeOrderFields ?? defaultTradeOrderFields;\n const marketFeedFields = params.marketFeedFields ?? defaultMarketFeedFields;\n\n const portfolioOrbital = stdDisplay({\n entityName: 'Portfolio',\n fields: portfolioFields,\n headerIcon: 'trending-up',\n pageTitle: 'Portfolio',\n });\n\n const orderOrbital = stdList({\n entityName: 'TradeOrder',\n fields: tradeOrderFields,\n headerIcon: 'shopping-cart',\n pageTitle: 'Trade Orders',\n });\n\n const marketOrbital = stdAsync({\n entityName: 'MarketFeed',\n fields: marketFeedFields,\n headerIcon: 'activity',\n loadingMessage: 'Connecting to market feed...',\n successMessage: 'Market feed connected.',\n errorMessage: 'Market feed disconnected.',\n });\n\n const pages: ComposePage[] = [\n { name: 'PortfolioPage', path: '/portfolio', traits: ['PortfolioDisplay'], isInitial: true },\n { name: 'OrdersPage', path: '/orders', traits: ['TradeOrderBrowse', 'TradeOrderCreate', 'TradeOrderEdit', 'TradeOrderView', 'TradeOrderDelete'] },\n { name: 'MarketPage', path: '/market', traits: ['MarketFeedAsync'] },\n ];\n\n const connections: ComposeConnection[] = [];\n\n return compose(\n [portfolioOrbital, orderOrbital, marketOrbital],\n pages,\n connections,\n 'Trading Dashboard',\n );\n}\n"]}