@dereekb/dbx-components-mcp 13.42.0 → 14.0.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.
@@ -22,7 +22,7 @@
22
22
  "optional": false
23
23
  }
24
24
  ],
25
- "returns": "A factory function that produces a clamped {@link DateCellRangeWithRange } from optional start/end input.",
25
+ "returns": "A factory function that produces a clamped {@link DateCellRangeWithRange} from optional start/end input.",
26
26
  "tags": [
27
27
  "date",
28
28
  "cell",
@@ -55,7 +55,7 @@
55
55
  {
56
56
  "name": "config",
57
57
  "type": "DateCellTiming | DateCallIndexRangeFromDatesFactoryConfig",
58
- "description": "- A {@link DateCellTiming } or full factory configuration.",
58
+ "description": "- A {@link DateCellTiming} or full factory configuration.",
59
59
  "optional": false
60
60
  },
61
61
  {
@@ -65,7 +65,7 @@
65
65
  "optional": true
66
66
  }
67
67
  ],
68
- "returns": "A clamped {@link DateCellRangeWithRange } derived from the timing and input.",
68
+ "returns": "A clamped {@link DateCellRangeWithRange} derived from the timing and input.",
69
69
  "tags": [
70
70
  "date",
71
71
  "cell",
@@ -104,7 +104,7 @@
104
104
  "optional": true
105
105
  }
106
106
  ],
107
- "returns": "A {@link DateCellRangeWithRange } covering only the completed day indexes.",
107
+ "returns": "A {@link DateCellRangeWithRange} covering only the completed day indexes.",
108
108
  "tags": [
109
109
  "date",
110
110
  "cell",
@@ -177,7 +177,7 @@
177
177
  "optional": false
178
178
  }
179
179
  ],
180
- "returns": "A {@link DateCellIndexRange } with exclusive `maxIndex`.",
180
+ "returns": "A {@link DateCellIndexRange} with exclusive `maxIndex`.",
181
181
  "tags": [
182
182
  "date",
183
183
  "cell",
@@ -212,7 +212,7 @@
212
212
  "optional": false
213
213
  }
214
214
  ],
215
- "returns": "A {@link DateCellRangeWithRange } with inclusive `to`.",
215
+ "returns": "A {@link DateCellRangeWithRange} with inclusive `to`.",
216
216
  "tags": [
217
217
  "date",
218
218
  "cell",
@@ -259,7 +259,7 @@
259
259
  "optional": true
260
260
  }
261
261
  ],
262
- "returns": "A {@link DateCellIndexRange } representing the computed index bounds.",
262
+ "returns": "A {@link DateCellIndexRange} representing the computed index bounds.",
263
263
  "tags": [
264
264
  "date",
265
265
  "cell",
@@ -365,7 +365,7 @@
365
365
  "optional": false
366
366
  }
367
367
  ],
368
- "returns": "A factory function that expands date cell blocks into {@link DateCellDurationSpan } arrays.",
368
+ "returns": "A factory function that expands date cell blocks into {@link DateCellDurationSpan} arrays.",
369
369
  "tags": [
370
370
  "date",
371
371
  "cell",
@@ -401,7 +401,7 @@
401
401
  "optional": false
402
402
  }
403
403
  ],
404
- "returns": "A factory that computes {@link DateCellDayTimingInfo } for any date or day index.",
404
+ "returns": "A factory that computes {@link DateCellDayTimingInfo} for any date or day index.",
405
405
  "tags": [
406
406
  "date",
407
407
  "cell",
@@ -438,7 +438,7 @@
438
438
  "optional": false
439
439
  }
440
440
  ],
441
- "returns": "True if the input is a {@link DateCellTimingRelativeIndexFactory }.",
441
+ "returns": "True if the input is a {@link DateCellTimingRelativeIndexFactory}.",
442
442
  "tags": [
443
443
  "date",
444
444
  "cell",
@@ -810,7 +810,7 @@
810
810
  "optional": false
811
811
  }
812
812
  ],
813
- "returns": "A new {@link FullDateCellTiming } with the requested aspects replaced.",
813
+ "returns": "A new {@link FullDateCellTiming} with the requested aspects replaced.",
814
814
  "tags": [
815
815
  "date",
816
816
  "cell",
@@ -1773,8 +1773,8 @@
1773
1773
  "required": false
1774
1774
  },
1775
1775
  {
1776
- "name": "description",
1777
- "type": "string",
1776
+ "name": "hint",
1777
+ "type": "DynamicText",
1778
1778
  "description": "",
1779
1779
  "required": false
1780
1780
  },
@@ -2016,6 +2016,10 @@
2016
2016
  "property": "overflow-y",
2017
2017
  "value": "hidden"
2018
2018
  },
