@almadar/std 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/behaviors/async.d.ts +8 -8
- package/dist/behaviors/async.js +548 -500
- package/dist/behaviors/async.js.map +1 -1
- package/dist/behaviors/data-management.d.ts +11 -19
- package/dist/behaviors/data-management.js +468 -449
- package/dist/behaviors/data-management.js.map +1 -1
- package/dist/behaviors/feedback.d.ts +6 -6
- package/dist/behaviors/feedback.js +312 -278
- package/dist/behaviors/feedback.js.map +1 -1
- package/dist/behaviors/game-core.d.ts +11 -12
- package/dist/behaviors/game-core.js +357 -406
- package/dist/behaviors/game-core.js.map +1 -1
- package/dist/behaviors/game-entity.d.ts +13 -14
- package/dist/behaviors/game-entity.js +622 -592
- package/dist/behaviors/game-entity.js.map +1 -1
- package/dist/behaviors/game-ui.d.ts +9 -10
- package/dist/behaviors/game-ui.js +522 -459
- package/dist/behaviors/game-ui.js.map +1 -1
- package/dist/behaviors/index.d.ts +3 -3
- package/dist/behaviors/index.js +3876 -3843
- package/dist/behaviors/index.js.map +1 -1
- package/dist/behaviors/registry.d.ts +14 -24
- package/dist/behaviors/registry.js +3868 -3803
- package/dist/behaviors/registry.js.map +1 -1
- package/dist/behaviors/types.d.ts +14 -138
- package/dist/behaviors/types.js +10 -47
- package/dist/behaviors/types.js.map +1 -1
- package/dist/behaviors/ui-interaction.d.ts +13 -20
- package/dist/behaviors/ui-interaction.js +961 -1043
- package/dist/behaviors/ui-interaction.js.map +1 -1
- package/dist/index.d.ts +44 -11
- package/dist/index.js +3913 -3870
- package/dist/index.js.map +1 -1
- package/dist/modules/index.js +11 -0
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/str.js +11 -0
- package/dist/modules/str.js.map +1 -1
- package/dist/registry.js +11 -0
- package/dist/registry.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../behaviors/ui-interaction.ts"],"names":[],"mappings":"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","file":"ui-interaction.js","sourcesContent":["/**\n * UI Interaction Behaviors\n *\n * Standard behaviors for common UI interaction patterns.\n * These use the Trait architecture with stateMachine.\n *\n * IMPORTANT: These are GENERATION TEMPLATES for LLMs.\n * They must use correct syntax:\n * - render-ui (not render)\n * - Explicit from states (not '*')\n * - Valid pattern types (form-section, entity-detail, etc.)\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/List - Entity List Management\n// ============================================================================\n\n/**\n * std/List - The core behavior for displaying and interacting with entity collections.\n *\n * States: Browsing → Creating/Viewing/Editing/Deleting\n * Implements complete CRUD operations with modal/drawer UI patterns.\n */\nexport const LIST_BEHAVIOR: StandardBehavior = {\n name: 'std/List',\n category: 'ui-interaction',\n description: 'Entity list management with CRUD operations',\n suggestedFor: [\n 'Entity listing pages',\n 'Admin panels',\n 'Data management screens',\n 'Table views with inline actions',\n ],\n\n dataEntities: [\n {\n name: 'ListState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selectedId', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Browsing',\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'Creating' },\n { name: 'Viewing' },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'CREATE' },\n { key: 'VIEW' },\n { key: 'EDIT' },\n { key: 'DELETE' },\n { key: 'CONFIRM_DELETE' },\n { key: 'CANCEL' },\n { key: 'SAVE' },\n ],\n transitions: [\n // INIT: Self-loop on Browsing that renders the list UI\n {\n from: 'Browsing',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@config.title',\n actions: [{ label: 'Create', event: 'CREATE', variant: 'primary' }],\n }],\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@config.entity',\n columns: '@config.columns',\n itemActions: [\n { label: 'View', event: 'VIEW', placement: 'row' },\n { label: 'Edit', event: 'EDIT', placement: 'row' },\n { label: 'Delete', event: 'DELETE', variant: 'danger', placement: 'row' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Creating',\n event: 'CREATE',\n effects: [\n ['render-ui', 'modal', {\n type: 'form-section',\n entity: '@config.entity',\n mode: 'create',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Viewing',\n event: 'VIEW',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Close', event: 'CANCEL' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@config.entity',\n id: '@payload.id',\n mode: 'edit',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@config.entity',\n id: '@entity.selectedId',\n mode: 'edit',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n confirmLabel: 'Delete',\n confirmVariant: 'danger',\n }],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'create', '@config.entity', '@payload.data'],\n ['render-ui', 'modal', null],\n ['notify', { type: 'success', message: 'Created successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@config.entity', '@payload.data'],\n ['render-ui', 'drawer', null],\n ['notify', { type: 'success', message: 'Updated successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@config.entity', '@entity.selectedId'],\n ['render-ui', 'modal', null],\n ['notify', { type: 'success', message: 'Deleted successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n {\n from: 'Viewing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type to list' },\n { name: 'columns', type: 'array', description: 'Fields to display as columns' },\n ],\n optional: [\n { name: 'title', type: 'string', description: 'Page title', default: '' },\n { name: 'display', type: 'string', description: 'Display mode', default: 'table', enum: ['table', 'cards', 'list'] },\n { name: 'actions', type: 'action[]', description: 'Available actions', default: ['view', 'edit', 'delete'] },\n { name: 'createInModal', type: 'boolean', description: 'Show create form in modal', default: true },\n { name: 'editInDrawer', type: 'boolean', description: 'Show edit form in drawer', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Detail - Single Entity View\n// ============================================================================\n\nexport const DETAIL_BEHAVIOR: StandardBehavior = {\n name: 'std/Detail',\n category: 'ui-interaction',\n description: 'Single entity view with edit/delete capabilities',\n suggestedFor: [\n 'Entity detail pages',\n 'Profile views',\n 'Settings pages',\n 'Single record screens',\n ],\n\n dataEntities: [\n {\n name: 'DetailState',\n runtime: true,\n fields: [\n { name: 'entityId', type: 'string', default: null },\n { name: 'isLoading', type: 'boolean', default: false },\n { name: 'hasChanges', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Viewing',\n states: [\n { name: 'Viewing', isInitial: true },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'EDIT' },\n { key: 'SAVE' },\n { key: 'CANCEL' },\n { key: 'DELETE' },\n { key: 'CONFIRM_DELETE' },\n ],\n transitions: [\n // INIT: Self-loop on Viewing\n {\n from: 'Viewing',\n to: 'Viewing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@entity.name',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Delete', event: 'DELETE', variant: 'danger' },\n ],\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n fieldNames: '@config.fields',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n mode: 'edit',\n fields: '@config.fields',\n submitEvent: 'SAVE',\n cancelEvent: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@config.entity', '@payload.data'],\n ['notify', { type: 'success', message: 'Updated successfully' }],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Viewing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['render-ui', 'modal', {\n type: 'confirmation',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n }],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@config.entity', '@entity.id'],\n ['navigate', '@config.returnUrl'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'fields', type: 'array', description: 'Fields to display' },\n ],\n optional: [\n { name: 'layout', type: 'string', description: 'Layout mode', default: 'two-column', enum: ['single-column', 'two-column', 'grid'] },\n { name: 'allowEdit', type: 'boolean', description: 'Allow editing', default: true },\n { name: 'allowDelete', type: 'boolean', description: 'Allow deletion', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Form - Form State Management\n// ============================================================================\n\nexport const FORM_BEHAVIOR: StandardBehavior = {\n name: 'std/Form',\n category: 'ui-interaction',\n description: 'Form state management with validation and submission',\n suggestedFor: [\n 'Create/edit forms',\n 'Settings forms',\n 'Multi-field input',\n 'Validated data entry',\n ],\n\n dataEntities: [\n {\n name: 'FormState',\n runtime: true,\n fields: [\n { name: 'values', type: 'object', default: {} },\n { name: 'errors', type: 'object', default: {} },\n { name: 'touched', type: 'object', default: {} },\n { name: 'isDirty', type: 'boolean', default: false },\n { name: 'isSubmitting', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Editing' },\n { name: 'Validating' },\n { name: 'Submitting' },\n { name: 'Success' },\n { name: 'Error' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'FIELD_CHANGE' },\n { key: 'FIELD_BLUR' },\n { key: 'SUBMIT' },\n { key: 'VALIDATION_PASSED' },\n { key: 'VALIDATION_FAILED' },\n { key: 'SUBMIT_SUCCESS' },\n { key: 'SUBMIT_ERROR' },\n { key: 'RESET' },\n ],\n transitions: [\n // INIT: Self-loop on Idle → Editing\n {\n from: 'Idle',\n to: 'Editing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.fields',\n values: '@entity.values',\n errors: '@entity.errors',\n submitEvent: 'SUBMIT',\n cancelEvent: '@config.cancelEvent',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_CHANGE',\n effects: [\n ['set', '@entity.values', ['object/set', '@entity.values', '@payload.field', '@payload.value']],\n ['set', '@entity.isDirty', true],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_BLUR',\n effects: [\n ['set', '@entity.touched', ['object/set', '@entity.touched', '@payload.field', true]],\n ],\n },\n {\n from: 'Editing',\n to: 'Validating',\n event: 'SUBMIT',\n effects: [\n ['let', [['result', ['validate/check', '@entity.values', '@config.validation']]],\n ['if', '@result.valid',\n ['emit', 'VALIDATION_PASSED'],\n ['do',\n ['set', '@entity.errors', '@result.errors'],\n ['emit', 'VALIDATION_FAILED']]]],\n ],\n },\n {\n from: 'Validating',\n to: 'Submitting',\n event: 'VALIDATION_PASSED',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['if', ['=', '@config.mode', 'create'],\n ['persist', 'create', '@config.entity', '@entity.values'],\n ['persist', 'update', '@config.entity', '@entity.values']],\n ],\n },\n {\n from: 'Validating',\n to: 'Editing',\n event: 'VALIDATION_FAILED',\n effects: [\n ['notify', { type: 'error', message: 'Please fix the validation errors' }],\n ],\n },\n {\n from: 'Submitting',\n to: 'Success',\n event: 'SUBMIT_SUCCESS',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['notify', { type: 'success', message: 'Saved successfully' }],\n ['emit', '@config.submitEvent', { data: '@entity.values' }],\n ],\n },\n {\n from: 'Submitting',\n to: 'Error',\n event: 'SUBMIT_ERROR',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.errors', { _form: '@payload.error' }],\n ['notify', { type: 'error', message: '@payload.error' }],\n ],\n },\n {\n from: 'Editing',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n {\n from: 'Error',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'fields', type: 'array', description: 'Form fields' },\n ],\n optional: [\n { name: 'mode', type: 'string', description: 'Form mode', default: 'create', enum: ['create', 'edit'] },\n { name: 'validation', type: 'object', description: 'Validation rules', default: {} },\n { name: 'submitEvent', type: 'event', description: 'Event to emit on successful submit', default: 'SAVE' },\n { name: 'cancelEvent', type: 'event', description: 'Event to emit on cancel', default: 'CANCEL' },\n ],\n },\n};\n\n// ============================================================================\n// std/Modal - Modal Dialog\n// ============================================================================\n\nexport const MODAL_BEHAVIOR: StandardBehavior = {\n name: 'std/Modal',\n category: 'ui-interaction',\n description: 'Modal dialog with open/close state management',\n suggestedFor: [\n 'Confirmation dialogs',\n 'Create forms',\n 'Detail views',\n 'Any overlay content',\n ],\n\n dataEntities: [\n {\n name: 'ModalState',\n runtime: true,\n fields: [\n { name: 'content', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN' },\n { key: 'CLOSE' },\n { key: 'CONFIRM' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'modal', {\n type: '@payload.type',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CONFIRM',\n effects: [\n ['render-ui', 'modal', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'size', type: 'string', description: 'Modal size', default: 'md', enum: ['sm', 'md', 'lg', 'xl', 'full'] },\n { name: 'closeOnOverlay', type: 'boolean', description: 'Close on overlay click', default: true },\n { name: 'closeOnEscape', type: 'boolean', description: 'Close on escape key', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Drawer - Side Drawer Panel\n// ============================================================================\n\nexport const DRAWER_BEHAVIOR: StandardBehavior = {\n name: 'std/Drawer',\n category: 'ui-interaction',\n description: 'Side drawer panel for detail views and forms',\n suggestedFor: [\n 'Detail panels',\n 'Edit forms',\n 'Property panels',\n 'Side navigation',\n ],\n\n dataEntities: [\n {\n name: 'DrawerState',\n runtime: true,\n fields: [\n { name: 'content', type: 'object', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Closed',\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN' },\n { key: 'CLOSE' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'drawer', {\n type: '@payload.type',\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [\n ['render-ui', 'drawer', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'position', type: 'string', description: 'Drawer position', default: 'right', enum: ['left', 'right'] },\n { name: 'size', type: 'string', description: 'Drawer size', default: 'md', enum: ['sm', 'md', 'lg'] },\n { name: 'overlay', type: 'boolean', description: 'Show overlay', default: true },\n ],\n },\n};\n\n// ============================================================================\n// std/Tabs - Tabbed Navigation\n// ============================================================================\n\nexport const TABS_BEHAVIOR: StandardBehavior = {\n name: 'std/Tabs',\n category: 'ui-interaction',\n description: 'Tabbed navigation within a page',\n suggestedFor: [\n 'Multi-view pages',\n 'Settings with sections',\n 'Dashboard tabs',\n 'Profile sections',\n ],\n\n dataEntities: [\n {\n name: 'TabsState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'activeTab', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT_TAB' },\n ],\n transitions: [\n // INIT: Self-loop on Active\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.activeTab', '@config.defaultTab'],\n ['render-ui', 'main', {\n type: 'filter-group',\n filterType: 'tabs',\n tabs: '@config.tabs',\n active: '@entity.activeTab',\n onSelect: 'SELECT_TAB',\n }],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SELECT_TAB',\n effects: [\n ['set', '@entity.activeTab', '@payload.tabId'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'tabs', type: 'array', description: 'Tab definitions with id, label, content' },\n ],\n optional: [\n { name: 'defaultTab', type: 'string', description: 'Default active tab ID' },\n ],\n },\n};\n\n// ============================================================================\n// std/Wizard - Multi-Step Flow\n// IMPORTANT: Each step is a STATE, not an index number\n// ============================================================================\n\nexport const WIZARD_BEHAVIOR: StandardBehavior = {\n name: 'std/Wizard',\n category: 'ui-interaction',\n description: 'Multi-step wizard flow - each step is a state',\n suggestedFor: [\n 'Onboarding flows',\n 'Multi-step forms',\n 'Setup wizards',\n 'Checkout flows',\n ],\n\n dataEntities: [\n {\n name: 'WizardState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'stepData', type: 'object', default: {} },\n ],\n },\n ],\n\n // IMPORTANT: Each wizard step is a STATE, not a number index\n // This is the correct pattern for wizards\n stateMachine: {\n initial: 'Step1',\n states: [\n { name: 'Step1', isInitial: true },\n { name: 'Step2' },\n { name: 'Step3' },\n { name: 'Complete' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'NEXT' },\n { key: 'PREV' },\n { key: 'COMPLETE' },\n ],\n transitions: [\n // INIT on Step1: Self-loop that renders step 1\n {\n from: 'Step1',\n to: 'Step1',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 0,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step1Fields',\n submitEvent: 'NEXT',\n }],\n ],\n },\n // Step1 → Step2\n {\n from: 'Step1',\n to: 'Step2',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step1', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 1,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step2Fields',\n submitEvent: 'NEXT',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step2 → Step1 (back)\n {\n from: 'Step2',\n to: 'Step1',\n event: 'PREV',\n effects: [\n ['emit', 'INIT'],\n ],\n },\n // Step2 → Step3\n {\n from: 'Step2',\n to: 'Step3',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step2', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 2,\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n fieldNames: ['step1', 'step2'],\n title: 'Review',\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n submitLabel: 'Complete',\n cancelLabel: 'Back',\n submitEvent: 'COMPLETE',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step3 → Step2 (back)\n {\n from: 'Step3',\n to: 'Step2',\n event: 'PREV',\n effects: [\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n current: 1,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@config.entity',\n fields: '@config.step2Fields',\n submitEvent: 'NEXT',\n cancelEvent: 'PREV',\n }],\n ],\n },\n // Step3 → Complete\n {\n from: 'Step3',\n to: 'Complete',\n event: 'COMPLETE',\n effects: [\n ['persist', 'create', '@config.entity', '@entity.stepData'],\n ['notify', { type: 'success', message: 'Wizard completed!' }],\n ['navigate', '@config.completionUrl'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity to create' },\n { name: 'step1Fields', type: 'array', description: 'Fields for step 1' },\n { name: 'step2Fields', type: 'array', description: 'Fields for step 2' },\n ],\n optional: [\n { name: 'completionUrl', type: 'string', description: 'URL to navigate on completion', default: '/' },\n ],\n },\n};\n\n// ============================================================================\n// std/MasterDetail - List + Detail Layout\n// ============================================================================\n\nexport const MASTER_DETAIL_BEHAVIOR: StandardBehavior = {\n name: 'std/MasterDetail',\n category: 'ui-interaction',\n description: 'Master-detail layout with synchronized list and detail views',\n suggestedFor: [\n 'Email clients',\n 'File managers',\n 'Two-panel layouts',\n 'List-detail views',\n ],\n\n dataEntities: [\n {\n name: 'MasterDetailState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selectedId', type: 'string', default: null },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'NoSelection',\n states: [\n { name: 'NoSelection', isInitial: true },\n { name: 'Selected' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SELECT' },\n { key: 'DESELECT' },\n ],\n transitions: [\n // INIT: Self-loop on NoSelection\n {\n from: 'NoSelection',\n to: 'NoSelection',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'master-detail',\n entity: '@config.entity',\n masterColumns: '@config.masterColumns',\n onSelect: 'SELECT',\n selected: '@entity.selectedId',\n }],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n {\n from: 'NoSelection',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n fieldNames: '@config.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@config.entity',\n id: '@payload.id',\n fieldNames: '@config.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'NoSelection',\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selectedId', null],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'entity', description: 'Entity type' },\n { name: 'masterColumns', type: 'array', description: 'Columns for master list' },\n { name: 'detailFields', type: 'array', description: 'Fields for detail panel' },\n ],\n optional: [\n { name: 'masterWidth', type: 'string', description: 'Master panel width', default: '350px' },\n ],\n },\n};\n\n// ============================================================================\n// std/Filter - Filter Management\n// ============================================================================\n\nexport const FILTER_BEHAVIOR: StandardBehavior = {\n name: 'std/Filter',\n category: 'ui-interaction',\n description: 'Filter and search management for lists',\n suggestedFor: [\n 'Filtered lists',\n 'Search interfaces',\n 'Faceted navigation',\n 'Advanced filtering',\n ],\n\n dataEntities: [\n {\n name: 'FilterState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'filters', type: 'object', default: {} },\n { name: 'searchTerm', type: 'string', default: '' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Filtering' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SET_FILTER' },\n { key: 'CLEAR_FILTERS' },\n { key: 'SEARCH' },\n ],\n transitions: [\n // INIT: Self-loop\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'filter-group',\n filters: '@config.filters',\n values: '@entity.filters',\n onFilterChange: 'SET_FILTER',\n onClear: 'CLEAR_FILTERS',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@entity.filters', {}],\n ['set', '@entity.searchTerm', ''],\n ['emit', 'FILTER_CHANGED', {}],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SEARCH',\n effects: [\n ['set', '@entity.searchTerm', '@payload.term'],\n ['emit', 'SEARCH_CHANGED', '@payload.term'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'filters', type: 'array', description: 'Filter definitions' },\n ],\n optional: [\n { name: 'searchable', type: 'boolean', description: 'Enable search', default: true },\n ],\n },\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const UI_INTERACTION_BEHAVIORS: StandardBehavior[] = [\n LIST_BEHAVIOR,\n DETAIL_BEHAVIOR,\n FORM_BEHAVIOR,\n MODAL_BEHAVIOR,\n DRAWER_BEHAVIOR,\n TABS_BEHAVIOR,\n WIZARD_BEHAVIOR,\n MASTER_DETAIL_BEHAVIOR,\n FILTER_BEHAVIOR,\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["../../behaviors/ui-interaction.ts"],"names":[],"mappings":"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","file":"ui-interaction.js","sourcesContent":["/**\n * UI Interaction Behaviors\n *\n * Standard behaviors for common UI interaction patterns.\n * Each behavior is a self-contained OrbitalSchema that can function as a standalone .orb file.\n *\n * @packageDocumentation\n */\n\nimport type { OrbitalSchema } from './types.js';\n\n// ============================================================================\n// std-list - Entity List Management\n// ============================================================================\n\n/**\n * std-list - The core behavior for displaying and interacting with entity collections.\n *\n * States: Browsing → Creating/Viewing/Editing/Deleting\n * Implements complete CRUD operations with modal/drawer UI patterns.\n */\nexport const LIST_BEHAVIOR: OrbitalSchema = {\n name: 'std-list',\n version: '1.0.0',\n description: 'Entity list management with CRUD operations',\n orbitals: [\n {\n name: 'ListOrbital',\n entity: {\n name: 'ListState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'selectedId', type: 'string', default: null },\n { name: 'entityType', type: 'string', default: '' },\n { name: 'title', type: 'string', default: 'Items' },\n { name: 'columns', type: 'array', default: [] },\n ],\n },\n traits: [\n {\n name: 'List',\n linkedEntity: 'ListState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Browsing', isInitial: true },\n { name: 'Creating' },\n { name: 'Viewing' },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'CREATE', name: 'Create' },\n { key: 'VIEW', name: 'View' },\n { key: 'EDIT', name: 'Edit' },\n { key: 'DELETE', name: 'Delete' },\n { key: 'CONFIRM_DELETE', name: 'Confirm Delete' },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'SAVE', name: 'Save' },\n ],\n transitions: [\n {\n from: 'Browsing',\n to: 'Browsing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@entity.title',\n actions: [{ label: 'Create', event: 'CREATE', variant: 'primary' }],\n }],\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@entity.entityType',\n columns: '@entity.columns',\n itemActions: [\n { label: 'View', event: 'VIEW', placement: 'row' },\n { label: 'Edit', event: 'EDIT', placement: 'row' },\n { label: 'Delete', event: 'DELETE', variant: 'danger', placement: 'row' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Creating',\n event: 'CREATE',\n effects: [\n ['render-ui', 'modal', {\n type: 'form-section',\n entity: '@entity.entityType',\n mode: 'create',\n onSubmit: 'SAVE',\n onCancel: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Viewing',\n event: 'VIEW',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'entity-detail',\n entity: '@entity.entityType',\n data: '@payload.id',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Close', event: 'CANCEL' },\n ],\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@entity.entityType',\n initialData: '@payload.id',\n mode: 'edit',\n onSubmit: 'SAVE',\n onCancel: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'drawer', {\n type: 'form-section',\n entity: '@entity.entityType',\n initialData: '@entity.selectedId',\n mode: 'edit',\n onSubmit: 'SAVE',\n onCancel: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Browsing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'modal', {\n type: 'confirm-dialog',\n isOpen: true,\n onClose: 'CANCEL',\n onConfirm: 'CONFIRM_DELETE',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n confirmText: 'Delete',\n variant: 'danger',\n }],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'create', '@entity.entityType', '@payload.data'],\n ['notify', 'in_app', 'Created successfully'],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@entity.entityType', '@payload.data'],\n ['notify', 'in_app', 'Updated successfully'],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@entity.entityType', '@entity.selectedId'],\n ['notify', 'in_app', 'Deleted successfully'],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Creating',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [],\n },\n {\n from: 'Viewing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [],\n },\n {\n from: 'Editing',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [],\n },\n {\n from: 'Deleting',\n to: 'Browsing',\n event: 'CANCEL',\n effects: [],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-detail - Single Entity View\n// ============================================================================\n\nexport const DETAIL_BEHAVIOR: OrbitalSchema = {\n name: 'std-detail',\n version: '1.0.0',\n description: 'Single entity view with edit/delete capabilities',\n orbitals: [\n {\n name: 'DetailOrbital',\n entity: {\n name: 'DetailState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'entityId', type: 'string', default: null },\n { name: 'isLoading', type: 'boolean', default: false },\n { name: 'hasChanges', type: 'boolean', default: false },\n { name: 'entityType', type: 'string', default: '' },\n { name: 'fields', type: 'array', default: [] },\n { name: 'returnUrl', type: 'string', default: '/' },\n ],\n },\n traits: [\n {\n name: 'Detail',\n linkedEntity: 'DetailState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Viewing', isInitial: true },\n { name: 'Editing' },\n { name: 'Deleting' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'EDIT', name: 'Edit' },\n { key: 'SAVE', name: 'Save' },\n { key: 'CANCEL', name: 'Cancel' },\n { key: 'DELETE', name: 'Delete' },\n { key: 'CONFIRM_DELETE', name: 'Confirm Delete' },\n ],\n transitions: [\n {\n from: 'Viewing',\n to: 'Viewing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'page-header',\n title: '@entity.name',\n actions: [\n { label: 'Edit', event: 'EDIT' },\n { label: 'Delete', event: 'DELETE', variant: 'danger' },\n ],\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@entity.entityType',\n fieldNames: '@entity.fields',\n }],\n ],\n },\n {\n from: 'Viewing',\n to: 'Editing',\n event: 'EDIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@entity.entityType',\n mode: 'edit',\n fields: '@entity.fields',\n onSubmit: 'SAVE',\n onCancel: 'CANCEL',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'SAVE',\n effects: [\n ['persist', 'update', '@entity.entityType', '@payload.data'],\n ['notify', 'in_app', 'Updated successfully'],\n ['emit', 'INIT'],\n ],\n },\n {\n from: 'Editing',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [['emit', 'INIT']],\n },\n {\n from: 'Viewing',\n to: 'Deleting',\n event: 'DELETE',\n effects: [\n ['render-ui', 'modal', {\n type: 'confirm-dialog',\n isOpen: true,\n onClose: 'CANCEL',\n onConfirm: 'CONFIRM',\n title: 'Delete Confirmation',\n message: 'Are you sure you want to delete this item?',\n }],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CONFIRM_DELETE',\n effects: [\n ['persist', 'delete', '@entity.entityType', '@entity.id'],\n ['navigate', '@entity.returnUrl'],\n ],\n },\n {\n from: 'Deleting',\n to: 'Viewing',\n event: 'CANCEL',\n effects: [],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-form - Form State Management\n// ============================================================================\n\nexport const FORM_BEHAVIOR: OrbitalSchema = {\n name: 'std-form',\n version: '1.0.0',\n description: 'Form state management with validation and submission',\n orbitals: [\n {\n name: 'FormOrbital',\n entity: {\n name: 'FormState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'values', type: 'object', default: {} },\n { name: 'errors', type: 'object', default: {} },\n { name: 'touched', type: 'object', default: {} },\n { name: 'isDirty', type: 'boolean', default: false },\n { name: 'isSubmitting', type: 'boolean', default: false },\n { name: 'entityType', type: 'string', default: '' },\n { name: 'fields', type: 'array', default: [] },\n { name: 'mode', type: 'string', default: 'create' },\n { name: 'validation', type: 'object', default: {} },\n { name: 'cancelEvent', type: 'string', default: 'CANCEL' },\n { name: 'submitEvent', type: 'string', default: 'SUBMIT_SUCCESS' },\n ],\n },\n traits: [\n {\n name: 'Form',\n linkedEntity: 'FormState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Editing' },\n { name: 'Validating' },\n { name: 'Submitting' },\n { name: 'Success', isTerminal: true },\n { name: 'Error' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FIELD_CHANGE', name: 'Field Change' },\n { key: 'FIELD_BLUR', name: 'Field Blur' },\n { key: 'SUBMIT', name: 'Submit' },\n { key: 'VALIDATION_PASSED', name: 'Validation Passed' },\n { key: 'VALIDATION_FAILED', name: 'Validation Failed' },\n { key: 'SUBMIT_SUCCESS', name: 'Submit Success' },\n { key: 'SUBMIT_ERROR', name: 'Submit Error' },\n { key: 'RESET', name: 'Reset' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Editing',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@entity.entityType',\n fields: '@entity.fields',\n initialData: '@entity.values',\n onSubmit: 'SUBMIT',\n onCancel: '@entity.cancelEvent',\n }],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_CHANGE',\n effects: [\n ['set', '@entity.values', ['object/set', '@entity.values', '@payload.field', '@payload.value']],\n ['set', '@entity.isDirty', true],\n ],\n },\n {\n from: 'Editing',\n to: 'Editing',\n event: 'FIELD_BLUR',\n effects: [\n ['set', '@entity.touched', ['object/set', '@entity.touched', '@payload.field', true]],\n ],\n },\n {\n from: 'Editing',\n to: 'Validating',\n event: 'SUBMIT',\n effects: [\n ['let', [['result', ['validate/check', '@entity.values', '@entity.validation']]],\n ['if', '@result.valid',\n ['emit', 'VALIDATION_PASSED'],\n ['do',\n ['set', '@entity.errors', '@result.errors'],\n ['emit', 'VALIDATION_FAILED']]]],\n ],\n },\n {\n from: 'Validating',\n to: 'Submitting',\n event: 'VALIDATION_PASSED',\n effects: [\n ['set', '@entity.isSubmitting', true],\n ['if', ['=', '@entity.mode', 'create'],\n ['persist', 'create', '@entity.entityType', '@entity.values'],\n ['persist', 'update', '@entity.entityType', '@entity.values']],\n ],\n },\n {\n from: 'Validating',\n to: 'Editing',\n event: 'VALIDATION_FAILED',\n effects: [\n ['notify', 'in_app', 'Please fix the validation errors'],\n ],\n },\n {\n from: 'Submitting',\n to: 'Success',\n event: 'SUBMIT_SUCCESS',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['notify', 'in_app', 'Saved successfully'],\n ['emit', '@entity.submitEvent', { data: '@entity.values' }],\n ],\n },\n {\n from: 'Submitting',\n to: 'Error',\n event: 'SUBMIT_ERROR',\n effects: [\n ['set', '@entity.isSubmitting', false],\n ['set', '@entity.errors', { _form: '@payload.error' }],\n ['notify', 'in_app', '@payload.error'],\n ],\n },\n {\n from: 'Editing',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n {\n from: 'Error',\n to: 'Idle',\n event: 'RESET',\n effects: [\n ['set', '@entity.values', {}],\n ['set', '@entity.errors', {}],\n ['set', '@entity.touched', {}],\n ['set', '@entity.isDirty', false],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-modal - Modal Dialog\n// ============================================================================\n\nexport const MODAL_BEHAVIOR: OrbitalSchema = {\n name: 'std-modal',\n version: '1.0.0',\n description: 'Modal dialog with open/close state management',\n orbitals: [\n {\n name: 'ModalOrbital',\n entity: {\n name: 'ModalState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'content', type: 'object', default: null },\n ],\n },\n traits: [\n {\n name: 'Modal',\n linkedEntity: 'ModalState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN', name: 'Open' },\n { key: 'CLOSE', name: 'Close' },\n { key: 'CONFIRM', name: 'Confirm' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'modal', {\n type: 'modal',\n isOpen: true,\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CONFIRM',\n effects: [],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-drawer - Side Drawer Panel\n// ============================================================================\n\nexport const DRAWER_BEHAVIOR: OrbitalSchema = {\n name: 'std-drawer',\n version: '1.0.0',\n description: 'Side drawer panel for detail views and forms',\n orbitals: [\n {\n name: 'DrawerOrbital',\n entity: {\n name: 'DrawerState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'content', type: 'object', default: null },\n ],\n },\n traits: [\n {\n name: 'Drawer',\n linkedEntity: 'DrawerState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Closed', isInitial: true },\n { name: 'Open' },\n ],\n events: [\n { key: 'OPEN', name: 'Open' },\n { key: 'CLOSE', name: 'Close' },\n ],\n transitions: [\n {\n from: 'Closed',\n to: 'Open',\n event: 'OPEN',\n effects: [\n ['set', '@entity.content', '@payload.content'],\n ['render-ui', 'drawer', {\n type: 'drawer',\n isOpen: true,\n onClose: 'CLOSE',\n }],\n ],\n },\n {\n from: 'Open',\n to: 'Closed',\n event: 'CLOSE',\n effects: [],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-tabs - Tabbed Navigation\n// ============================================================================\n\nexport const TABS_BEHAVIOR: OrbitalSchema = {\n name: 'std-tabs',\n version: '1.0.0',\n description: 'Tabbed navigation within a page',\n orbitals: [\n {\n name: 'TabsOrbital',\n entity: {\n name: 'TabsState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'activeTab', type: 'string', default: null },\n { name: 'tabs', type: 'array', default: [] },\n { name: 'defaultTab', type: 'string', default: null },\n ],\n },\n traits: [\n {\n name: 'Tabs',\n linkedEntity: 'TabsState',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Active', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT_TAB', name: 'Select Tab' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.activeTab', '@entity.defaultTab'],\n ['render-ui', 'main', {\n type: 'tabs',\n tabs: '@entity.tabs',\n activeTab: '@entity.activeTab',\n onTabChange: 'SELECT_TAB',\n }],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SELECT_TAB',\n effects: [['set', '@entity.activeTab', '@payload.tabId']],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-wizard - Multi-Step Flow\n// ============================================================================\n\nexport const WIZARD_BEHAVIOR: OrbitalSchema = {\n name: 'std-wizard',\n version: '1.0.0',\n description: 'Multi-step wizard flow - each step is a state',\n orbitals: [\n {\n name: 'WizardOrbital',\n entity: {\n name: 'WizardState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'stepData', type: 'object', default: {} },\n { name: 'entityType', type: 'string', default: '' },\n { name: 'step1Fields', type: 'array', default: [] },\n { name: 'step2Fields', type: 'array', default: [] },\n { name: 'completionUrl', type: 'string', default: '/' },\n ],\n },\n traits: [\n {\n name: 'Wizard',\n linkedEntity: 'WizardState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Step1', isInitial: true },\n { name: 'Step2' },\n { name: 'Step3' },\n { name: 'Complete', isTerminal: true },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NEXT', name: 'Next' },\n { key: 'PREV', name: 'Previous' },\n { key: 'COMPLETE', name: 'Complete' },\n ],\n transitions: [\n {\n from: 'Step1',\n to: 'Step1',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n currentStep: 0,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@entity.entityType',\n fields: '@entity.step1Fields',\n onSubmit: 'NEXT',\n }],\n ],\n },\n {\n from: 'Step1',\n to: 'Step2',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step1', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n currentStep: 1,\n }],\n ['render-ui', 'main', {\n type: 'form-section',\n entity: '@entity.entityType',\n fields: '@entity.step2Fields',\n onSubmit: 'NEXT',\n onCancel: 'PREV',\n }],\n ],\n },\n {\n from: 'Step2',\n to: 'Step1',\n event: 'PREV',\n effects: [['emit', 'INIT']],\n },\n {\n from: 'Step2',\n to: 'Step3',\n event: 'NEXT',\n effects: [\n ['set', '@entity.stepData.step2', '@payload'],\n ['render-ui', 'main', {\n type: 'wizard-progress',\n steps: ['Step 1', 'Step 2', 'Step 3'],\n currentStep: 2,\n }],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@entity.entityType',\n fieldNames: ['step1', 'step2'],\n title: 'Review',\n }],\n ],\n },\n {\n from: 'Step3',\n to: 'Step2',\n event: 'PREV',\n effects: [],\n },\n {\n from: 'Step3',\n to: 'Complete',\n event: 'COMPLETE',\n effects: [\n ['persist', 'create', '@entity.entityType', '@entity.stepData'],\n ['notify', 'in_app', 'Wizard completed!'],\n ['navigate', '@entity.completionUrl'],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-masterdetail - List + Detail Layout\n// ============================================================================\n\nexport const MASTER_DETAIL_BEHAVIOR: OrbitalSchema = {\n name: 'std-masterdetail',\n version: '1.0.0',\n description: 'Master-detail layout with synchronized list and detail views',\n orbitals: [\n {\n name: 'MasterDetailOrbital',\n entity: {\n name: 'MasterDetailState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'selectedId', type: 'string', default: null },\n { name: 'entityType', type: 'string', default: '' },\n { name: 'masterColumns', type: 'array', default: [] },\n { name: 'detailFields', type: 'array', default: [] },\n ],\n },\n traits: [\n {\n name: 'MasterDetail',\n linkedEntity: 'MasterDetailState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'NoSelection', isInitial: true },\n { name: 'Selected' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT', name: 'Select' },\n { key: 'DESELECT', name: 'Deselect' },\n ],\n transitions: [\n {\n from: 'NoSelection',\n to: 'NoSelection',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'master-detail',\n master: '@entity.entityType',\n detail: '@entity.selectedId',\n hasSelection: '@entity.hasSelection',\n }],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n {\n from: 'NoSelection',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@entity.entityType',\n data: '@payload.id',\n fieldNames: '@entity.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'Selected',\n event: 'SELECT',\n effects: [\n ['set', '@entity.selectedId', '@payload.id'],\n ['render-ui', 'main', {\n type: 'entity-detail',\n entity: '@entity.entityType',\n data: '@payload.id',\n fieldNames: '@entity.detailFields',\n }],\n ],\n },\n {\n from: 'Selected',\n to: 'NoSelection',\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selectedId', null],\n ['render-ui', 'main', {\n type: 'empty-state',\n message: 'Select an item to view details',\n }],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-filter - Filter Management (ui-interaction version)\n// ============================================================================\n\nexport const FILTER_BEHAVIOR: OrbitalSchema = {\n name: 'std-filter-ui',\n version: '1.0.0',\n description: 'Filter and search management for lists',\n orbitals: [\n {\n name: 'FilterOrbital',\n entity: {\n name: 'FilterState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'filters', type: 'object', default: {} },\n { name: 'searchTerm', type: 'string', default: '' },\n { name: 'filterConfig', type: 'array', default: [] },\n ],\n },\n traits: [\n {\n name: 'Filter',\n linkedEntity: 'FilterState',\n category: 'interaction',\n stateMachine: {\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Filtering' },\n ],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SET_FILTER', name: 'Set Filter' },\n { key: 'CLEAR_FILTERS', name: 'Clear Filters' },\n { key: 'SEARCH', name: 'Search' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['render-ui', 'main', {\n type: 'filter-group',\n entity: '@entity.entityType',\n filters: '@entity.filterConfig',\n onFilterChange: 'SET_FILTER',\n onClearAll: 'CLEAR_FILTERS',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'SET_FILTER',\n effects: [\n ['set', '@entity.filters', ['object/set', '@entity.filters', '@payload.field', '@payload.value']],\n ['emit', 'FILTER_CHANGED', '@entity.filters'],\n ],\n },\n {\n from: 'Filtering',\n to: 'Idle',\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@entity.filters', {}],\n ['set', '@entity.searchTerm', ''],\n ['emit', 'FILTER_CHANGED', {}],\n ],\n },\n {\n from: 'Idle',\n to: 'Filtering',\n event: 'SEARCH',\n effects: [\n ['set', '@entity.searchTerm', '@payload.term'],\n ['emit', 'SEARCH_CHANGED', '@payload.term'],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// Export All Behaviors\n// ============================================================================\n\nexport const UI_INTERACTION_BEHAVIORS: OrbitalSchema[] = [\n LIST_BEHAVIOR,\n DETAIL_BEHAVIOR,\n FORM_BEHAVIOR,\n MODAL_BEHAVIOR,\n DRAWER_BEHAVIOR,\n TABS_BEHAVIOR,\n WIZARD_BEHAVIOR,\n MASTER_DETAIL_BEHAVIOR,\n FILTER_BEHAVIOR,\n];\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,15 +9,15 @@ export { TIME_OPERATORS } from './modules/time.js';
|
|
|
9
9
|
export { VALIDATE_OPERATORS } from './modules/validate.js';
|
|
10
10
|
export { FORMAT_OPERATORS } from './modules/format.js';
|
|
11
11
|
export { ASYNC_OPERATORS } from './modules/async.js';
|
|
12
|
-
import {
|
|
13
|
-
export {
|
|
12
|
+
import { BehaviorTrait } from './behaviors/types.js';
|
|
13
|
+
export { BehaviorMetadata, ItemAction, getBehaviorMetadata, validateBehaviorEvents, validateBehaviorStates, validateBehaviorStructure } from './behaviors/types.js';
|
|
14
14
|
export { ACTION_AFFINITY, ActionAffinity, ActionPlacement, UIEventInfo, UI_EVENTS, getAllKnownComponents, getComponentsByCategory, getComponentsForEvent, getInvalidActionsForComponent, getValidActionsForComponent, isActionInvalidForComponent, isActionValidForComponent, validateActionsForComponent } from './behaviors/action-affinity.js';
|
|
15
15
|
export { DETAIL_BEHAVIOR, DRAWER_BEHAVIOR, FORM_BEHAVIOR, LIST_BEHAVIOR, MASTER_DETAIL_BEHAVIOR, MODAL_BEHAVIOR, TABS_BEHAVIOR, UI_INTERACTION_BEHAVIORS, WIZARD_BEHAVIOR } from './behaviors/ui-interaction.js';
|
|
16
16
|
export { DATA_MANAGEMENT_BEHAVIORS, FILTER_BEHAVIOR, PAGINATION_BEHAVIOR, SEARCH_BEHAVIOR, SELECTION_BEHAVIOR, SORT_BEHAVIOR } from './behaviors/data-management.js';
|
|
17
17
|
export { ASYNC_BEHAVIORS, FETCH_BEHAVIOR, LOADING_BEHAVIOR, POLL_BEHAVIOR, RETRY_BEHAVIOR, SUBMIT_BEHAVIOR } from './behaviors/async.js';
|
|
18
18
|
export { CONFIRMATION_BEHAVIOR, FEEDBACK_BEHAVIORS, NOTIFICATION_BEHAVIOR, UNDO_BEHAVIOR } from './behaviors/feedback.js';
|
|
19
|
-
export {
|
|
20
|
-
|
|
19
|
+
export { BEHAVIOR_REGISTRY, STANDARD_BEHAVIORS, findBehaviorsForUseCase, getAllBehaviorMetadata, getAllBehaviorNames, getAllBehaviors, getBehavior, getBehaviorLibraryStats, getBehaviorsForEvent, getBehaviorsWithState, isKnownBehavior, validateBehaviorReference } from './behaviors/registry.js';
|
|
20
|
+
export { Event, State, StateMachine, Trait, TraitCategory, TraitDataEntity, TraitEntityField, TraitTick, Transition } from '@almadar/core/types';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* Standard Library Documentation Generator
|
|
@@ -32,10 +32,43 @@ import '@almadar/core/types';
|
|
|
32
32
|
* Human-friendly module descriptions
|
|
33
33
|
*/
|
|
34
34
|
declare const MODULE_DESCRIPTIONS: Record<StdModule, ModuleInfo>;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
declare const BEHAVIOR_CATEGORY_DESCRIPTIONS: {
|
|
36
|
+
'ui-interaction': {
|
|
37
|
+
name: string;
|
|
38
|
+
description: string;
|
|
39
|
+
icon: string;
|
|
40
|
+
};
|
|
41
|
+
'data-management': {
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
icon: string;
|
|
45
|
+
};
|
|
46
|
+
async: {
|
|
47
|
+
name: string;
|
|
48
|
+
description: string;
|
|
49
|
+
icon: string;
|
|
50
|
+
};
|
|
51
|
+
feedback: {
|
|
52
|
+
name: string;
|
|
53
|
+
description: string;
|
|
54
|
+
icon: string;
|
|
55
|
+
};
|
|
56
|
+
'game-core': {
|
|
57
|
+
name: string;
|
|
58
|
+
description: string;
|
|
59
|
+
icon: string;
|
|
60
|
+
};
|
|
61
|
+
'game-entity': {
|
|
62
|
+
name: string;
|
|
63
|
+
description: string;
|
|
64
|
+
icon: string;
|
|
65
|
+
};
|
|
66
|
+
'game-ui': {
|
|
67
|
+
name: string;
|
|
68
|
+
description: string;
|
|
69
|
+
icon: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
39
72
|
interface ModuleInfo {
|
|
40
73
|
name: string;
|
|
41
74
|
displayName: string;
|
|
@@ -97,7 +130,7 @@ interface BehaviorDoc {
|
|
|
97
130
|
name: string;
|
|
98
131
|
shortName: string;
|
|
99
132
|
description: string;
|
|
100
|
-
suggestedFor
|
|
133
|
+
suggestedFor?: string[];
|
|
101
134
|
states: string[];
|
|
102
135
|
statesCount: number;
|
|
103
136
|
initial: string;
|
|
@@ -175,7 +208,7 @@ declare function generateModuleDoc(moduleId: StdModule): ModuleDoc | null;
|
|
|
175
208
|
/**
|
|
176
209
|
* Generate documentation for a single behavior
|
|
177
210
|
*/
|
|
178
|
-
declare function generateBehaviorDoc(behavior:
|
|
211
|
+
declare function generateBehaviorDoc(behavior: BehaviorTrait): BehaviorDoc;
|
|
179
212
|
/**
|
|
180
213
|
* Generate documentation for all std library modules
|
|
181
214
|
*/
|
|
@@ -192,4 +225,4 @@ declare function generateStdLibDocs(): {
|
|
|
192
225
|
behaviors: BehaviorsDocs;
|
|
193
226
|
};
|
|
194
227
|
|
|
195
|
-
export { BEHAVIOR_CATEGORY_DESCRIPTIONS,
|
|
228
|
+
export { BEHAVIOR_CATEGORY_DESCRIPTIONS, type BehaviorDoc, BehaviorTrait, type BehaviorsDocs, type CategoryDoc, type CategoryInfo, type DocsStats, MODULE_DESCRIPTIONS, type ModuleDoc, type ModuleInfo, type OperatorDoc, type StdLibDocs, StdModule, StdOperatorMeta, formatArity, generateBehaviorDoc, generateBehaviorsDocs, generateModuleDoc, generateModulesDocs, generateOperatorDoc, generateStdLibDocs, humanizeOperatorName, humanizeReturnType };
|