@dereekb/dbx-components-mcp 13.10.7 → 13.10.9

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,222 @@
1
+ {
2
+ "version": 1,
3
+ "source": "@dereekb/demo",
4
+ "module": "apps/demo",
5
+ "generatedAt": "1970-01-01T00:00:00.000Z",
6
+ "generator": "@dereekb/dbx-components-mcp/scripts/generate-manifests.mjs",
7
+ "entries": [
8
+ {
9
+ "slug": "card-hero-onboarding-progress",
10
+ "category": "card",
11
+ "summary": "Top-of-page hero card on an inverse surface — eyebrow, headline, progress bar, secondary CTA, and trailing percent.",
12
+ "header": "Hero Card (Onboarding Progress)",
13
+ "className": "DocHeroCardExampleComponent",
14
+ "selector": "doc-hero-card-example",
15
+ "module": "apps/demo",
16
+ "appRef": "apps/demo",
17
+ "hint": "Top-of-page hero on an inverse surface with eyebrow, headline, progress, action, and trailing percent.",
18
+ "relatedSlugs": [
19
+ "mat-card",
20
+ "dbx-card-box",
21
+ "dbx-content-pit"
22
+ ],
23
+ "info": "<p>\n A \"hero\" card is a high-emphasis module placed at the top of a page that summarises the user's most important task. This example uses Angular Material's\n <code>&lt;mat-card appearance=\"filled\"&gt;</code>\n and only re-points the M3\n <code>--mat-card-filled-container-color</code>\n token to\n <code>--mat-sys-inverse-surface</code>\n (with text painted from\n <code>--mat-sys-inverse-on-surface</code>\n ) so the card flips correctly between light/dark themes without any hard-coded colours.\n</p>\n<p>\n Layout uses standard dbx utility classes —\n <code>.dbx-p4</code>\n for the card body inset,\n <code>.dbx-mb3</code>\n /\n <code>.dbx-pb1</code>\n /\n <code>.dbx-mb1</code>\n for vertical rhythm — instead of bespoke\n <code>margin</code>\n /\n <code>padding</code>\n values. Typography composes the M3 type-role utilities\n <code>.dbx-text-label-medium</code>\n (eyebrow),\n <code>.dbx-text-title-large</code>\n (headline), and\n <code>.dbx-text-headline-large</code>\n (trailing percent) with\n <code>.dbx-uppercase</code>\n /\n <code>.dbx-tracked-wide</code>\n for the eyebrow's overline treatment, so no inline\n <code>font:</code>\n declarations are needed. Inline emphasis uses semantic\n <code>&lt;strong&gt;</code>\n rather than a bespoke weight class.\n</p>",
24
+ "snippet": "<mat-card appearance=\"filled\">\n <mat-card-content class=\"dbx-p4 doc-hero-card-content\" fxLayout=\"row\" fxLayoutAlign=\"start\" fxLayoutGap=\"var(--dbx-padding-3)\">\n <div class=\"dbx-flex-fill doc-hero-card-main\">\n <div class=\"dbx-text-label-medium dbx-uppercase dbx-tracked-wide dbx-pb1\">YOUR ONBOARDING PROGRESS</div>\n <h3 class=\"dbx-text-title-large dbx-mb1\">{{ remaining }} requirements to go</h3>\n <p class=\"dbx-mb3\">\n <strong>{{ completed }} of {{ total }}</strong>\n requirements completed\n </p>\n <mat-progress-bar mode=\"determinate\" [value]=\"progressPercent\" class=\"dbx-mb3\"></mat-progress-bar>\n <button mat-stroked-button class=\"doc-hero-action\">\n View all requirements\n <mat-icon iconPositionEnd>arrow_forward</mat-icon>\n </button>\n </div>\n <div class=\"dbx-text-headline-large\" aria-hidden=\"true\">{{ progressPercent }}%</div>\n </mat-card-content>\n</mat-card>",
25
+ "uses": []
26
+ },
27
+ {
28
+ "slug": "list-anchor-button",
29
+ "category": "list",
30
+ "summary": "Two-line list whose trailing button wraps a per-item ClickableAnchor via dbx-anchor.",
31
+ "header": ".dbx-list-two-line-item Anchor-Button List",
32
+ "className": "DocListAnchorButtonExampleComponent",
33
+ "selector": "doc-list-anchor-button-example",
34
+ "module": "apps/demo",
35
+ "appRef": "apps/demo",
36
+ "hint": "Two-line row whose trailing button wraps a per-item ClickableAnchor via dbx-anchor.",
37
+ "relatedSlugs": [
38
+ "dbx-list",
39
+ "dbx-list-two-line-item",
40
+ "dbx-anchor",
41
+ "icon-tile",
42
+ "dbx-color"
43
+ ],
44
+ "info": "<p>\n Each item carries its own\n <code>anchor: ClickableAnchor</code>\n field. The item template wraps the trailing\n <code>&lt;button mat-flat-button&gt;</code>\n in\n <code>&lt;dbx-anchor [anchor]=\"anchor\"&gt;</code>\n so clicking the button fires whatever the data dictates — an\n <code>onClick</code>\n callback, a router\n <code>ref</code>\n , or an external\n <code>url</code>\n .\n</p>\n<p>\n Because\n <code>mapValuesToItemValues</code>\n drops\n <code>anchor</code>\n off the row item, the row's hosting (mat-list-item) doesn't pick it up — only the trailing button is interactive. Use this when each item already knows where it routes and you want the action visually scoped to a button.\n</p>\n<p>\n For the alternative — a whole-row click target supplied by the host rather than embedded in data — see\n <code>list-anchor-row-modifier</code>\n .\n</p>\n<p>\n Last clicked:\n <code>{{ clickedKey() ?? '(none)' }}</code>\n</p>",
45
+ "snippet": "<doc-anchor-button-item-list [state]=\"state$\"></doc-anchor-button-item-list>",
46
+ "uses": [
47
+ {
48
+ "kind": "component",
49
+ "className": "DocAnchorButtonItemListComponent",
50
+ "role": "list",
51
+ "selector": "doc-anchor-button-item-list",
52
+ "classSource": "@Component({\n selector: 'doc-anchor-button-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n host: {\n class: 'dbx-list-no-hover-effects dbx-list-card-items-list'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocAnchorButtonItemListComponent extends AbstractDbxSelectionListWrapperDirective<AnchorButtonItemValue> {\n constructor() {\n super({\n componentClass: DocAnchorButtonItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
53
+ },
54
+ {
55
+ "kind": "component",
56
+ "className": "DocAnchorButtonItemListViewComponent",
57
+ "role": "view",
58
+ "selector": "doc-anchor-button-item-list-view",
59
+ "classSource": "@Component({\n selector: 'doc-anchor-button-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocAnchorButtonItemListViewComponent),\n host: {\n class: 'dbx-list-item-p0'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocAnchorButtonItemListViewComponent extends AbstractDbxSelectionListViewDirective<AnchorButtonItemValue> {\n // Drop `icon` (template paints its own tile) and `anchor` (button owns it; row stays non-clickable).\n readonly config: DbxSelectionValueListViewConfig<AnchorButtonItemValueWithSelection> = {\n componentClass: DocAnchorButtonItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: undefined, anchor: undefined })))\n };\n}"
60
+ },
61
+ {
62
+ "kind": "component",
63
+ "className": "DocAnchorButtonItemListViewItemComponent",
64
+ "role": "item",
65
+ "selector": "doc-anchor-button-item-list-view-item",
66
+ "classSource": "@Component({\n selector: 'doc-anchor-button-item-list-view-item',\n template: `\n <div class=\"dbx-list-item-padded-thick dbx-list-two-line-item dbx-list-two-line-item-with-icon\">\n <dbx-icon-tile class=\"item-icon\" [icon]=\"icon\" [dbxColor]=\"'primary'\" [dbxColorTone]=\"18\"></dbx-icon-tile>\n <div class=\"item-left\">\n <span class=\"dbx-text-title-medium dbx-pb1\">{{ title }}</span>\n <span class=\"item-details dbx-pb2\">{{ progress }} of {{ total }} complete</span>\n <mat-progress-bar mode=\"determinate\" [value]=\"progressPercent\"></mat-progress-bar>\n </div>\n <div class=\"item-right\">\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-flat-button>{{ buttonText }}</button>\n </dbx-anchor>\n </div>\n </div>\n `,\n imports: [MatButtonModule, MatProgressBar, DbxColorDirective, DbxIconTileComponent, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocAnchorButtonItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<AnchorButtonItemValue> {\n get icon(): string {\n return this.itemValue.icon;\n }\n\n get title(): string {\n return this.itemValue.title;\n }\n\n get progress(): number {\n return this.itemValue.progress;\n }\n\n get total(): number {\n return this.itemValue.total;\n }\n\n get buttonText(): string {\n return this.itemValue.buttonText;\n }\n\n get anchor(): ClickableAnchor {\n return this.itemValue.anchor;\n }\n\n get progressPercent(): number {\n return this.total > 0 ? Math.min(100, Math.round((this.progress / this.total) * 100)) : 0;\n }\n}"
67
+ },
68
+ {
69
+ "kind": "interface",
70
+ "className": "AnchorButtonItemValue",
71
+ "role": "data",
72
+ "classSource": "export interface AnchorButtonItemValue {\n readonly key: string;\n readonly title: string;\n readonly icon: string;\n readonly progress: number;\n readonly total: number;\n readonly buttonText: string;\n readonly anchor: ClickableAnchor;\n}"
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ "slug": "list-anchor-row-modifier",
78
+ "category": "list",
79
+ "summary": "Two-line list where dbxListItemAnchorModifier makes the entire row a click target — data has no anchor field.",
80
+ "header": ".dbx-list-two-line-item Anchor-Row List With Modifier",
81
+ "className": "DocListAnchorRowModifierExampleComponent",
82
+ "selector": "doc-list-anchor-row-modifier-example",
83
+ "module": "apps/demo",
84
+ "appRef": "apps/demo",
85
+ "hint": "Whole-row click target wired by dbxListItemAnchorModifier — the data has no anchor field of its own.",
86
+ "relatedSlugs": [
87
+ "dbx-list",
88
+ "dbx-list-two-line-item",
89
+ "dbxListItemAnchorModifier",
90
+ "dbxListItemModifier",
91
+ "icon-tile",
92
+ "dbx-color"
93
+ ],
94
+ "info": "<p>\n The list values don't carry an\n <code>anchor</code>\n field. Instead, the host attaches\n <code>dbxListItemModifier [dbxListItemAnchorModifier]=\"makeClickAnchor\"</code>\n on the wrapper. The modifier runs the host's\n <code>AnchorForValueFunction</code>\n for each item, sets the resulting\n <code>ClickableAnchor</code>\n on the\n <code>DbxValueListItem</code>\n , and the list's row hosting wires it as a row click — the\n <em>entire row</em>\n becomes the click target without the data needing to know anything about routing.\n</p>\n<p>\n Pick this pattern when the routing target is computed from the value's identity (e.g. a router\n <code>ref</code>\n built from\n <code>itemValue.key</code>\n ) and you want the row itself to be the action surface — no trailing button needed; a chevron is plenty of affordance.\n</p>\n<p>\n Last clicked:\n <code>{{ clickedKey() ?? '(none)' }}</code>\n</p>",
95
+ "snippet": "<doc-anchor-row-item-list [state]=\"state$\" dbxListItemModifier [dbxListItemAnchorModifier]=\"makeClickAnchor\"></doc-anchor-row-item-list>",
96
+ "uses": [
97
+ {
98
+ "kind": "component",
99
+ "className": "DocAnchorRowItemListComponent",
100
+ "role": "list",
101
+ "selector": "doc-anchor-row-item-list",
102
+ "classSource": "@Component({\n selector: 'doc-anchor-row-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-list-card-items-list'\n },\n standalone: true\n})\nexport class DocAnchorRowItemListComponent extends AbstractDbxSelectionListWrapperDirective<AnchorRowItemValue> {\n constructor() {\n super({\n componentClass: DocAnchorRowItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
103
+ },
104
+ {
105
+ "kind": "component",
106
+ "className": "DocAnchorRowItemListViewComponent",
107
+ "role": "view",
108
+ "selector": "doc-anchor-row-item-list-view",
109
+ "classSource": "@Component({\n selector: 'doc-anchor-row-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocAnchorRowItemListViewComponent),\n host: {\n class: 'dbx-list-item-p0'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocAnchorRowItemListViewComponent extends AbstractDbxSelectionListViewDirective<AnchorRowItemValue> {\n readonly config: DbxSelectionValueListViewConfig<AnchorRowItemValueWithSelection> = {\n componentClass: DocAnchorRowItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: undefined })))\n };\n}"
110
+ },
111
+ {
112
+ "kind": "component",
113
+ "className": "DocAnchorRowItemListViewItemComponent",
114
+ "role": "item",
115
+ "selector": "doc-anchor-row-item-list-view-item",
116
+ "classSource": "@Component({\n selector: 'doc-anchor-row-item-list-view-item',\n template: `\n <div class=\"dbx-list-item-padded-thick dbx-list-two-line-item dbx-list-two-line-item-with-icon\">\n <dbx-icon-tile class=\"item-icon\" [icon]=\"icon\" [dbxColor]=\"'primary'\" [dbxColorTone]=\"18\"></dbx-icon-tile>\n <div class=\"item-left\">\n <span class=\"dbx-text-title-medium dbx-pb1\">{{ title }}</span>\n <span class=\"item-details dbx-pb2\">{{ progress }} of {{ total }} complete</span>\n <mat-progress-bar mode=\"determinate\" [value]=\"progressPercent\"></mat-progress-bar>\n </div>\n <div class=\"item-right\">\n <mat-icon>chevron_right</mat-icon>\n </div>\n </div>\n `,\n imports: [MatIconModule, MatProgressBar, DbxColorDirective, DbxIconTileComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocAnchorRowItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<AnchorRowItemValue> {\n get icon(): string {\n return this.itemValue.icon;\n }\n\n get title(): string {\n return this.itemValue.title;\n }\n\n get progress(): number {\n return this.itemValue.progress;\n }\n\n get total(): number {\n return this.itemValue.total;\n }\n\n get progressPercent(): number {\n return this.total > 0 ? Math.min(100, Math.round((this.progress / this.total) * 100)) : 0;\n }\n}"
117
+ },
118
+ {
119
+ "kind": "interface",
120
+ "className": "AnchorRowItemValue",
121
+ "role": "data",
122
+ "classSource": "export interface AnchorRowItemValue {\n readonly key: string;\n readonly title: string;\n readonly icon: string;\n readonly progress: number;\n readonly total: number;\n}"
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ "slug": "list-progress-with-button",
128
+ "category": "list",
129
+ "summary": "Two-line list with template-painted icon tile, progress bar, and trailing button.",
130
+ "header": ".dbx-list-two-line-item Customized List With Button",
131
+ "className": "DocListProgressExampleComponent",
132
+ "selector": "doc-list-progress-example",
133
+ "module": "apps/demo",
134
+ "appRef": "apps/demo",
135
+ "hint": "Two-line row with a template-painted icon tile, full-width progress bar, and trailing action button.",
136
+ "relatedSlugs": [
137
+ "dbx-list",
138
+ "dbx-list-two-line-item",
139
+ "icon-tile",
140
+ "dbx-color"
141
+ ],
142
+ "info": "<p>\n This variant demonstrates a heavier, custom item where the template paints the leading icon itself instead of relying on the parent list view. Add the\n <code>.dbx-list-two-line-item-with-icon</code>\n modifier so the parent skips its own icon, then drop the mapped item's\n <code>icon</code>\n field to suppress the built-in slot.\n</p>\n<p>\n The leading element uses the reusable\n <code>&lt;dbx-icon-tile&gt;</code>\n component — a rounded, padded container that takes an\n <code>[icon]</code>\n input and pairs with\n <code>[dbxColor]</code>\n +\n <code>[dbxColorTone]</code>\n for a tonal background. Inside\n <code>.item-left</code>\n the template stacks a title, an\n <code>X of Y complete</code>\n details line, and a\n <code>&lt;mat-progress-bar&gt;</code>\n that spans the full width up to the trailing column;\n <code>.item-right</code>\n holds a flat action button.\n</p>\n<p>\n Supporting utilities used here:\n <code>.dbx-list-item-padded-thick</code>\n for a roomier row,\n <code>.dbx-list-card-items-list</code>\n on the wrapper for the tinted/rounded card surface — applied to the actual\n <code>.mat-mdc-list-item</code>\n so hover/focus state-layers stay within the visible card boundary (defaults flow through\n <code>--mat-sys-surface-container</code>\n +\n <code>--mat-sys-corner-large</code>\n ; overridable via\n <code>--dbx-list-item-card-background</code>\n /\n <code>--dbx-list-item-card-border-radius</code>\n , with inter-card spacing exposed as\n <code>--dbx-list-card-items-list-gap</code>\n ),\n <code>.dbx-list-item-p0</code>\n on the view item host to drop Material's default list-item padding (so the icon tile can own its leading inset), and\n <code>.dbx-list-no-hover-effects</code>\n on the wrapper to disable the hover state-layer and pointer cursor for non-clickable rows.\n</p>",
143
+ "snippet": "<doc-progress-item-list [state]=\"state$\"></doc-progress-item-list>",
144
+ "uses": [
145
+ {
146
+ "kind": "component",
147
+ "className": "DocProgressItemListComponent",
148
+ "role": "list",
149
+ "selector": "doc-progress-item-list",
150
+ "classSource": "@Component({\n selector: 'doc-progress-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n host: {\n class: 'dbx-list-no-hover-effects dbx-list-card-items-list'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocProgressItemListComponent extends AbstractDbxSelectionListWrapperDirective<ProgressItemValue> {\n constructor() {\n super({\n componentClass: DocProgressItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
151
+ },
152
+ {
153
+ "kind": "component",
154
+ "className": "DocProgressItemListViewComponent",
155
+ "role": "view",
156
+ "selector": "doc-progress-item-list-view",
157
+ "classSource": "@Component({\n selector: 'doc-progress-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocProgressItemListViewComponent),\n host: {\n class: 'dbx-list-item-p0'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocProgressItemListViewComponent extends AbstractDbxSelectionListViewDirective<ProgressItemValue> {\n readonly config: DbxSelectionValueListViewConfig<ProgressItemValueWithSelection> = {\n componentClass: DocProgressItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: undefined })))\n };\n}"
158
+ },
159
+ {
160
+ "kind": "component",
161
+ "className": "DocProgressItemListViewItemComponent",
162
+ "role": "item",
163
+ "selector": "doc-progress-item-list-view-item",
164
+ "classSource": "@Component({\n selector: 'doc-progress-item-list-view-item',\n template: `\n <div class=\"dbx-list-item-padded-thick dbx-list-two-line-item dbx-list-two-line-item-with-icon doc-progress-item\">\n <dbx-icon-tile class=\"item-icon\" [icon]=\"icon\" [dbxColor]=\"'primary'\" [dbxColorTone]=\"18\"></dbx-icon-tile>\n <div class=\"item-left\">\n <span class=\"dbx-text-title-medium dbx-pb1\">{{ title }}</span>\n <span class=\"item-details dbx-pb2\">{{ progress }} of {{ total }} complete</span>\n <mat-progress-bar mode=\"determinate\" [value]=\"progressPercent\"></mat-progress-bar>\n </div>\n <div class=\"item-right\">\n <button mat-flat-button>View requirements</button>\n </div>\n </div>\n `,\n imports: [MatButtonModule, MatProgressBar, DbxColorDirective, DbxIconTileComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocProgressItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<ProgressItemValue> {\n get icon(): string {\n return this.itemValue.icon;\n }\n\n get title(): string {\n return this.itemValue.title;\n }\n\n get progress(): number {\n return this.itemValue.progress;\n }\n\n get total(): number {\n return this.itemValue.total;\n }\n\n get progressPercent(): number {\n return this.total > 0 ? Math.min(100, Math.round((this.progress / this.total) * 100)) : 0;\n }\n}"
165
+ },
166
+ {
167
+ "kind": "interface",
168
+ "className": "ProgressItemValue",
169
+ "role": "data",
170
+ "classSource": "export interface ProgressItemValue {\n readonly key: string;\n readonly title: string;\n readonly progress: number;\n readonly total: number;\n readonly icon: string;\n}"
171
+ }
172
+ ]
173
+ },
174
+ {
175
+ "slug": "list-standard-two-line",
176
+ "category": "list",
177
+ "summary": "Two-line list with parent-rendered leading icon and trailing status chip.",
178
+ "header": ".dbx-list-two-line-item Standard List With Chip",
179
+ "className": "DocListStandardExampleComponent",
180
+ "selector": "doc-list-standard-example",
181
+ "module": "apps/demo",
182
+ "appRef": "apps/demo",
183
+ "hint": "Two-line row with parent-rendered leading icon, title/details/footnote, and a trailing status chip.",
184
+ "relatedSlugs": [
185
+ "dbx-list",
186
+ "dbx-list-two-line-item",
187
+ "dbx-chip"
188
+ ],
189
+ "info": "<p>\n The\n <code>.dbx-list-two-line-item</code>\n wrapper organizes a row into\n <code>.item-left</code>\n (column with\n <code>.item-title</code>\n ,\n <code>.item-details</code>\n , and\n <code>.item-details-footnote</code>\n ) and\n <code>.item-right</code>\n (trailing content). Pair with\n <code>.dbx-list-item-padded</code>\n for the standard list-row padding and min-height.\n</p>\n<p>\n This example uses the default selection-list rendering: the parent list view paints the leading icon (it reads\n <code>icon</code>\n off each mapped item), so the item template only fills\n <code>.item-left</code>\n with the title/details/footnote and\n <code>.item-right</code>\n with a\n <code>&lt;dbx-chip&gt;</code>\n for the status badge.\n</p>",
190
+ "snippet": "<doc-two-line-item-list [state]=\"state$\"></doc-two-line-item-list>",
191
+ "uses": [
192
+ {
193
+ "kind": "component",
194
+ "className": "DocTwoLineItemListComponent",
195
+ "role": "list",
196
+ "selector": "doc-two-line-item-list",
197
+ "classSource": "@Component({\n selector: 'doc-two-line-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocTwoLineItemListComponent extends AbstractDbxSelectionListWrapperDirective<TwoLineItemValue> {\n constructor() {\n super({\n componentClass: DocTwoLineItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
198
+ },
199
+ {
200
+ "kind": "component",
201
+ "className": "DocTwoLineItemListViewComponent",
202
+ "role": "view",
203
+ "selector": "doc-two-line-item-list-view",
204
+ "classSource": "@Component({\n selector: 'doc-two-line-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocTwoLineItemListViewComponent),\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocTwoLineItemListViewComponent extends AbstractDbxSelectionListViewDirective<TwoLineItemValue> {\n readonly config: DbxSelectionValueListViewConfig<TwoLineItemValueWithSelection> = {\n componentClass: DocTwoLineItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: value.icon })))\n };\n}"
205
+ },
206
+ {
207
+ "kind": "component",
208
+ "className": "DocTwoLineItemListViewItemComponent",
209
+ "role": "item",
210
+ "selector": "doc-two-line-item-list-view-item",
211
+ "classSource": "@Component({\n selector: 'doc-two-line-item-list-view-item',\n template: `\n <div class=\"dbx-list-item-padded dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"item-title\">{{ title }}</span>\n @if (details) {\n <span class=\"item-details\">{{ details }}</span>\n }\n @if (footnote) {\n <span class=\"item-details-footnote\">{{ footnote }}</span>\n }\n </div>\n <dbx-spacer></dbx-spacer>\n <div class=\"item-right\">\n @if (status) {\n <dbx-chip [small]=\"true\" [color]=\"statusColor\">{{ status }}</dbx-chip>\n }\n </div>\n </div>\n `,\n imports: [DbxSpacerDirective, DbxChipDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocTwoLineItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<TwoLineItemValue> {\n get title(): string {\n return this.itemValue.title;\n }\n\n get details(): Maybe<string> {\n return this.itemValue.details;\n }\n\n get footnote(): Maybe<string> {\n return this.itemValue.footnote;\n }\n\n get status(): Maybe<TwoLineItemValue['status']> {\n return this.itemValue.status;\n }\n\n get statusColor(): TwoLineItemStatusColor {\n return this.status ? STATUS_COLOR[this.status] : 'grey';\n }\n}"
212
+ },
213
+ {
214
+ "kind": "interface",
215
+ "className": "TwoLineItemValue",
216
+ "role": "data",
217
+ "classSource": "export interface TwoLineItemValue {\n readonly key: string;\n readonly icon?: Maybe<string>;\n readonly title: string;\n readonly details?: Maybe<string>;\n readonly footnote?: Maybe<string>;\n readonly status?: Maybe<'active' | 'pending' | 'archived'>;\n}"
218
+ }
219
+ ]
220
+ }
221
+ ]
222
+ }
@@ -17,11 +17,7 @@
17
17
  "string",
18
18
  "dereekb-firebase-server:test"
19
19
  ],
20
- "notes": "An encoded JWT string representing a Firebase custom token created for testing.",
21
- "sourceLocation": {
22
- "file": "test/src/lib/firebase/firebase.admin.auth.ts",
23
- "line": 445
24
- }
20
+ "notes": "An encoded JWT string representing a Firebase custom token created for testing."
25
21
  },
26
22
  {
27
23
  "name": "FirebaseAdminTestEnvironmentHost",
@@ -39,11 +35,7 @@
39
35
  "code": "const host: FirebaseAdminTestEnvironmentHost = 'localhost:8080';"
40
36
  }
41
37
  ],
42
- "notes": "A `host:port` string used to connect to a Firebase emulator.",
43
- "sourceLocation": {
44
- "file": "test/src/lib/firebase/firebase.ts",
45
- "line": 15
46
- }
38
+ "notes": "A `host:port` string used to connect to a Firebase emulator."
47
39
  },
48
40
  {
49
41
  "name": "McpToolResponseSummary",
@@ -56,11 +48,7 @@
56
48
  "string",
57
49
  "dereekb-firebase-server:mcp"
58
50
  ],
59
- "notes": "A natural language summary of an MCP tool operation result.",
60
- "sourceLocation": {
61
- "file": "src/lib/nest/model/api.details.ts",
62
- "line": 25
63
- }
51
+ "notes": "A natural language summary of an MCP tool operation result."
64
52
  }
65
53
  ]
66
54
  }