2019
+ {
2020
+ "property": "padding-block",
2021
+ "value": "var(--dbx-shadow-gutter, 4px)"
2022
+ },
2019
2023
  {
2020
2024
  "property": "--mat-icon-button-touch-target-size",
2021
2025
  "value": "40px"
@@ -2053,7 +2057,11 @@
2053
2057
  "intent": "horizontal action bar — flex row that scrolls horizontally before wrapping",
2054
2058
  "seeAlso": [
2055
2059
  "dbx-flex-center",
2056
- "dbx-flex-fill"
2060
+ "dbx-flex-fill",
2061
+ "card-horizontal"
2062
+ ],
2063
+ "tokensRead": [
2064
+ "--dbx-shadow-gutter"
2057
2065
  ],
2058
2066
  "tokensSet": [
2059
2067
  "--mat-button-filled-touch-target-size",
@@ -2072,7 +2080,7 @@
2072
2080
  "source": "@dereekb/dbx-web",
2073
2081
  "module": "@dereekb/dbx-web",
2074
2082
  "file": "src/lib/layout/flex/_flex.scss",
2075
- "line": 34,
2083
+ "line": 44,
2076
2084
  "declarations": [
2077
2085
  {
2078
2086
  "property": "display",
@@ -2100,7 +2108,7 @@
2100
2108
  "source": "@dereekb/dbx-web",
2101
2109
  "module": "@dereekb/dbx-web",
2102
2110
  "file": "src/lib/layout/flex/_flex.scss",
2103
- "line": 44,
2111
+ "line": 54,
2104
2112
  "declarations": [
2105
2113
  {
2106
2114
  "property": "display",
@@ -2123,7 +2131,7 @@
2123
2131
  "source": "@dereekb/dbx-web",
2124
2132
  "module": "@dereekb/dbx-web",
2125
2133
  "file": "src/lib/layout/flex/_flex.scss",
2126
- "line": 54,
2134
+ "line": 64,
2127
2135
  "declarations": [
2128
2136
  {
2129
2137
  "property": "flex",
@@ -2143,7 +2151,7 @@
2143
2151
  "source": "@dereekb/dbx-web",
2144
2152
  "module": "@dereekb/dbx-web",
2145
2153
  "file": "src/lib/layout/flex/_flex.scss",
2146
- "line": 65,
2154
+ "line": 75,
2147
2155
  "declarations": [
2148
2156
  {
2149
2157
  "property": "flex",
@@ -2167,7 +2175,7 @@
2167
2175
  "source": "@dereekb/dbx-web",
2168
2176
  "module": "@dereekb/dbx-web",
2169
2177
  "file": "src/lib/layout/flex/_flex.scss",
2170
- "line": 74,
2178
+ "line": 84,
2171
2179
  "declarations": [
2172
2180
  {
2173
2181
  "property": "display",
@@ -3151,7 +3159,7 @@
3151
3159
  "source": "@dereekb/dbx-web",
3152
3160
  "module": "@dereekb/dbx-web",
3153
3161
  "file": "src/lib/layout/section/_section.scss",
3154
- "line": 76,
3162
+ "line": 83,
3155
3163
  "declarations": [
3156
3164
  {
3157
3165
  "property": "padding",
@@ -1205,6 +1205,20 @@
1205
1205
  "--mat-sys-error"
1206
1206
  ]
1207
1207
  },
1208
+ {
1209
+ "cssVariable": "--dbx-file-list-item-details-gap",
1210
+ "source": "dbx-web",
1211
+ "role": "spacing",
1212
+ "intents": [
1213
+ "file list item details gap",
1214
+ "file list item details gap spacing"
1215
+ ],
1216
+ "description": "Component-scoped override point (`download`) read in `packages/dbx-web/src/lib/extension/download/_download.scss` — set it (from an app, or via the owning dbx directive where one exists) to override; unset, it falls back to `0.25em`.",
1217
+ "defaults": {
1218
+ "light": "0.25em"
1219
+ },
1220
+ "componentScope": "download"
1221
+ },
1208
1222
  {
1209
1223
  "cssVariable": "--dbx-file-upload-square-container-shape",
1210
1224
  "source": "dbx-web",
@@ -2225,6 +2239,21 @@
2225
2239
  },
2226
2240
  "componentScope": "section"
2227
2241
  },
2242
+ {
2243
+ "cssVariable": "--dbx-shadow-gutter",
2244
+ "scssVariable": "$shadow-gutter-var",
2245
+ "source": "dbx-web",
2246
+ "role": "spacing",
2247
+ "intents": [
2248
+ "shadow gutter",
2249
+ "elevation room",
2250
+ "keep box-shadow from being clipped"
2251
+ ],
2252
+ "description": "Shadow gutter — the room a clipping/scrolling container must reserve INSIDE its padding box so an elevated child's `box-shadow` isn't clipped at the edge. Sized against Material's raised-button elevation: the resting shadow reaches 2.5px below the border box and the hover shadow reaches 5px, so 4px clears the resting state outright and all but the faintest 12% hover layer. Raise it to 5px to clear hover completely, or set it to 0px to opt out.",
2253
+ "defaults": {
2254
+ "light": "4px"
2255
+ }
2256
+ },
2228
2257
  {
2229
2258
  "cssVariable": "--dbx-sidenav-active-accent",
2230
2259
  "source": "dbx-web",
@@ -108,12 +108,6 @@
108
108
  "description": "",
109
109
  "required": false
110
110
  },
111
- {
112
- "name": "customButtonColor",
113
- "type": "Maybe<string>",
114
- "description": "",
115
- "required": false
116
- },
117
111
  {
118
112
  "name": "customTextColor",
119
113
  "type": "Maybe<string>",
@@ -31,7 +31,7 @@
31
31
  "className": "DocActionFormWithSecondaryFormComponent",
32
32
  "role": "form",
33
33
  "selector": "doc-action-form-with-secondary-form",
34
- "classSource": "@Component({\n template: DBX_FORGE_FORM_COMPONENT_TEMPLATE,\n selector: 'doc-action-form-with-secondary-form',\n providers: dbxForgeFormComponentProviders(),\n standalone: true,\n imports: [DbxForgeFormComponentImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DocActionFormWithSecondaryFormComponent extends AbstractSyncForgeFormDirective<DocActionFormWithSecondaryFormValue> {\n readonly formConfig: FormConfig = {\n fields: [\n dbxForgeTextField({\n key: 'reason',\n label: 'Reason',\n required: true,\n description: 'The Approve handler receives this value via dbxActionForm. Type something to enable Approve.'\n })\n ]\n } as FormConfig;\n}"
34
+ "classSource": "@Component({\n template: DBX_FORGE_FORM_COMPONENT_TEMPLATE,\n selector: 'doc-action-form-with-secondary-form',\n providers: dbxForgeFormComponentProviders(),\n imports: [DbxForgeFormComponentImportsModule]\n})\nexport class DocActionFormWithSecondaryFormComponent extends AbstractSyncForgeFormDirective<DocActionFormWithSecondaryFormValue> {\n readonly formConfig: FormConfig = {\n fields: [\n dbxForgeTextField({\n key: 'reason',\n label: 'Reason',\n required: true,\n hint: 'The Approve handler receives this value via dbxActionForm. Type something to enable Approve.'\n })\n ]\n } as FormConfig;\n}"
35
35
  },
36
36
  {
37
37
  "kind": "interface",
@@ -72,21 +72,21 @@
72
72
  "className": "DocManualActionsItemListComponent",
73
73
  "role": "list",
74
74
  "selector": "doc-manual-actions-item-list",
75
- "classSource": "@Component({\n selector: 'doc-manual-actions-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n host: {\n class: 'dbx-list-auto-height dbx-list-no-hover-effects dbx-list-no-item-padding'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocManualActionsItemListComponent extends AbstractDbxSelectionListWrapperDirective<ManualActionItemValue> {\n constructor() {\n super({\n componentClass: DocManualActionsItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
75
+ "classSource": "@Component({\n selector: 'doc-manual-actions-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n host: {\n class: 'dbx-list-auto-height dbx-list-no-hover-effects dbx-list-no-item-padding'\n }\n})\nexport class DocManualActionsItemListComponent extends AbstractDbxSelectionListWrapperDirective<ManualActionItemValue> {\n constructor() {\n super({\n componentClass: DocManualActionsItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
76
76
  },
77
77
  {
78
78
  "kind": "component",
79
79
  "className": "DocManualActionsItemListViewComponent",
80
80
  "role": "view",
81
81
  "selector": "doc-manual-actions-item-list-view",
82
- "classSource": "@Component({\n selector: 'doc-manual-actions-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocManualActionsItemListViewComponent),\n host: {\n class: 'dbx-list-item-p0'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocManualActionsItemListViewComponent extends AbstractDbxSelectionListViewDirective<ManualActionItemValue> {\n // Drop `icon` (rows render no tile) and `anchor` (button owns it; row stays non-clickable).\n readonly config: DbxSelectionValueListViewConfig<ManualActionItemValueWithSelection> = {\n componentClass: DocManualActionsItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: undefined, anchor: undefined })))\n };\n}"
82
+ "classSource": "@Component({\n selector: 'doc-manual-actions-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocManualActionsItemListViewComponent),\n host: {\n class: 'dbx-list-item-p0'\n }\n})\nexport class DocManualActionsItemListViewComponent extends AbstractDbxSelectionListViewDirective<ManualActionItemValue> {\n // Drop `icon` (rows render no tile) and `anchor` (button owns it; row stays non-clickable).\n readonly config: DbxSelectionValueListViewConfig<ManualActionItemValueWithSelection> = {\n componentClass: DocManualActionsItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: undefined, anchor: undefined })))\n };\n}"
83
83
  },
84
84
  {
85
85
  "kind": "component",
86
86
  "className": "DocManualActionsItemListViewItemComponent",
87
87
  "role": "item",
88
88
  "selector": "doc-manual-actions-item-list-view-item",
89
- "classSource": "@Component({\n selector: 'doc-manual-actions-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=\"dbx-text-title-medium\">{{ title }}</span>\n <span class=\"item-details\">{{ detail }}</span>\n </div>\n <div class=\"item-right\">\n <dbx-anchor [anchor]=\"anchor\">\n @if (buttonRaised) {\n <dbx-button [raised]=\"true\" color=\"primary\" class=\"dbx-nowrap\" [text]=\"buttonText\"></dbx-button>\n } @else {\n <dbx-button [stroked]=\"true\" class=\"dbx-nowrap\" [text]=\"buttonText\"></dbx-button>\n }\n </dbx-anchor>\n </div>\n </div>\n `,\n imports: [MatButtonModule, DbxButtonComponent, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocManualActionsItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<ManualActionItemValue> {\n get title(): string {\n return this.itemValue.title;\n }\n\n get detail(): string {\n return this.itemValue.detail;\n }\n\n get buttonText(): string {\n return this.itemValue.buttonText;\n }\n\n get buttonRaised(): Maybe<boolean> {\n return this.itemValue.buttonRaised;\n }\n\n get anchor(): Maybe<ClickableAnchor> {\n return this.itemValue.anchor;\n }\n}"
89
+ "classSource": "@Component({\n selector: 'doc-manual-actions-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=\"dbx-text-title-medium\">{{ title }}</span>\n <span class=\"item-details\">{{ detail }}</span>\n </div>\n <div class=\"item-right\">\n <dbx-anchor [anchor]=\"anchor\">\n @if (buttonRaised) {\n <dbx-button [raised]=\"true\" color=\"primary\" class=\"dbx-nowrap\" [text]=\"buttonText\"></dbx-button>\n } @else {\n <dbx-button [stroked]=\"true\" class=\"dbx-nowrap\" [text]=\"buttonText\"></dbx-button>\n }\n </dbx-anchor>\n </div>\n </div>\n `,\n imports: [MatButtonModule, DbxButtonComponent, DbxAnchorComponent]\n})\nexport class DocManualActionsItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<ManualActionItemValue> {\n get title(): string {\n return this.itemValue.title;\n }\n\n get detail(): string {\n return this.itemValue.detail;\n }\n\n get buttonText(): string {\n return this.itemValue.buttonText;\n }\n\n get buttonRaised(): Maybe<boolean> {\n return this.itemValue.buttonRaised;\n }\n\n get anchor(): Maybe<ClickableAnchor> {\n return this.itemValue.anchor;\n }\n}"
90
90
  },
91
91
  {
92
92
  "kind": "interface",
@@ -128,21 +128,21 @@
128
128
  "className": "DocWorthKnowingItemListComponent",
129
129
  "role": "list",
130
130
  "selector": "doc-worth-knowing-item-list",
131
- "classSource": "@Component({\n selector: 'doc-worth-knowing-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n host: {\n class: 'dbx-list-no-hover-effects dbx-list-no-item-padding'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocWorthKnowingItemListComponent extends AbstractDbxSelectionListWrapperDirective<WorthKnowingItemValue> {\n constructor() {\n super({\n componentClass: DocWorthKnowingItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
131
+ "classSource": "@Component({\n selector: 'doc-worth-knowing-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n host: {\n class: 'dbx-list-no-hover-effects dbx-list-no-item-padding'\n }\n})\nexport class DocWorthKnowingItemListComponent extends AbstractDbxSelectionListWrapperDirective<WorthKnowingItemValue> {\n constructor() {\n super({\n componentClass: DocWorthKnowingItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
132
132
  },
133
133
  {
134
134
  "kind": "component",
135
135
  "className": "DocWorthKnowingItemListViewComponent",
136
136
  "role": "view",
137
137
  "selector": "doc-worth-knowing-item-list-view",
138
- "classSource": "@Component({\n selector: 'doc-worth-knowing-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocWorthKnowingItemListViewComponent),\n host: {\n class: 'dbx-list-item-p0'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocWorthKnowingItemListViewComponent extends AbstractDbxSelectionListViewDirective<WorthKnowingItemValue> {\n // Drop `icon` (template paints its own tile) and `anchor` (button owns it; row stays non-clickable).\n readonly config: DbxSelectionValueListViewConfig<WorthKnowingItemValueWithSelection> = {\n componentClass: DocWorthKnowingItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: undefined, anchor: undefined })))\n };\n}"
138
+ "classSource": "@Component({\n selector: 'doc-worth-knowing-item-list-view',\n template: DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxSelectionValueListViewComponentImportsModule],\n providers: provideDbxListView(DocWorthKnowingItemListViewComponent),\n host: {\n class: 'dbx-list-item-p0'\n }\n})\nexport class DocWorthKnowingItemListViewComponent extends AbstractDbxSelectionListViewDirective<WorthKnowingItemValue> {\n // Drop `icon` (template paints its own tile) and `anchor` (button owns it; row stays non-clickable).\n readonly config: DbxSelectionValueListViewConfig<WorthKnowingItemValueWithSelection> = {\n componentClass: DocWorthKnowingItemListViewItemComponent,\n mapValuesToItemValues: (values) => of(values.map((value) => ({ ...value, itemValue: value, icon: undefined, anchor: undefined })))\n };\n}"
139
139
  },
140
140
  {
141
141
  "kind": "component",
142
142
  "className": "DocWorthKnowingItemListViewItemComponent",
143
143
  "role": "item",
144
144
  "selector": "doc-worth-knowing-item-list-view-item",
145
- "classSource": "@Component({\n selector: 'doc-worth-knowing-item-list-view-item',\n template: `\n <div class=\"dbx-list-item-padded 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\">{{ title }}</span>\n <span class=\"item-details\">{{ detail }}</span>\n </div>\n @if (buttonText) {\n <div class=\"item-right\">\n <dbx-anchor [anchor]=\"anchor\">\n <dbx-button [stroked]=\"true\" class=\"dbx-nowrap\" [text]=\"buttonText\"></dbx-button>\n </dbx-anchor>\n </div>\n }\n </div>\n `,\n imports: [MatButtonModule, DbxColorDirective, DbxIconTileComponent, DbxButtonComponent, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DocWorthKnowingItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<WorthKnowingItemValue> {\n get icon(): string {\n return this.itemValue.icon;\n }\n\n get title(): string {\n return this.itemValue.title;\n }\n\n get detail(): string {\n return this.itemValue.detail;\n }\n\n get buttonText(): Maybe<string> {\n return this.itemValue.buttonText;\n }\n\n get anchor(): Maybe<ClickableAnchor> {\n return this.itemValue.anchor;\n }\n}"
145
+ "classSource": "@Component({\n selector: 'doc-worth-knowing-item-list-view-item',\n template: `\n <div class=\"dbx-list-item-padded 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\">{{ title }}</span>\n <span class=\"item-details\">{{ detail }}</span>\n </div>\n @if (buttonText) {\n <div class=\"item-right\">\n <dbx-anchor [anchor]=\"anchor\">\n <dbx-button [stroked]=\"true\" class=\"dbx-nowrap\" [text]=\"buttonText\"></dbx-button>\n </dbx-anchor>\n </div>\n }\n </div>\n `,\n imports: [MatButtonModule, DbxColorDirective, DbxIconTileComponent, DbxButtonComponent, DbxAnchorComponent]\n})\nexport class DocWorthKnowingItemListViewItemComponent extends AbstractDbxValueListViewItemComponent<WorthKnowingItemValue> {\n get icon(): string {\n return this.itemValue.icon;\n }\n\n get title(): string {\n return this.itemValue.title;\n }\n\n get detail(): string {\n return this.itemValue.detail;\n }\n\n get buttonText(): Maybe<string> {\n return this.itemValue.buttonText;\n }\n\n get anchor(): Maybe<ClickableAnchor> {\n return this.itemValue.anchor;\n }\n}"
146
146
  },
147
147
  {
148
148
  "kind": "interface",
@@ -241,21 +241,21 @@
241
241
  "className": "DocAnchorButtonItemListComponent",
242
242
  "role": "list",
243
243
  "selector": "doc-anchor-button-item-list",
244
- "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}"
244
+ "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})\nexport class DocAnchorButtonItemListComponent extends AbstractDbxSelectionListWrapperDirective<AnchorButtonItemValue> {\n constructor() {\n super({\n componentClass: DocAnchorButtonItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
245
245
  },
246
246
  {
247
247
  "kind": "component",
248
248
  "className": "DocAnchorButtonItemListViewComponent",
249
249
  "role": "view",
250
250
  "selector": "doc-anchor-button-item-list-view",
251
- "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}"
251
+ "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})\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}"
252
252
  },
253
253
  {
254
254
  "kind": "component",
255
255
  "className": "DocAnchorButtonItemListViewItemComponent",
256
256
  "role": "item",
257
257
  "selector": "doc-anchor-button-item-list-view-item",
258
- "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}"
258
+ "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})\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}"
259
259
  },
260
260
  {
261
261
  "kind": "interface",
@@ -291,21 +291,21 @@
291
291
  "className": "DocAnchorRowItemListComponent",
292
292
  "role": "list",
293
293
  "selector": "doc-anchor-row-item-list",
294
- "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}"
294
+ "classSource": "@Component({\n selector: 'doc-anchor-row-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n host: {\n class: 'dbx-list-card-items-list'\n }\n})\nexport class DocAnchorRowItemListComponent extends AbstractDbxSelectionListWrapperDirective<AnchorRowItemValue> {\n constructor() {\n super({\n componentClass: DocAnchorRowItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
295
295
  },
296
296
  {
297
297
  "kind": "component",
298
298
  "className": "DocAnchorRowItemListViewComponent",
299
299
  "role": "view",
300
300
  "selector": "doc-anchor-row-item-list-view",
301
- "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}"
301
+ "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})\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}"
302
302
  },
303
303
  {
304
304
  "kind": "component",
305
305
  "className": "DocAnchorRowItemListViewItemComponent",
306
306
  "role": "item",
307
307
  "selector": "doc-anchor-row-item-list-view-item",
308
- "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}"
308
+ "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})\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}"
309
309
  },
310
310
  {
311
311
  "kind": "interface",
@@ -339,21 +339,21 @@
339
339
  "className": "DocProgressItemListComponent",
340
340
  "role": "list",
341
341
  "selector": "doc-progress-item-list",
342
- "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}"
342
+ "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})\nexport class DocProgressItemListComponent extends AbstractDbxSelectionListWrapperDirective<ProgressItemValue> {\n constructor() {\n super({\n componentClass: DocProgressItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
343
343
  },
344
344
  {
345
345
  "kind": "component",
346
346
  "className": "DocProgressItemListViewComponent",
347
347
  "role": "view",
348
348
  "selector": "doc-progress-item-list-view",
349
- "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}"
349
+ "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})\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}"
350
350
  },
351
351
  {
352
352
  "kind": "component",
353
353
  "className": "DocProgressItemListViewItemComponent",
354
354
  "role": "item",
355
355
  "selector": "doc-progress-item-list-view-item",
356
- "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}"
356
+ "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})\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}"
357
357
  },
358
358
  {
359
359
  "kind": "interface",
@@ -386,21 +386,21 @@
386
386
  "className": "DocTwoLineItemListComponent",
387
387
  "role": "list",
388
388
  "selector": "doc-two-line-item-list",
389
- "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}"
389
+ "classSource": "@Component({\n selector: 'doc-two-line-item-list',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule]\n})\nexport class DocTwoLineItemListComponent extends AbstractDbxSelectionListWrapperDirective<TwoLineItemValue> {\n constructor() {\n super({\n componentClass: DocTwoLineItemListViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}"
390
390
  },
391
391
  {
392
392
  "kind": "component",
393
393
  "className": "DocTwoLineItemListViewComponent",
394
394
  "role": "view",
395
395
  "selector": "doc-two-line-item-list-view",
396
- "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}"
396
+ "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})\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}"
397
397
  },
398
398
  {
399
399
  "kind": "component",
400
400
  "className": "DocTwoLineItemListViewItemComponent",
401
401
  "role": "item",
402
402
  "selector": "doc-two-line-item-list-view-item",
403
- "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}"
403
+ "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})\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}"
404
404
  },
405
405
  {
406
406
  "kind": "interface",
@@ -452,7 +452,7 @@
452
452
  "dbx-link-hover"
453
453
  ],
454
454
  "info": "<p>\n Composes a marketing-style support page out of Angular Material cards plus dbx-web's\n <code>&lt;dbx-button&gt;</code>\n ,\n <code>&lt;dbx-anchor&gt;</code>\n , and\n <code>&lt;dbx-icon-tile&gt;</code>\n : an outlined hero\n <code>&lt;mat-card&gt;</code>\n for the search/CTA row and a responsive grid of outlined topic\n <code>&lt;mat-card&gt;</code>\n boxes whose rows are individual\n <code>&lt;dbx-anchor [anchor]&gt;</code>\n click targets.\n</p>\n<p>\n The topic grid uses Angular Flex Layout's CSS-Grid directives —\n <code>gdColumns=\"repeat(auto-fit, minmax(320px, 1fr))\"</code>\n +\n <code>gdGap</code>\n — so the cards auto-collapse 3 → 2 → 1 columns as the viewport narrows, with no breakpoint media queries or wrapping\n <code>fxFlex</code>\n shells needed. The hero CTA + search row uses\n <code>fxLayout=\"row\"</code>\n with\n <code>fxLayout.lt-md=\"column\"</code>\n so it stacks below the tablet breakpoint. The CTA itself composes the\n <code>.dbx-grow-button</code>\n +\n <code>.dbx-button-big</code>\n utilities (full-width, taller mat-button) instead of hand-rolled\n <code>::ng-deep</code>\n width / height overrides.\n</p>\n<p>\n Topic-card avatars are\n <code>&lt;dbx-icon-tile [round]&gt;</code>\n with\n <code>dbxColor=\"primary\"</code>\n +\n <code>[dbxColorTone]=\"18\"</code>\n for the tonal swatch. Each card body is a plain\n <code>&lt;ul&gt;</code>\n /\n <code>&lt;li&gt;</code>\n so the browser's default disc marker supplies the bullet, and topic links use\n <code>[dbxTextColor]=\"'primary'\"</code>\n for the link color plus a\n <code>&lt;span class=\"dbx-link-hover\"&gt;</code>\n wrapper around the projected label for the hover-only-underline affordance. The\n <code>.dbx-link-hover</code>\n /\n <code>.dbx-link</code>\n utilities pair with\n <code>.dbx-u</code>\n —\n <code>.dbx-link</code>\n is always underlined,\n <code>.dbx-link-hover</code>\n underlines on hover, both keep a pointer cursor. The class lives on the projected\n <code>&lt;span&gt;</code>\n rather than the\n <code>&lt;dbx-anchor&gt;</code>\n host because\n <code>dbx-anchor</code>\n 's internal\n <code>&lt;a class=\"dbx-anchor-a\"&gt;</code>\n bakes in\n <code>text-decoration: none</code>\n and would strip a host-level\n <code>.dbx-link</code>\n .\n</p>\n<p>\n Each topic row supplies a\n <code>ClickableAnchor</code>\n with an\n <code>onClick</code>\n callback to\n <code>dbx-anchor</code>\n ; the callback opens a\n <code>MatSnackBar</code>\n with a \"Dismiss\" action so every link demonstrably triggers a button-bearing popup. Swap the\n <code>onClick</code>\n for a\n <code>ref</code>\n /\n <code>url</code>\n to route or open externally instead.\n</p>",
455
- "snippet": "<div class=\"dbx-p4 doc-support-page\">\n <h1 class=\"dbx-text-headline-large dbx-mb1\">Lorem Ipsum Support</h1>\n <p class=\"dbx-text-body-large dbx-mb4\">Dolor sit amet — we're here to help you succeed!</p>\n\n <mat-card appearance=\"outlined\" class=\"dbx-mb4\">\n <mat-card-content>\n <h3 class=\"dbx-text-title-medium dbx-mb3\">Need help? We're here.</h3>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxLayoutGap=\"var(--dbx-padding-3)\" fxLayoutAlign=\"start stretch\">\n <dbx-button class=\"dbx-grow-button dbx-button-form-field-height\" fxFlex=\"1 1 50%\" flat icon=\"help_outline\" text=\"Chat with Support\" customButtonColor=\"var(--mat-sys-inverse-surface)\" customTextColor=\"var(--mat-sys-inverse-on-surface)\" (buttonClick)=\"onChatClick()\"></dbx-button>\n <mat-form-field class=\"dbx-p0\" appearance=\"outline\" fxFlex=\"1 1 50%\" subscriptSizing=\"dynamic\">\n <input matInput placeholder=\"Search for a topic or question…\" />\n </mat-form-field>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div gdColumns=\"repeat(auto-fit, minmax(320px, 1fr))\" gdGap=\"var(--dbx-padding-5)\">\n @for (group of topics; track group.title) {\n <mat-card appearance=\"outlined\">\n <mat-card-content>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"var(--dbx-padding-2)\" class=\"dbx-mb3\">\n <dbx-icon-tile class=\"doc-support-topic-avatar\" [icon]=\"group.icon\" [round]=\"true\"></dbx-icon-tile>\n <span class=\"dbx-text-title-medium\">{{ group.title }}</span>\n </div>\n <ul class=\"doc-support-topic-links\">\n @for (link of group.links; track link.label) {\n <li class=\"dbx-pb2\">\n <dbx-anchor [dbxTextColor]=\"'primary'\" [anchor]=\"anchorFor(link)\">\n <span class=\"dbx-link-hover\">{{ link.label }}</span>\n </dbx-anchor>\n </li>\n }\n </ul>\n </mat-card-content>\n </mat-card>\n }\n </div>\n</div>",
455
+ "snippet": "<div class=\"dbx-p4 doc-support-page\">\n <h1 class=\"dbx-text-headline-large dbx-mb1\">Lorem Ipsum Support</h1>\n <p class=\"dbx-text-body-large dbx-mb4\">Dolor sit amet — we're here to help you succeed!</p>\n\n <mat-card appearance=\"outlined\" class=\"dbx-mb4\">\n <mat-card-content>\n <h3 class=\"dbx-text-title-medium dbx-mb3\">Need help? We're here.</h3>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxLayoutGap=\"var(--dbx-padding-3)\" fxLayoutAlign=\"start stretch\">\n <dbx-button class=\"dbx-grow-button dbx-button-form-field-height\" fxFlex=\"1 1 50%\" flat icon=\"help_outline\" text=\"Chat with Support\" [buttonStyle]=\"chatButtonStyle\" (buttonClick)=\"onChatClick()\"></dbx-button>\n <mat-form-field class=\"dbx-p0\" appearance=\"outline\" fxFlex=\"1 1 50%\" subscriptSizing=\"dynamic\">\n <input matInput placeholder=\"Search for a topic or question…\" />\n </mat-form-field>\n </div>\n </mat-card-content>\n </mat-card>\n\n <div gdColumns=\"repeat(auto-fit, minmax(320px, 1fr))\" gdGap=\"var(--dbx-padding-5)\">\n @for (group of topics; track group.title) {\n <mat-card appearance=\"outlined\">\n <mat-card-content>\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"var(--dbx-padding-2)\" class=\"dbx-mb3\">\n <dbx-icon-tile class=\"doc-support-topic-avatar\" [icon]=\"group.icon\" [round]=\"true\"></dbx-icon-tile>\n <span class=\"dbx-text-title-medium\">{{ group.title }}</span>\n </div>\n <ul class=\"doc-support-topic-links\">\n @for (link of group.links; track link.label) {\n <li class=\"dbx-pb2\">\n <dbx-anchor [dbxTextColor]=\"'primary'\" [anchor]=\"anchorFor(link)\">\n <span class=\"dbx-link-hover\">{{ link.label }}</span>\n </dbx-anchor>\n </li>\n }\n </ul>\n </mat-card-content>\n </mat-card>\n }\n </div>\n</div>",
456
456
  "uses": []
457
457
  }
458
458
  ]
@@ -22,7 +22,7 @@
22
22
  "optional": false
23
23
  }
24
24
  ],
25
- "returns": "`true` if the input is a Firebase {@link HttpsError }.",
25
+ "returns": "`true` if the input is a Firebase {@link HttpsError}.",
26
26
  "tags": [
27
27
  "firebase",
28
28
  "https",
@@ -56,7 +56,7 @@
56
56
  "optional": false
57
57
  }
58
58
  ],
59
- "returns": "`true` if the input is a Firebase Admin {@link admin.FirebaseError }.",
59
+ "returns": "`true` if the input is a Firebase Admin {@link admin.FirebaseError}.",
60
60
  "tags": [
61
61
  "firebase",
62
62
  "admin",
@@ -89,7 +89,7 @@
89
89
  "optional": false
90
90
  }
91
91
  ],
92
- "returns": "Structured {@link FirebaseServerErrorInfo } with classified error details.",
92
+ "returns": "Structured {@link FirebaseServerErrorInfo} with classified error details.",
93
93
  "tags": [
94
94
  "firebase",
95
95
  "error",
@@ -246,7 +246,7 @@
246
246
  {
247
247
  "name": "handleFirebaseErrorFn",
248
248
  "type": "ThrowErrorFunction<admin.FirebaseError>",
249
- "description": "- Handler that receives the typed {@link admin.FirebaseError }.",
249
+ "description": "- Handler that receives the typed {@link admin.FirebaseError}.",
250
250
  "optional": false
251
251
  }
252
252
  ],
@@ -270,6 +270,34 @@
270
270
  ],
271
271
  "notes": "Arbitrary string describing the kind of calendar a document is, driving its retention policy and its ICS\nemission config through the app's {@link CalendarTypeConfig} registry.\n\nOpen by design, exactly like {@link StorageFilePurpose}: a downstream app registers its own types without\na library change."
272
272
  },
273
+ {
274
+ "name": "FormSpaceType",
275
+ "package": "@dereekb/firebase",
276
+ "module": "src/lib/model/formspace/formspace.id",
277
+ "kind": "semantic-type",
278
+ "definition": "string",
279
+ "baseType": "string",
280
+ "topics": [
281
+ "identifier",
282
+ "string",
283
+ "dereekb-firebase:form-space"
284
+ ],
285
+ "notes": "Arbitrary string describing the kind of form a FormSpace holds, driving its upload restrictions, its\nexpiration policy, and the server-side handler its submission is dispatched to through the app's\n{@link FormSpaceTypeConfig} registry.\n\nOpen by design, exactly like {@link StorageFilePurpose} and {@link CalendarType}: a downstream app\nregisters its own types without a library change."
286
+ },
287
+ {
288
+ "name": "FormSpaceFileSlot",
289
+ "package": "@dereekb/firebase",
290
+ "module": "src/lib/model/formspace/formspace.id",
291
+ "kind": "semantic-type",
292
+ "definition": "string",
293
+ "baseType": "string",
294
+ "topics": [
295
+ "identifier",
296
+ "string",
297
+ "dereekb-firebase:form-space"
298
+ ],
299
+ "notes": "Names one upload \"slot\" within a FormSpace — the resume, the cover letter, the photo of the ID.\n\nA slot is stored on the uploaded {@link StorageFile} as its `pg` (purposeSubgroup), which is what makes\n\"replace the file in this slot\" the existing `flagPreviousForDelete` behaviour rather than new machinery."
300
+ },
273
301
  {
274
302
  "name": "NotificationTemplateType",
275
303
  "package": "@dereekb/firebase",
@@ -99,7 +99,7 @@
99
99
  "optional": false
100
100
  }
101
101
  ],
102
- "returns": "A {@link FirebaseServerError } if the error has structured details, or a generic readable error otherwise.",
102
+ "returns": "A {@link FirebaseServerError} if the error has structured details, or a generic readable error otherwise.",
103
103
  "tags": [
104
104
  "firebase",
105
105
  "https",
@@ -137,7 +137,7 @@
137
137
  "optional": false
138
138
  }
139
139
  ],
140
- "returns": "A {@link ReadableError } with a human-readable message suitable for display.",
140
+ "returns": "A {@link ReadableError} with a human-readable message suitable for display.",
141
141
  "tags": [
142
142
  "firebase",
143
143
  "auth",
@@ -1433,7 +1433,7 @@
1433
1433
  "optional": false
1434
1434
  }
1435
1435
  ],
