@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/data-management.ts"],"names":[],"mappings":"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","file":"data-management.js","sourcesContent":["/**\n * Data Management Behaviors\n *\n * Standard behaviors for data operations like pagination, selection,\n * sorting, filtering, and search.\n *\n * @packageDocumentation\n */\n\nimport type { StandardBehavior } from './types.js';\n\n// ============================================================================\n// std/Pagination - Page Navigation\n// ============================================================================\n\n/**\n * std/Pagination - Page navigation behavior for large data sets.\n */\nexport const PAGINATION_BEHAVIOR: StandardBehavior = {\n name: 'std/Pagination',\n category: 'data-management',\n description: 'Page-based navigation for large data sets',\n suggestedFor: [\n 'Large lists',\n 'Table pagination',\n 'Infinite scroll alternative',\n 'Data-heavy views',\n ],\n\n dataEntities: [\n {\n name: 'PaginationState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'page', type: 'number', default: 1 },\n { name: 'pageSize', type: 'number', default: 20 },\n { name: 'totalItems', type: 'number', default: 0 },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'NEXT_PAGE' },\n { key: 'PREV_PAGE' },\n { key: 'GO_TO_PAGE' },\n { key: 'SET_PAGE_SIZE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.page', 1],\n ['set', '@entity.pageSize', '@config.defaultPageSize'],\n ],\n },\n {\n event: 'NEXT_PAGE',\n guard: ['<', '@entity.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]],\n effects: [\n ['set', '@entity.page', ['+', '@entity.page', 1]],\n ],\n },\n {\n event: 'PREV_PAGE',\n guard: ['>', '@entity.page', 1],\n effects: [\n ['set', '@entity.page', ['-', '@entity.page', 1]],\n ],\n },\n {\n event: 'GO_TO_PAGE',\n guard: ['and',\n ['>=', '@payload.page', 1],\n ['<=', '@payload.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]]],\n effects: [\n ['set', '@entity.page', '@payload.page'],\n ],\n },\n {\n event: 'SET_PAGE_SIZE',\n effects: [\n ['set', '@entity.pageSize', '@payload.size'],\n ['set', '@entity.page', 1],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'defaultPageSize', type: 'number', description: 'Default items per page', default: 20 },\n { name: 'pageSizeOptions', type: 'array', description: 'Available page sizes', default: [10, 20, 50, 100] },\n ],\n },\n};\n\n// ============================================================================\n// std/Selection - Single/Multi Selection\n// ============================================================================\n\nexport const SELECTION_BEHAVIOR: StandardBehavior = {\n name: 'std/Selection',\n category: 'data-management',\n description: 'Single or multi-selection management',\n suggestedFor: [\n 'Multi-select lists',\n 'Bulk operations',\n 'Item picking',\n 'Checkboxes in tables',\n ],\n\n dataEntities: [\n {\n name: 'SelectionState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'selected', type: 'array', default: [] },\n { name: 'lastSelected', 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' },\n { key: 'DESELECT' },\n { key: 'TOGGLE' },\n { key: 'SELECT_ALL' },\n { key: 'CLEAR' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n {\n event: 'SELECT',\n effects: [\n ['if', ['=', '@config.mode', 'single'],\n ['do',\n ['set', '@entity.selected', ['@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['if', ['or',\n ['not', '@config.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@config.maxSelection']],\n ['do',\n ['set', '@entity.selected', ['array/append', '@entity.selected', '@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['notify', { type: 'warning', message: 'Maximum selection reached' }]]],\n ],\n },\n {\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ],\n },\n {\n event: 'TOGGLE',\n effects: [\n ['if', ['array/includes', '@entity.selected', '@payload.id'],\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ['if', ['or', ['=', '@config.mode', 'single'], ['or',\n ['not', '@config.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@config.maxSelection']]],\n ['set', '@entity.selected',\n ['if', ['=', '@config.mode', 'single'],\n ['@payload.id'],\n ['array/append', '@entity.selected', '@payload.id']]],\n ['notify', { type: 'warning', message: 'Maximum selection reached' }]]],\n ],\n },\n {\n event: 'SELECT_ALL',\n guard: ['=', '@config.mode', 'multi'],\n effects: [\n ['set', '@entity.selected', '@payload.ids'],\n ],\n },\n {\n event: 'CLEAR',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'mode', type: 'string', description: 'Selection mode', default: 'single', enum: ['single', 'multi'] },\n { name: 'maxSelection', type: 'number', description: 'Maximum selections (multi mode)', default: null },\n ],\n },\n};\n\n// ============================================================================\n// std/Sort - Sorting\n// ============================================================================\n\nexport const SORT_BEHAVIOR: StandardBehavior = {\n name: 'std/Sort',\n category: 'data-management',\n description: 'Sorting by field with direction toggle',\n suggestedFor: [\n 'Sortable tables',\n 'List ordering',\n 'Column headers',\n ],\n\n dataEntities: [\n {\n name: 'SortState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'sortField', type: 'string', default: null },\n { name: 'sortDirection', type: 'string', default: 'asc' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SORT' },\n { key: 'TOGGLE_DIRECTION' },\n { key: 'CLEAR_SORT' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.sortField', '@config.defaultField'],\n ['set', '@entity.sortDirection', '@config.defaultDirection'],\n ],\n },\n {\n event: 'SORT',\n effects: [\n ['if', ['=', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ['do',\n ['set', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', 'asc']]],\n ],\n },\n {\n event: 'TOGGLE_DIRECTION',\n guard: ['!=', '@entity.sortField', null],\n effects: [\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ],\n },\n {\n event: 'CLEAR_SORT',\n effects: [\n ['set', '@entity.sortField', null],\n ['set', '@entity.sortDirection', 'asc'],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'defaultField', type: 'string', description: 'Default sort field' },\n { name: 'defaultDirection', type: 'string', description: 'Default direction', default: 'asc', enum: ['asc', 'desc'] },\n ],\n },\n};\n\n// ============================================================================\n// std/Filter - Query Singleton Pattern for Filtering\n// ============================================================================\n\n/**\n * std/Filter - Query Singleton pattern for explicit filtering.\n *\n * This behavior uses a singleton entity to hold filter state, making filtering\n * explicit in the schema rather than implicit in component behavior.\n *\n * The query singleton is referenced by patterns via the `query` prop:\n * ```json\n * { \"type\": \"entity-table\", \"entity\": \"Task\", \"query\": \"@TaskQuery\" }\n * ```\n */\nexport const FILTER_BEHAVIOR: StandardBehavior = {\n name: 'std/Filter',\n category: 'data-management',\n description: 'Query Singleton pattern for explicit filtering - use with entity-table query prop',\n suggestedFor: [\n 'Filterable lists',\n 'Advanced search',\n 'Filter panels',\n 'Faceted search',\n 'Entity tables with filters',\n ],\n\n dataEntities: [\n {\n name: 'QueryState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'status', type: 'string', default: null, description: 'Filter by status field' },\n { name: 'priority', type: 'string', default: null, description: 'Filter by priority field' },\n { name: 'search', type: 'string', default: '', description: 'Search term' },\n { name: 'sortBy', type: 'string', default: 'createdAt', description: 'Sort field' },\n { name: 'sortOrder', type: 'string', default: 'desc', description: 'Sort direction: asc or desc' },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Active',\n states: [\n { name: 'Active', isInitial: true },\n ],\n events: [\n { key: 'INIT' },\n { key: 'FILTER' },\n { key: 'SEARCH' },\n { key: 'SORT' },\n { key: 'CLEAR_FILTERS' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n // Render filter UI with query reference\n ['render-ui', 'sidebar', {\n type: 'filter-group',\n query: '@QueryState',\n filters: '@config.filters',\n }],\n // Render entity table with query reference\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@config.entity',\n query: '@QueryState',\n columns: '@config.columns',\n }],\n ],\n },\n {\n event: 'FILTER',\n effects: [\n ['set', '@QueryState.status', '@payload.status'],\n ['set', '@QueryState.priority', '@payload.priority'],\n ],\n },\n {\n event: 'SEARCH',\n effects: [\n ['set', '@QueryState.search', '@payload.searchTerm'],\n ],\n },\n {\n event: 'SORT',\n effects: [\n ['set', '@QueryState.sortBy', '@payload.field'],\n ['set', '@QueryState.sortOrder', '@payload.order'],\n ],\n },\n {\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@QueryState.status', null],\n ['set', '@QueryState.priority', null],\n ['set', '@QueryState.search', ''],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [\n { name: 'entity', type: 'string', description: 'Entity to filter' },\n ],\n optional: [\n { name: 'filters', type: 'array', description: 'Filter field definitions', default: [] },\n { name: 'columns', type: 'array', description: 'Table columns to display', default: [] },\n ],\n },\n};\n\n// ============================================================================\n// std/Search - Search with Debounce\n// ============================================================================\n\n/**\n * std/Search - Search with debounce.\n *\n * Uses a singleton to hold search state. Can be combined with std/Filter\n * for full query singleton functionality, or used standalone.\n */\nexport const SEARCH_BEHAVIOR: StandardBehavior = {\n name: 'std/Search',\n category: 'data-management',\n description: 'Search with debounce - updates QueryState.search field',\n suggestedFor: [\n 'Search inputs',\n 'Quick filters',\n 'Global search',\n 'Type-ahead',\n ],\n\n dataEntities: [\n {\n name: 'SearchState',\n runtime: true,\n singleton: true,\n fields: [\n { name: 'search', type: 'string', default: '' },\n { name: 'isSearching', type: 'boolean', default: false },\n ],\n },\n ],\n\n stateMachine: {\n initial: 'Idle',\n states: [\n { name: 'Idle', isInitial: true },\n { name: 'Searching' },\n ],\n events: [\n { key: 'INIT' },\n { key: 'SEARCH' },\n { key: 'CLEAR_SEARCH' },\n { key: 'SEARCH_COMPLETE' },\n ],\n transitions: [\n {\n from: '*',\n event: 'INIT',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ['render-ui', 'main', {\n type: 'search-bar',\n query: '@SearchState',\n placeholder: '@config.placeholder',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Searching',\n event: 'SEARCH',\n guard: ['>=', ['str/len', '@payload.term'], '@config.minLength'],\n effects: [\n ['set', '@entity.search', '@payload.term'],\n ['set', '@entity.isSearching', true],\n ['async/debounce', '@config.debounceMs', ['emit', 'SEARCH_COMPLETE']],\n ],\n },\n {\n from: 'Idle',\n event: 'SEARCH',\n guard: ['<', ['str/len', '@payload.term'], '@config.minLength'],\n effects: [\n ['set', '@entity.search', '@payload.term'],\n ],\n },\n {\n from: 'Searching',\n to: 'Idle',\n event: 'SEARCH_COMPLETE',\n effects: [\n ['set', '@entity.isSearching', false],\n ],\n },\n {\n event: 'CLEAR_SEARCH',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ],\n },\n ],\n },\n\n configSchema: {\n required: [],\n optional: [\n { name: 'debounceMs', type: 'number', description: 'Debounce delay in ms', default: 300 },\n { name: 'minLength', type: 'number', description: 'Minimum search length', default: 1 },\n { name: 'placeholder', type: 'string', description: 'Input placeholder', default: 'Search...' },\n ],\n },\n};\n\n// ============================================================================\n// Export All Data Management Behaviors\n// ============================================================================\n\nexport const DATA_MANAGEMENT_BEHAVIORS: StandardBehavior[] = [\n PAGINATION_BEHAVIOR,\n SELECTION_BEHAVIOR,\n SORT_BEHAVIOR,\n FILTER_BEHAVIOR,\n SEARCH_BEHAVIOR,\n];\n"]}
|
|
1
|
+
{"version":3,"sources":["../../behaviors/data-management.ts"],"names":[],"mappings":"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","file":"data-management.js","sourcesContent":["/**\n * Data Management Behaviors\n *\n * Standard behaviors for data operations like pagination, selection,\n * sorting, filtering, and search.\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-pagination - Page Navigation\n// ============================================================================\n\n/**\n * std-pagination - Page navigation behavior for large data sets.\n */\nexport const PAGINATION_BEHAVIOR: OrbitalSchema = {\n name: 'std-pagination',\n version: '1.0.0',\n description: 'Page-based navigation for large data sets',\n orbitals: [\n {\n name: 'PaginationOrbital',\n entity: {\n name: 'PaginationState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'page', type: 'number', default: 1 },\n { name: 'pageSize', type: 'number', default: 20 },\n { name: 'totalItems', type: 'number', default: 0 },\n { name: 'defaultPageSize', type: 'number', default: 20 },\n ],\n },\n traits: [\n {\n name: 'Pagination',\n linkedEntity: 'PaginationState',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Active', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'NEXT_PAGE', name: 'Next Page' },\n { key: 'PREV_PAGE', name: 'Previous Page' },\n { key: 'GO_TO_PAGE', name: 'Go to Page' },\n { key: 'SET_PAGE_SIZE', name: 'Set Page Size' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.page', 1],\n ['set', '@entity.pageSize', '@entity.defaultPageSize'],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'NEXT_PAGE',\n guard: ['<', '@entity.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]],\n effects: [['set', '@entity.page', ['+', '@entity.page', 1]]],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'PREV_PAGE',\n guard: ['>', '@entity.page', 1],\n effects: [['set', '@entity.page', ['-', '@entity.page', 1]]],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'GO_TO_PAGE',\n guard: ['and',\n ['>=', '@payload.page', 1],\n ['<=', '@payload.page', ['math/ceil', ['/', '@entity.totalItems', '@entity.pageSize']]]],\n effects: [['set', '@entity.page', '@payload.page']],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SET_PAGE_SIZE',\n effects: [\n ['set', '@entity.pageSize', '@payload.size'],\n ['set', '@entity.page', 1],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-selection - Single/Multi Selection\n// ============================================================================\n\nexport const SELECTION_BEHAVIOR: OrbitalSchema = {\n name: 'std-selection',\n version: '1.0.0',\n description: 'Single or multi-selection management',\n orbitals: [\n {\n name: 'SelectionOrbital',\n entity: {\n name: 'SelectionState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'selected', type: 'array', default: [] },\n { name: 'lastSelected', type: 'string', default: null },\n { name: 'mode', type: 'string', default: 'multi' },\n { name: 'maxSelection', type: 'number', default: null },\n ],\n },\n traits: [\n {\n name: 'Selection',\n linkedEntity: 'SelectionState',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Active', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SELECT', name: 'Select' },\n { key: 'DESELECT', name: 'Deselect' },\n { key: 'TOGGLE', name: 'Toggle' },\n { key: 'SELECT_ALL', name: 'Select All' },\n { key: 'CLEAR', name: 'Clear' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SELECT',\n effects: [\n ['if', ['=', '@entity.mode', 'single'],\n ['do',\n ['set', '@entity.selected', ['@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['if', ['or',\n ['not', '@entity.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@entity.maxSelection']],\n ['do',\n ['set', '@entity.selected', ['array/append', '@entity.selected', '@payload.id']],\n ['set', '@entity.lastSelected', '@payload.id']],\n ['notify', 'in_app', 'Maximum selection reached']]],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'DESELECT',\n effects: [\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'TOGGLE',\n effects: [\n ['if', ['array/includes', '@entity.selected', '@payload.id'],\n ['set', '@entity.selected', ['array/filter', '@entity.selected', ['fn', 'id', ['!=', '@id', '@payload.id']]]],\n ['if', ['or', ['=', '@entity.mode', 'single'], ['or',\n ['not', '@entity.maxSelection'],\n ['<', ['array/len', '@entity.selected'], '@entity.maxSelection']]],\n ['set', '@entity.selected',\n ['if', ['=', '@entity.mode', 'single'],\n ['@payload.id'],\n ['array/append', '@entity.selected', '@payload.id']]],\n ['notify', 'in_app', 'Maximum selection reached']]],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SELECT_ALL',\n guard: ['=', '@entity.mode', 'multi'],\n effects: [['set', '@entity.selected', '@payload.ids']],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'CLEAR',\n effects: [\n ['set', '@entity.selected', []],\n ['set', '@entity.lastSelected', null],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-sort - Sorting\n// ============================================================================\n\nexport const SORT_BEHAVIOR: OrbitalSchema = {\n name: 'std-sort',\n version: '1.0.0',\n description: 'Sorting by field with direction toggle',\n orbitals: [\n {\n name: 'SortOrbital',\n entity: {\n name: 'SortState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'sortField', type: 'string', default: null },\n { name: 'sortDirection', type: 'string', default: 'asc' },\n { name: 'defaultField', type: 'string', default: null },\n { name: 'defaultDirection', type: 'string', default: 'asc' },\n ],\n },\n traits: [\n {\n name: 'Sort',\n linkedEntity: 'SortState',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Active', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'SORT', name: 'Sort' },\n { key: 'TOGGLE_DIRECTION', name: 'Toggle Direction' },\n { key: 'CLEAR_SORT', name: 'Clear Sort' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['set', '@entity.sortField', '@entity.defaultField'],\n ['set', '@entity.sortDirection', '@entity.defaultDirection'],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SORT',\n effects: [\n ['if', ['=', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ['do',\n ['set', '@entity.sortField', '@payload.field'],\n ['set', '@entity.sortDirection', 'asc']]],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'TOGGLE_DIRECTION',\n guard: ['!=', '@entity.sortField', null],\n effects: [\n ['set', '@entity.sortDirection', ['if', ['=', '@entity.sortDirection', 'asc'], 'desc', 'asc']],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'CLEAR_SORT',\n effects: [\n ['set', '@entity.sortField', null],\n ['set', '@entity.sortDirection', 'asc'],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-filter - Query Singleton Pattern for Filtering\n// ============================================================================\n\n/**\n * std-filter - Query Singleton pattern for explicit filtering.\n *\n * This behavior uses a singleton entity to hold filter state, making filtering\n * explicit in the schema rather than implicit in component behavior.\n */\nexport const FILTER_BEHAVIOR: OrbitalSchema = {\n name: 'std-filter',\n version: '1.0.0',\n description: 'Query Singleton pattern for explicit filtering - use with entity-table query prop',\n orbitals: [\n {\n name: 'FilterOrbital',\n entity: {\n name: 'QueryState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'status', type: 'string', default: null },\n { name: 'priority', type: 'string', default: null },\n { name: 'search', type: 'string', default: '' },\n { name: 'sortBy', type: 'string', default: 'createdAt' },\n { name: 'sortOrder', type: 'string', default: 'desc' },\n { name: 'entityType', type: 'string', default: '' },\n { name: 'filters', type: 'array', default: [] },\n { name: 'columns', type: 'array', default: [] },\n ],\n },\n traits: [\n {\n name: 'Filter',\n linkedEntity: 'QueryState',\n category: 'interaction',\n stateMachine: {\n states: [{ name: 'Active', isInitial: true }],\n events: [\n { key: 'INIT', name: 'Initialize' },\n { key: 'FILTER', name: 'Filter' },\n { key: 'SEARCH', name: 'Search' },\n { key: 'SORT', name: 'Sort' },\n { key: 'CLEAR_FILTERS', name: 'Clear Filters' },\n ],\n transitions: [\n {\n from: 'Active',\n to: 'Active',\n event: 'INIT',\n effects: [\n ['render-ui', 'sidebar', {\n type: 'filter-group',\n entity: '@entity.entityType',\n query: '@QueryState',\n filters: '@entity.filters',\n }],\n ['render-ui', 'main', {\n type: 'entity-table',\n entity: '@entity.entityType',\n query: '@QueryState',\n columns: '@entity.columns',\n }],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'FILTER',\n effects: [\n ['set', '@QueryState.status', '@payload.status'],\n ['set', '@QueryState.priority', '@payload.priority'],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SEARCH',\n effects: [['set', '@QueryState.search', '@payload.searchTerm']],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'SORT',\n effects: [\n ['set', '@QueryState.sortBy', '@payload.field'],\n ['set', '@QueryState.sortOrder', '@payload.order'],\n ],\n },\n {\n from: 'Active',\n to: 'Active',\n event: 'CLEAR_FILTERS',\n effects: [\n ['set', '@QueryState.status', null],\n ['set', '@QueryState.priority', null],\n ['set', '@QueryState.search', ''],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// std-search - Search with Debounce\n// ============================================================================\n\n/**\n * std-search - Search with debounce.\n */\nexport const SEARCH_BEHAVIOR: OrbitalSchema = {\n name: 'std-search',\n version: '1.0.0',\n description: 'Search with debounce - updates QueryState.search field',\n orbitals: [\n {\n name: 'SearchOrbital',\n entity: {\n name: 'SearchState',\n persistence: 'runtime',\n fields: [\n { name: 'id', type: 'string', required: true },\n { name: 'search', type: 'string', default: '' },\n { name: 'isSearching', type: 'boolean', default: false },\n { name: 'minLength', type: 'number', default: 2 },\n { name: 'debounceMs', type: 'number', default: 300 },\n { name: 'placeholder', type: 'string', default: 'Search...' },\n ],\n },\n traits: [\n {\n name: 'Search',\n linkedEntity: 'SearchState',\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' },\n { key: 'CLEAR_SEARCH', name: 'Clear Search' },\n { key: 'SEARCH_COMPLETE', name: 'Search Complete' },\n ],\n transitions: [\n {\n from: 'Idle',\n to: 'Idle',\n event: 'INIT',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ['render-ui', 'main', {\n type: 'search-input',\n query: '@SearchState',\n placeholder: '@entity.placeholder',\n }],\n ],\n },\n {\n from: 'Idle',\n to: 'Searching',\n event: 'SEARCH',\n guard: ['>=', ['str/len', '@payload.term'], '@entity.minLength'],\n effects: [\n ['set', '@entity.search', '@payload.term'],\n ['set', '@entity.isSearching', true],\n ['async/debounce', '@entity.debounceMs', ['emit', 'SEARCH_COMPLETE']],\n ],\n },\n {\n from: 'Idle',\n to: 'Idle',\n event: 'SEARCH',\n guard: ['<', ['str/len', '@payload.term'], '@entity.minLength'],\n effects: [['set', '@entity.search', '@payload.term']],\n },\n {\n from: 'Searching',\n to: 'Idle',\n event: 'SEARCH_COMPLETE',\n effects: [['set', '@entity.isSearching', false]],\n },\n {\n from: 'Idle',\n to: 'Idle',\n event: 'CLEAR_SEARCH',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ],\n },\n {\n from: 'Searching',\n to: 'Idle',\n event: 'CLEAR_SEARCH',\n effects: [\n ['set', '@entity.search', ''],\n ['set', '@entity.isSearching', false],\n ],\n },\n ],\n },\n },\n ],\n pages: [],\n },\n ],\n};\n\n// ============================================================================\n// Export All Data Management Behaviors\n// ============================================================================\n\nexport const DATA_MANAGEMENT_BEHAVIORS: OrbitalSchema[] = [\n PAGINATION_BEHAVIOR,\n SELECTION_BEHAVIOR,\n SORT_BEHAVIOR,\n FILTER_BEHAVIOR,\n SEARCH_BEHAVIOR,\n];\n"]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import '@almadar/core/types';
|
|
1
|
+
import { OrbitalSchema } from '@almadar/core/types';
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Feedback Behaviors
|
|
6
5
|
*
|
|
7
6
|
* Standard behaviors for user feedback including notifications,
|
|
8
7
|
* confirmations, and undo functionality.
|
|
8
|
+
* Each behavior is a self-contained OrbitalSchema that can function as a standalone .orb file.
|
|
9
9
|
*
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
declare const NOTIFICATION_BEHAVIOR:
|
|
14
|
-
declare const CONFIRMATION_BEHAVIOR:
|
|
15
|
-
declare const UNDO_BEHAVIOR:
|
|
16
|
-
declare const FEEDBACK_BEHAVIORS:
|
|
13
|
+
declare const NOTIFICATION_BEHAVIOR: OrbitalSchema;
|
|
14
|
+
declare const CONFIRMATION_BEHAVIOR: OrbitalSchema;
|
|
15
|
+
declare const UNDO_BEHAVIOR: OrbitalSchema;
|
|
16
|
+
declare const FEEDBACK_BEHAVIORS: OrbitalSchema[];
|
|
17
17
|
|
|
18
18
|
export { CONFIRMATION_BEHAVIOR, FEEDBACK_BEHAVIORS, NOTIFICATION_BEHAVIOR, UNDO_BEHAVIOR };
|