@dereekb/dbx-components-mcp 13.10.0

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,751 @@
1
+ {
2
+ "version": 1,
3
+ "source": "@dereekb/dbx-core",
4
+ "module": "@dereekb/dbx-core",
5
+ "generatedAt": "1970-01-01T00:00:00.000Z",
6
+ "generator": "@dereekb/dbx-components-mcp/scripts/generate-manifests.mjs",
7
+ "entries": [
8
+ {
9
+ "role": "store",
10
+ "slug": "action-context-store",
11
+ "className": "ActionContextStore",
12
+ "module": "@dereekb/dbx-core",
13
+ "description": "NgRx ComponentStore that manages the reactive state machine for a single action lifecycle.\n\nThis is the central state container for the action system. It tracks the full lifecycle\nof an action from idle through trigger, value preparation, work execution, and resolution\nor rejection. Multiple selectors expose derived reactive streams for each phase.\n\nThe store uses a {@link LockSet} for cleanup coordination: it delays its own destruction\nuntil all in-flight work completes (e.g., a working action finishes), preventing\npremature teardown of subscriptions.\n\nState transitions follow this flow:\n```\nIDLE/DISABLED -> TRIGGERED -> VALUE_READY -> WORKING -> RESOLVED | REJECTED\n```",
14
+ "skillRefs": [
15
+ "dbx__ref__dbx-component-patterns"
16
+ ],
17
+ "sourcePath": "lib/action/action.store.ts",
18
+ "methods": [
19
+ {
20
+ "name": "afterDistinctBoolean",
21
+ "signature": "afterDistinctBoolean(fromState: (state: ActionContextState<T, O>) => boolean): Observable<boolean>",
22
+ "description": ""
23
+ },
24
+ {
25
+ "name": "afterDistinctActionState",
26
+ "signature": "afterDistinctActionState(actionState: DbxActionState, fromState: (state: ActionContextState<T, O>) => X): Observable<X>",
27
+ "description": ""
28
+ },
29
+ {
30
+ "name": "afterDistinctActionStateChange",
31
+ "signature": "afterDistinctActionStateChange(): Observable<ActionContextState<T, O>>",
32
+ "description": ""
33
+ },
34
+ {
35
+ "name": "afterDistinctLoadingStateTypeChange",
36
+ "signature": "afterDistinctLoadingStateTypeChange(): Observable<ActionContextState<T, O>>",
37
+ "description": ""
38
+ }
39
+ ],
40
+ "observables": [
41
+ {
42
+ "name": "currentValue$",
43
+ "type": "Observable<Maybe<T>>",
44
+ "description": "Current value of the state."
45
+ },
46
+ {
47
+ "name": "valueReady$",
48
+ "type": "Observable<T>",
49
+ "description": "Pipes the readied value on ValueReady."
50
+ }
51
+ ],
52
+ "disabledKeyDefaults": [
53
+ "dbx_action_disabled",
54
+ "dbx_action_enforce_modified"
55
+ ],
56
+ "example": "",
57
+ "sourceLocation": {
58
+ "file": "src/lib/action/action.store.ts",
59
+ "line": 254
60
+ }
61
+ },
62
+ {
63
+ "role": "state",
64
+ "slug": "state-idle",
65
+ "enumName": "DbxActionState",
66
+ "stateValue": "IDLE",
67
+ "literal": "idle",
68
+ "module": "@dereekb/dbx-core",
69
+ "description": "No action in progress. Waiting for the trigger.",
70
+ "skillRefs": [
71
+ "dbx__ref__dbx-component-patterns"
72
+ ],
73
+ "sourcePath": "lib/action/action.ts",
74
+ "transitionsFrom": [
75
+ "RESOLVED",
76
+ "REJECTED",
77
+ "DISABLED"
78
+ ],
79
+ "transitionsTo": [
80
+ "TRIGGERED",
81
+ "DISABLED"
82
+ ],
83
+ "example": "DbxActionState.IDLE",
84
+ "sourceLocation": {
85
+ "file": "src/lib/action/action.ts",
86
+ "line": 62
87
+ }
88
+ },
89
+ {
90
+ "role": "state",
91
+ "slug": "state-disabled",
92
+ "enumName": "DbxActionState",
93
+ "stateValue": "DISABLED",
94
+ "literal": "disabled",
95
+ "module": "@dereekb/dbx-core",
96
+ "description": "Idle state that can be set to show that the source is not yet ready.",
97
+ "skillRefs": [
98
+ "dbx__ref__dbx-component-patterns"
99
+ ],
100
+ "sourcePath": "lib/action/action.ts",
101
+ "transitionsFrom": [
102
+ "IDLE",
103
+ "RESOLVED",
104
+ "REJECTED"
105
+ ],
106
+ "transitionsTo": [
107
+ "IDLE"
108
+ ],
109
+ "example": "DbxActionState.DISABLED",
110
+ "sourceLocation": {
111
+ "file": "src/lib/action/action.ts",
112
+ "line": 69
113
+ }
114
+ },
115
+ {
116
+ "role": "state",
117
+ "slug": "state-triggered",
118
+ "enumName": "DbxActionState",
119
+ "stateValue": "TRIGGERED",
120
+ "literal": "triggered",
121
+ "module": "@dereekb/dbx-core",
122
+ "description": "The action was triggered. We wait (and allow) the value to be updated.",
123
+ "skillRefs": [
124
+ "dbx__ref__dbx-component-patterns"
125
+ ],
126
+ "sourcePath": "lib/action/action.ts",
127
+ "transitionsFrom": [
128
+ "IDLE"
129
+ ],
130
+ "transitionsTo": [
131
+ "VALUE_READY"
132
+ ],
133
+ "example": "DbxActionState.TRIGGERED",
134
+ "sourceLocation": {
135
+ "file": "src/lib/action/action.ts",
136
+ "line": 76
137
+ }
138
+ },
139
+ {
140
+ "role": "state",
141
+ "slug": "state-value-ready",
142
+ "enumName": "DbxActionState",
143
+ "stateValue": "VALUE_READY",
144
+ "literal": "valueReady",
145
+ "module": "@dereekb/dbx-core",
146
+ "description": "The trigger was accepted and the value is updated. It should begin working immediately.\n\nValueReady cannot be set until triggered is set.",
147
+ "skillRefs": [
148
+ "dbx__ref__dbx-component-patterns"
149
+ ],
150
+ "sourcePath": "lib/action/action.ts",
151
+ "transitionsFrom": [
152
+ "TRIGGERED"
153
+ ],
154
+ "transitionsTo": [
155
+ "WORKING"
156
+ ],
157
+ "example": "DbxActionState.VALUE_READY",
158
+ "sourceLocation": {
159
+ "file": "src/lib/action/action.ts",
160
+ "line": 85
161
+ }
162
+ },
163
+ {
164
+ "role": "state",
165
+ "slug": "state-working",
166
+ "enumName": "DbxActionState",
167
+ "stateValue": "WORKING",
168
+ "literal": "working",
169
+ "module": "@dereekb/dbx-core",
170
+ "description": "The action is in progress.",
171
+ "skillRefs": [
172
+ "dbx__ref__dbx-component-patterns"
173
+ ],
174
+ "sourcePath": "lib/action/action.ts",
175
+ "transitionsFrom": [
176
+ "VALUE_READY"
177
+ ],
178
+ "transitionsTo": [
179
+ "RESOLVED",
180
+ "REJECTED"
181
+ ],
182
+ "example": "DbxActionState.WORKING",
183
+ "sourceLocation": {
184
+ "file": "src/lib/action/action.ts",
185
+ "line": 92
186
+ }
187
+ },
188
+ {
189
+ "role": "state",
190
+ "slug": "state-rejected",
191
+ "enumName": "DbxActionState",
192
+ "stateValue": "REJECTED",
193
+ "literal": "rejected",
194
+ "module": "@dereekb/dbx-core",
195
+ "description": "The trigger, action, or value was rejected due to an error or other issue.\n\nAn error may be specified optionally.",
196
+ "skillRefs": [
197
+ "dbx__ref__dbx-component-patterns"
198
+ ],
199
+ "sourcePath": "lib/action/action.ts",
200
+ "transitionsFrom": [
201
+ "WORKING"
202
+ ],
203
+ "transitionsTo": [
204
+ "IDLE",
205
+ "DISABLED"
206
+ ],
207
+ "example": "DbxActionState.REJECTED",
208
+ "sourceLocation": {
209
+ "file": "src/lib/action/action.ts",
210
+ "line": 101
211
+ }
212
+ },
213
+ {
214
+ "role": "state",
215
+ "slug": "state-resolved",
216
+ "enumName": "DbxActionState",
217
+ "stateValue": "RESOLVED",
218
+ "literal": "resolved",
219
+ "module": "@dereekb/dbx-core",
220
+ "description": "The action resolved without issue.",
221
+ "skillRefs": [
222
+ "dbx__ref__dbx-component-patterns"
223
+ ],
224
+ "sourcePath": "lib/action/action.ts",
225
+ "transitionsFrom": [
226
+ "WORKING"
227
+ ],
228
+ "transitionsTo": [
229
+ "IDLE",
230
+ "DISABLED"
231
+ ],
232
+ "example": "DbxActionState.RESOLVED",
233
+ "sourceLocation": {
234
+ "file": "src/lib/action/action.ts",
235
+ "line": 108
236
+ }
237
+ },
238
+ {
239
+ "role": "directive",
240
+ "slug": "auto-modify",
241
+ "selector": "dbxActionAutoModify, [dbxActionAutoModify]",
242
+ "className": "DbxActionAutoModifyDirective",
243
+ "module": "@dereekb/dbx-core",
244
+ "description": "Directive that automatically marks the parent action as modified whenever it becomes unmodified.\n\nThis ensures the action is always considered \"modified\" and therefore always eligible for triggering.\nUseful in combination with {@link DbxActionAutoTriggerDirective} and {@link DbxActionEnforceModifiedDirective}\nwhen the action should be continuously available for submission.\n\nCan be disabled by setting `dbxActionAutoModify` to `false`.",
245
+ "skillRefs": [
246
+ "dbx__ref__dbx-component-patterns"
247
+ ],
248
+ "sourcePath": "lib/action/directive/auto/action.automodify.directive.ts",
249
+ "inputs": [
250
+ {
251
+ "alias": "dbxActionAutoModify",
252
+ "propertyName": "autoModifyEnabled",
253
+ "type": "boolean",
254
+ "required": false,
255
+ "description": "",
256
+ "defaultValue": "true"
257
+ }
258
+ ],
259
+ "outputs": [],
260
+ "producesContext": false,
261
+ "consumesContext": true,
262
+ "stateInteraction": [
263
+ "IDLE"
264
+ ],
265
+ "example": "<div dbxAction>\n <ng-container dbxActionAutoModify></ng-container>\n <ng-container dbxActionAutoTrigger></ng-container>\n</div>",
266
+ "sourceLocation": {
267
+ "file": "src/lib/action/directive/auto/action.automodify.directive.ts",
268
+ "line": 35
269
+ }
270
+ },
271
+ {
272
+ "role": "directive",
273
+ "slug": "auto-trigger",
274
+ "selector": "dbxActionAutoTrigger,[dbxActionAutoTrigger]",
275
+ "className": "DbxActionAutoTriggerDirective",
276
+ "module": "@dereekb/dbx-core",
277
+ "description": "Directive that automatically triggers the parent action when the action becomes modified and can be triggered.\n\nUses configurable debounce and throttle timers to prevent excessive triggering. Also\nsupports error-aware throttling: as consecutive errors accumulate, the throttle interval\nincreases to give transient issues time to resolve.\n\nUseful for auto-save scenarios where data changes should automatically submit without\nrequiring an explicit user action. Use with care to avoid triggering loops.",
278
+ "skillRefs": [
279
+ "dbx__ref__dbx-component-patterns"
280
+ ],
281
+ "sourcePath": "lib/action/directive/auto/action.autotrigger.directive.ts",
282
+ "inputs": [
283
+ {
284
+ "alias": "triggerDebounce",
285
+ "propertyName": "triggerDebounce",
286
+ "type": "Maybe<number>",
287
+ "required": false,
288
+ "description": "",
289
+ "defaultValue": "undefined"
290
+ },
291
+ {
292
+ "alias": "triggerThrottle",
293
+ "propertyName": "triggerThrottle",
294
+ "type": "Maybe<number>",
295
+ "required": false,
296
+ "description": "",
297
+ "defaultValue": "undefined"
298
+ },
299
+ {
300
+ "alias": "triggerErrorThrottle",
301
+ "propertyName": "triggerErrorThrottle",
302
+ "type": "number",
303
+ "required": false,
304
+ "description": "",
305
+ "defaultValue": "DEFAULT_ERROR_THROTTLE_MS"
306
+ },
307
+ {
308
+ "alias": "maxErrorsForThrottle",
309
+ "propertyName": "maxErrorsForThrottle",
310
+ "type": "number",
311
+ "required": false,
312
+ "description": "",
313
+ "defaultValue": "MAX_ERRORS_TO_THROTTLE_ON"
314
+ },
315
+ {
316
+ "alias": "triggerLimit",
317
+ "propertyName": "triggerLimit",
318
+ "type": "Maybe<number>",
319
+ "required": false,
320
+ "description": ""
321
+ },
322
+ {
323
+ "alias": "dbxActionAutoTrigger",
324
+ "propertyName": "triggerEnabled",
325
+ "type": "boolean",
326
+ "required": false,
327
+ "description": "",
328
+ "defaultValue": "true"
329
+ },
330
+ {
331
+ "alias": "useFastTriggerPreset",
332
+ "propertyName": "useFastTriggerPreset",
333
+ "type": "boolean",
334
+ "required": false,
335
+ "description": "",
336
+ "defaultValue": "false"
337
+ },
338
+ {
339
+ "alias": "useInstantTriggerPreset",
340
+ "propertyName": "useInstantTriggerPreset",
341
+ "type": "boolean",
342
+ "required": false,
343
+ "description": "",
344
+ "defaultValue": "false"
345
+ }
346
+ ],
347
+ "outputs": [],
348
+ "producesContext": false,
349
+ "consumesContext": true,
350
+ "stateInteraction": [
351
+ "IDLE",
352
+ "TRIGGERED"
353
+ ],
354
+ "example": "<div dbxAction>\n <ng-container dbxActionAutoTrigger></ng-container>\n <!-- form or value source here -->\n</div>",
355
+ "sourceLocation": {
356
+ "file": "src/lib/action/directive/auto/action.autotrigger.directive.ts",
357
+ "line": 55
358
+ }
359
+ },
360
+ {
361
+ "role": "directive",
362
+ "slug": "action",
363
+ "selector": "dbx-action,[dbxAction]",
364
+ "className": "DbxActionDirective",
365
+ "module": "@dereekb/dbx-core",
366
+ "description": "Core directive that creates and provides an action context for its host element and descendants.\n\nThis is the root of the action system in templates. It creates an {@link ActionContextStore}\nand provides it (along with the related source tokens) via Angular's dependency injection,\nmaking the action lifecycle available to all child action directives.\n\nIf a {@link SecondaryActionContextStoreSource} is available on the host, the directive will\nreuse that store instead of creating its own, enabling action context forwarding.\n\nOn destruction, the directive coordinates cleanup through a {@link LockSet} to ensure\nin-flight operations complete before the store is torn down.",
367
+ "skillRefs": [
368
+ "dbx__ref__dbx-component-patterns"
369
+ ],
370
+ "sourcePath": "lib/action/directive/context/action.directive.ts",
371
+ "inputs": [],
372
+ "outputs": [],
373
+ "producesContext": true,
374
+ "consumesContext": false,
375
+ "stateInteraction": [
376
+ "IDLE"
377
+ ],
378
+ "example": "<div dbxAction>\n <button (click)=\"action.trigger()\">Submit</button>\n <div *dbxActionHasSuccess>Success!</div>\n <div *dbxActionWorking>Loading...</div>\n</div>",
379
+ "sourceLocation": {
380
+ "file": "src/lib/action/directive/context/action.directive.ts",
381
+ "line": 48
382
+ }
383
+ },
384
+ {
385
+ "role": "directive",
386
+ "slug": "source",
387
+ "selector": "[dbxActionSource]",
388
+ "className": "DbxActionSourceDirective",
389
+ "module": "@dereekb/dbx-core",
390
+ "description": "Directive that forwards an externally-provided {@link ActionContextStoreSource} as a\n{@link SecondaryActionContextStoreSource}, enabling child `dbxAction` directives to\nreuse an existing action context rather than creating their own.\n\nThis is useful when an action context is created programmatically (e.g., via\n{@link DbxActionContextMachine}) and needs to be shared with template-based directives.",
391
+ "skillRefs": [
392
+ "dbx__ref__dbx-component-patterns"
393
+ ],
394
+ "sourcePath": "lib/action/directive/context/action.source.directive.ts",
395
+ "inputs": [
396
+ {
397
+ "alias": "dbxActionSource",
398
+ "propertyName": "dbxActionSource",
399
+ "type": "Maybe<ActionContextStoreSource>",
400
+ "required": false,
401
+ "description": ""
402
+ }
403
+ ],
404
+ "outputs": [],
405
+ "producesContext": false,
406
+ "consumesContext": false,
407
+ "stateInteraction": [],
408
+ "example": "<!-- Forward a programmatic action source to template directives -->\n<div [dbxActionSource]=\"myActionSource\">\n <div dbxAction>\n <button (click)=\"action.trigger()\">Submit</button>\n </div>\n</div>",
409
+ "sourceLocation": {
410
+ "file": "src/lib/action/directive/context/action.source.directive.ts",
411
+ "line": 33
412
+ }
413
+ },
414
+ {
415
+ "role": "directive",
416
+ "slug": "logger",
417
+ "selector": "[dbxActionLogger],[dbxActionContextLogger]",
418
+ "className": "DbxActionContextLoggerDirective",
419
+ "module": "@dereekb/dbx-core",
420
+ "description": "Debug directive that logs every action context state change to the console.\n\nSubscribes to the parent action's full state stream and prints each state snapshot\nvia `console.log`. Useful during development to inspect the action lifecycle transitions.",
421
+ "skillRefs": [
422
+ "dbx__ref__dbx-component-patterns"
423
+ ],
424
+ "sourcePath": "lib/action/directive/debug/action.logger.directive.ts",
425
+ "inputs": [],
426
+ "outputs": [],
427
+ "producesContext": false,
428
+ "consumesContext": true,
429
+ "stateInteraction": [
430
+ "IDLE",
431
+ "TRIGGERED",
432
+ "VALUE_READY",
433
+ "WORKING",
434
+ "RESOLVED",
435
+ "REJECTED",
436
+ "DISABLED"
437
+ ],
438
+ "example": "<div dbxAction>\n <ng-container dbxActionLogger></ng-container>\n <!-- other action directives -->\n</div>",
439
+ "sourceLocation": {
440
+ "file": "src/lib/action/directive/debug/action.logger.directive.ts",
441
+ "line": 24
442
+ }
443
+ },
444
+ {
445
+ "role": "directive",
446
+ "slug": "context-map",
447
+ "selector": "[dbxActionContextMap]",
448
+ "className": "DbxActionContextMapDirective",
449
+ "module": "@dereekb/dbx-core",
450
+ "description": "Directive that creates and provides an {@link ActionContextStoreSourceMap} for its descendants.\n\nThis enables a group of related action contexts to be registered by key and looked up\nby child directives. Useful when multiple actions need to coordinate (e.g., disable\nall other actions while one is working).\n\nThe map is exported as `actionMap` for template reference access.",
451
+ "skillRefs": [
452
+ "dbx__ref__dbx-component-patterns"
453
+ ],
454
+ "sourcePath": "lib/action/directive/map/action.map.directive.ts",
455
+ "inputs": [],
456
+ "outputs": [],
457
+ "producesContext": false,
458
+ "consumesContext": false,
459
+ "stateInteraction": [],
460
+ "example": "<div dbxActionContextMap>\n <div dbxAction [dbxActionMapSource]=\"'save'\">...</div>\n <div dbxAction [dbxActionMapSource]=\"'delete'\">...</div>\n <div [dbxActionFromMap]=\"'save'\">\n <!-- consumes the 'save' action context -->\n </div>\n</div>",
461
+ "sourceLocation": {
462
+ "file": "src/lib/action/directive/map/action.map.directive.ts",
463
+ "line": 32
464
+ }
465
+ },
466
+ {
467
+ "role": "directive",
468
+ "slug": "disabled",
469
+ "selector": "[dbxActionDisabled]",
470
+ "className": "DbxActionDisabledDirective",
471
+ "module": "@dereekb/dbx-core",
472
+ "description": "Directive that disables or enables the parent action based on a boolean input.\n\nWhen `dbxActionDisabled` is `true` (or an empty string, which coerces to `true`),\nthe action is disabled with the {@link APP_ACTION_DISABLED_DIRECTIVE_KEY}. When `false`,\nthe disable key is removed, re-enabling the action (assuming no other sources have disabled it).\n\nThe disable key is automatically cleaned up on directive destruction.",
473
+ "skillRefs": [
474
+ "dbx__ref__dbx-component-patterns"
475
+ ],
476
+ "sourcePath": "lib/action/directive/state/action.disabled.directive.ts",
477
+ "inputs": [
478
+ {
479
+ "alias": "dbxActionDisabled",
480
+ "propertyName": "disabled",
481
+ "type": "boolean",
482
+ "required": false,
483
+ "description": "",
484
+ "defaultValue": "false"
485
+ }
486
+ ],
487
+ "outputs": [],
488
+ "producesContext": false,
489
+ "consumesContext": true,
490
+ "stateInteraction": [
491
+ "DISABLED"
492
+ ],
493
+ "example": "<div dbxAction>\n <ng-container [dbxActionDisabled]=\"isFormInvalid\"></ng-container>\n <button (click)=\"action.trigger()\">Submit</button>\n</div>",
494
+ "sourceLocation": {
495
+ "file": "src/lib/action/directive/state/action.disabled.directive.ts",
496
+ "line": 40
497
+ }
498
+ },
499
+ {
500
+ "role": "directive",
501
+ "slug": "disabled-on-success",
502
+ "selector": "[dbxActionDisabledOnSuccess]",
503
+ "className": "DbxActionDisabledOnSuccessDirective",
504
+ "module": "@dereekb/dbx-core",
505
+ "description": "Directive that disables the parent action after it resolves successfully.\n\nThis is useful for one-shot actions where the user should not be able to re-trigger\nthe action after it succeeds (e.g., a confirmation dialog or a single-use form submission).\n\nCan be disabled by setting `dbxActionDisabledOnSuccess` to `false`.\n\nThe disable key is automatically cleaned up on directive destruction.",
506
+ "skillRefs": [
507
+ "dbx__ref__dbx-component-patterns"
508
+ ],
509
+ "sourcePath": "lib/action/directive/state/action.disableonsuccess.directive.ts",
510
+ "inputs": [
511
+ {
512
+ "alias": "dbxActionDisabledOnSuccess",
513
+ "propertyName": "disabledOnSuccess",
514
+ "type": "boolean",
515
+ "required": false,
516
+ "description": "",
517
+ "defaultValue": "true"
518
+ }
519
+ ],
520
+ "outputs": [],
521
+ "producesContext": false,
522
+ "consumesContext": true,
523
+ "stateInteraction": [
524
+ "RESOLVED",
525
+ "DISABLED"
526
+ ],
527
+ "example": "<div dbxAction>\n <ng-container dbxActionDisabledOnSuccess></ng-container>\n <button (click)=\"action.trigger()\">Confirm</button>\n</div>",
528
+ "sourceLocation": {
529
+ "file": "src/lib/action/directive/state/action.disableonsuccess.directive.ts",
530
+ "line": 43
531
+ }
532
+ },
533
+ {
534
+ "role": "directive",
535
+ "slug": "enforce-modified",
536
+ "selector": "[dbxActionEnforceModified]",
537
+ "className": "DbxActionEnforceModifiedDirective",
538
+ "module": "@dereekb/dbx-core",
539
+ "description": "Directive that disables the parent action when the action is not marked as modified.\n\nWhen enabled (default), this enforces that the user must make changes before the action\ncan be triggered. Once the action is marked as modified, the disabled key is removed.\nThis prevents no-op submissions where nothing has actually changed.\n\nCan be disabled by setting `dbxActionEnforceModified` to `false`.\n\nThe disable key is automatically cleaned up on directive destruction.",
540
+ "skillRefs": [
541
+ "dbx__ref__dbx-component-patterns"
542
+ ],
543
+ "sourcePath": "lib/action/directive/state/action.enforce.modified.directive.ts",
544
+ "inputs": [
545
+ {
546
+ "alias": "dbxActionEnforceModified",
547
+ "propertyName": "enabled",
548
+ "type": "boolean",
549
+ "required": false,
550
+ "description": "",
551
+ "defaultValue": "true"
552
+ }
553
+ ],
554
+ "outputs": [],
555
+ "producesContext": false,
556
+ "consumesContext": true,
557
+ "stateInteraction": [
558
+ "IDLE",
559
+ "DISABLED"
560
+ ],
561
+ "example": "<div dbxAction>\n <ng-container dbxActionEnforceModified></ng-container>\n <button (click)=\"action.trigger()\">Save</button>\n</div>",
562
+ "sourceLocation": {
563
+ "file": "src/lib/action/directive/state/action.enforce.modified.directive.ts",
564
+ "line": 41
565
+ }
566
+ },
567
+ {
568
+ "role": "directive",
569
+ "slug": "error-handler",
570
+ "selector": "[dbxActionErrorHandler]",
571
+ "className": "DbxActionErrorHandlerDirective",
572
+ "module": "@dereekb/dbx-core",
573
+ "description": "Directive that executes a callback function each time the action's error state changes.\n\nThe provided function receives the {@link ReadableError} from the action context.\nThis is useful for performing side effects like logging, showing error toasts, or\nhandling specific error conditions programmatically.",
574
+ "skillRefs": [
575
+ "dbx__ref__dbx-component-patterns"
576
+ ],
577
+ "sourcePath": "lib/action/directive/state/action.error.handler.directive.ts",
578
+ "inputs": [
579
+ {
580
+ "alias": "dbxActionErrorHandler",
581
+ "propertyName": "dbxActionErrorHandler",
582
+ "type": "Maybe<DbxActionErrorHandlerFunction>",
583
+ "required": false,
584
+ "description": ""
585
+ }
586
+ ],
587
+ "outputs": [],
588
+ "producesContext": false,
589
+ "consumesContext": true,
590
+ "stateInteraction": [
591
+ "REJECTED"
592
+ ],
593
+ "example": "<div dbxAction>\n <ng-container [dbxActionErrorHandler]=\"onError\"></ng-container>\n <button (click)=\"action.trigger()\">Submit</button>\n</div>",
594
+ "sourceLocation": {
595
+ "file": "src/lib/action/directive/state/action.error.handler.directive.ts",
596
+ "line": 41
597
+ }
598
+ },
599
+ {
600
+ "role": "directive",
601
+ "slug": "handler",
602
+ "selector": "[dbxActionHandler]",
603
+ "className": "DbxActionHandlerDirective",
604
+ "module": "@dereekb/dbx-core",
605
+ "description": "Directive that provides a {@link Work} function to handle the action's `valueReady$` event.\n\nWhen the action is triggered and a value becomes ready, the provided work function is\ncalled with the value and a work context. The work function is responsible for performing\nthe async operation and signaling success or failure through the context.",
606
+ "skillRefs": [
607
+ "dbx__ref__dbx-component-patterns",
608
+ "dbx__guide__action-analytics"
609
+ ],
610
+ "sourcePath": "lib/action/directive/state/action.handler.directive.ts",
611
+ "inputs": [
612
+ {
613
+ "alias": "dbxActionHandler",
614
+ "propertyName": "handlerFunction",
615
+ "type": "Maybe<Work<T, O>>",
616
+ "required": true,
617
+ "description": ""
618
+ }
619
+ ],
620
+ "outputs": [],
621
+ "producesContext": false,
622
+ "consumesContext": true,
623
+ "stateInteraction": [
624
+ "VALUE_READY",
625
+ "WORKING",
626
+ "RESOLVED",
627
+ "REJECTED"
628
+ ],
629
+ "example": "<div dbxAction>\n <ng-container [dbxActionHandler]=\"handleSave\"></ng-container>\n <button (click)=\"action.trigger()\">Save</button>\n</div>",
630
+ "sourceLocation": {
631
+ "file": "src/lib/action/directive/state/action.handler.directive.ts",
632
+ "line": 57
633
+ }
634
+ },
635
+ {
636
+ "role": "directive",
637
+ "slug": "handler-value",
638
+ "selector": "[dbxActionHandlerValue]",
639
+ "className": "DbxActionHandlerValueDirective",
640
+ "module": "@dereekb/dbx-core",
641
+ "description": "Directive that provides a static value, getter, or factory to resolve the action's `valueReady$` event.\n\nUnlike {@link DbxActionHandlerDirective}, this does not require a full {@link Work} function.\nThe provided value (or the result of calling the getter/factory) is used directly as the\naction's result, with the working/success lifecycle handled automatically.",
642
+ "skillRefs": [
643
+ "dbx__ref__dbx-component-patterns"
644
+ ],
645
+ "sourcePath": "lib/action/directive/state/action.handler.directive.ts",
646
+ "inputs": [
647
+ {
648
+ "alias": "dbxActionHandlerValue",
649
+ "propertyName": "handlerValue",
650
+ "type": "Maybe<GetterOrValue<O> | FactoryWithInput<O, T>>",
651
+ "required": true,
652
+ "description": ""
653
+ }
654
+ ],
655
+ "outputs": [],
656
+ "producesContext": false,
657
+ "consumesContext": true,
658
+ "stateInteraction": [
659
+ "VALUE_READY",
660
+ "WORKING",
661
+ "RESOLVED"
662
+ ],
663
+ "example": "<div dbxAction>\n <ng-container [dbxActionHandlerValue]=\"computeResult\"></ng-container>\n <button (click)=\"action.trigger()\">Compute</button>\n</div>",
664
+ "sourceLocation": {
665
+ "file": "src/lib/action/directive/state/action.handler.directive.ts",
666
+ "line": 94
667
+ }
668
+ },
669
+ {
670
+ "role": "directive",
671
+ "slug": "value",
672
+ "selector": "dbxActionValue,[dbxActionValue]",
673
+ "className": "DbxActionValueDirective",
674
+ "module": "@dereekb/dbx-core",
675
+ "description": "Directive that provides a value (or value-producing function) to the action when triggered.\n\nThe value is always available and ready to be used. When the action is triggered,\nthe current value is resolved (via `getValueFromGetter` if a function) and passed\nto `readyValue()` on the action source.\n\nThe input filters out null/undefined values, waiting until a non-null value is provided.\nIf you need to pass null/undefined as valid action values, use {@link DbxActionValueTriggerDirective} instead.",
676
+ "skillRefs": [
677
+ "dbx__ref__dbx-component-patterns"
678
+ ],
679
+ "sourcePath": "lib/action/directive/state/action.value.directive.ts",
680
+ "inputs": [
681
+ {
682
+ "alias": "dbxActionValue",
683
+ "propertyName": "valueOrFunction",
684
+ "type": "Maybe<GetterOrValue<T> | ''>",
685
+ "required": false,
686
+ "description": "",
687
+ "defaultValue": "''"
688
+ }
689
+ ],
690
+ "outputs": [],
691
+ "producesContext": false,
692
+ "consumesContext": true,
693
+ "stateInteraction": [
694
+ "TRIGGERED",
695
+ "VALUE_READY"
696
+ ],
697
+ "example": "<div dbxAction>\n <ng-container [dbxActionValue]=\"myValue\"></ng-container>\n <button (click)=\"action.trigger()\">Submit</button>\n</div>",
698
+ "sourceLocation": {
699
+ "file": "src/lib/action/directive/state/action.value.directive.ts",
700
+ "line": 47
701
+ }
702
+ },
703
+ {
704
+ "role": "directive",
705
+ "slug": "value-getter",
706
+ "selector": "[dbxActionValueGetter]",
707
+ "className": "DbxActionValueTriggerDirective",
708
+ "module": "@dereekb/dbx-core",
709
+ "description": "Directive that uses a getter function to retrieve the action value only when triggered.\n\nUnlike {@link DbxActionValueDirective} which continuously pipes the latest value,\nthis directive calls the getter function lazily -- only when the action is triggered.\nThis is useful when the value computation is expensive or depends on state that should\nonly be captured at trigger time.\n\nSupports optional `isModified` and `isEqual` functions to control whether the retrieved\nvalue should proceed to `readyValue` or be rejected.",
710
+ "skillRefs": [
711
+ "dbx__ref__dbx-component-patterns"
712
+ ],
713
+ "sourcePath": "lib/action/directive/state/action.value.trigger.directive.ts",
714
+ "inputs": [
715
+ {
716
+ "alias": "dbxActionValueGetter",
717
+ "propertyName": "dbxActionValueGetter",
718
+ "type": "Maybe<DbxActionValueGetterValueGetterFunction<T>>",
719
+ "required": false,
720
+ "description": ""
721
+ },
722
+ {
723
+ "alias": "dbxActionValueGetterIsModified",
724
+ "propertyName": "dbxActionValueGetterIsModified",
725
+ "type": "Maybe<IsModifiedFunction>",
726
+ "required": false,
727
+ "description": ""
728
+ },
729
+ {
730
+ "alias": "dbxActionValueGetterIsEqual",
731
+ "propertyName": "dbxActionValueGetterIsEqual",
732
+ "type": "Maybe<IsEqualFunction>",
733
+ "required": false,
734
+ "description": ""
735
+ }
736
+ ],
737
+ "outputs": [],
738
+ "producesContext": false,
739
+ "consumesContext": true,
740
+ "stateInteraction": [
741
+ "TRIGGERED",
742
+ "VALUE_READY"
743
+ ],
744
+ "example": "<div dbxAction>\n <ng-container [dbxActionValueGetter]=\"getFormValue\"></ng-container>\n <button (click)=\"action.trigger()\">Submit</button>\n</div>",
745
+ "sourceLocation": {
746
+ "file": "src/lib/action/directive/state/action.value.trigger.directive.ts",
747
+ "line": 99
748
+ }
749
+ }
750
+ ]
751
+ }