1436
- "returns": "The same data object, now typed as {@link DocumentDataWithIdAndKey }",
1436
+ "returns": "The same data object, now typed as {@link DocumentDataWithIdAndKey}",
1437
1437
  "tags": [
1438
1438
  "firestore",
1439
1439
  "data",
@@ -1478,7 +1478,7 @@
1478
1478
  "optional": false
1479
1479
  }
1480
1480
  ],
1481
- "returns": "The same data object, now typed as {@link DocumentDataWithIdAndKey }",
1481
+ "returns": "The same data object, now typed as {@link DocumentDataWithIdAndKey}",
1482
1482
  "tags": [
1483
1483
  "firestore",
1484
1484
  "data",
@@ -1553,7 +1553,7 @@
1553
1553
  "category": "firestore",
1554
1554
  "module": "@dereekb/firebase",
1555
1555
  "subpath": "common/firestore/accessor/document.utility",
1556
- "signature": "useDocumentSnapshotData(): <D extends import(\"/home/circleci/code/packages/firebase/src/lib/common/firestore/accessor/document\").FirestoreDocument<any, import(\"/home/circleci/code/packages/firebase/src/lib/common/firestore/collection/collection\").FirestoreModelIdentity>, O = void>(document: Maybe<D>, use: UseAsync<import(\"/home/circleci/code/packages/firebase/src/lib/common/firestore/accessor/document\").FirestoreDocumentData<D>, O>, defaultValue?: Maybe<AsyncGetterOrValue<O>>) => Promise<Maybe<O>>",
1556
+ "signature": "useDocumentSnapshotData(): <D extends FirestoreDocument<any>, O = void>(document: Maybe<D>, use: UseAsync<import(\"/home/circleci/code/packages/firebase/src/lib/common/firestore/accessor/document\").FirestoreDocumentData<D>, O>, defaultValue?: any) => Promise<Maybe<O>>",
1557
1557
  "description": "Fetches a document's snapshot data (via `snapshot.data()`) and passes it to a `use` callback.\n\nWraps {@link useDocumentSnapshot} with a mapping step that extracts raw data from the snapshot.\nIf the document doesn't exist (data is `undefined`), the `use` callback is not invoked\nand `defaultValue` is returned instead.",
1558
1558
  "params": [],
1559
1559
  "returns": "The result of `use`, or the default value",
@@ -1798,7 +1798,7 @@
1798
1798
  "optional": false
1799
1799
  }
1800
1800
  ],
1801
- "returns": "A {@link LimitedFirestoreDocumentAccessorSnapshotCache } backed by the given accessor.",
1801
+ "returns": "A {@link LimitedFirestoreDocumentAccessorSnapshotCache} backed by the given accessor.",
1802
1802
  "tags": [
1803
1803
  "firestore",
1804
1804
  "cache",