@dereekb/dbx-web 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.
- package/docs/README.md +10 -0
- package/eslint/index.cjs.js +8 -1
- package/eslint/index.esm.js +8 -1
- package/fesm2022/dereekb-dbx-web-calendar.mjs +9 -9
- package/fesm2022/dereekb-dbx-web-docs.mjs +146 -0
- package/fesm2022/dereekb-dbx-web-docs.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-web-mapbox.mjs +52 -52
- package/fesm2022/dereekb-dbx-web-table.mjs +77 -77
- package/fesm2022/dereekb-dbx-web.mjs +1438 -914
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/action/snackbar/_snackbar.scss +5 -0
- package/lib/button/_button.scss +27 -0
- package/lib/error/_error.scss +5 -0
- package/lib/extension/pdf/_pdf.scss +21 -59
- package/lib/interaction/dialog/_dialog.scss +5 -0
- package/lib/interaction/popover/_popover.scss +5 -0
- package/lib/interaction/popup/_popup.scss +5 -0
- package/lib/interaction/prompt/_prompt.scss +4 -0
- package/lib/interaction/upload/_upload.scss +15 -2
- package/lib/layout/avatar/_avatar.scss +26 -0
- package/lib/layout/bar/_bar.scss +27 -0
- package/lib/layout/block/_block.scss +4 -0
- package/lib/layout/column/_column.scss +3 -0
- package/lib/layout/content/_content.scss +29 -0
- package/lib/layout/flex/_flex.scss +37 -0
- package/lib/layout/list/_list.scss +99 -0
- package/lib/layout/section/_section.scss +7 -0
- package/lib/layout/style/_style.scss +49 -0
- package/lib/layout/text/_text.scss +298 -14
- package/lib/loading/_loading.scss +6 -0
- package/package.json +27 -14
- package/types/dereekb-dbx-web-docs.d.ts +73 -0
- package/types/dereekb-dbx-web.d.ts +521 -147
package/docs/README.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# @dereekb/dbx-web/docs
|
|
2
|
+
|
|
3
|
+
Documentation primitives for dbx-components apps. Provides the `<dbx-docs-ui-example>` component family that wraps a single self-contained UI example with a header, descriptive prose slot, runnable content slot, and optional imports/notes slots.
|
|
4
|
+
|
|
5
|
+
These components serve a dual purpose:
|
|
6
|
+
|
|
7
|
+
- **Runtime**: render documentation example pages in a downstream app (e.g. `apps/demo`).
|
|
8
|
+
- **MCP catalog source**: the `dbx-components-mcp` UI tools scan example components decorated with `@dbxDocsUiExample` JSDoc tags and use the stable `dbx-docs-ui-example*` selectors as deterministic anchors when extracting body, info, and content into the catalog manifest.
|
|
9
|
+
|
|
10
|
+
See `@dereekb/dbx-components-mcp` for the matching scanner and tag conventions.
|
package/eslint/index.cjs.js
CHANGED
|
@@ -378,7 +378,14 @@
|
|
|
378
378
|
}
|
|
379
379
|
});
|
|
380
380
|
var tokenBeforeImplements = implementsKeyword ? sourceCode.getTokenBefore(implementsKeyword) : null;
|
|
381
|
-
var startPos
|
|
381
|
+
var startPos;
|
|
382
|
+
if (tokenBeforeImplements) {
|
|
383
|
+
startPos = tokenBeforeImplements.range[1];
|
|
384
|
+
} else if (implementsKeyword) {
|
|
385
|
+
startPos = implementsKeyword.range[0];
|
|
386
|
+
} else {
|
|
387
|
+
startPos = clauseSpecifier.range[0];
|
|
388
|
+
}
|
|
382
389
|
result = [
|
|
383
390
|
startPos,
|
|
384
391
|
clauseSpecifier.range[1]
|
package/eslint/index.esm.js
CHANGED
|
@@ -376,7 +376,14 @@
|
|
|
376
376
|
}
|
|
377
377
|
});
|
|
378
378
|
var tokenBeforeImplements = implementsKeyword ? sourceCode.getTokenBefore(implementsKeyword) : null;
|
|
379
|
-
var startPos
|
|
379
|
+
var startPos;
|
|
380
|
+
if (tokenBeforeImplements) {
|
|
381
|
+
startPos = tokenBeforeImplements.range[1];
|
|
382
|
+
} else if (implementsKeyword) {
|
|
383
|
+
startPos = implementsKeyword.range[0];
|
|
384
|
+
} else {
|
|
385
|
+
startPos = clauseSpecifier.range[0];
|
|
386
|
+
}
|
|
380
387
|
result = [
|
|
381
388
|
startPos,
|
|
382
389
|
clauseSpecifier.range[1]
|
|
@@ -172,10 +172,10 @@ class DbxCalendarStore extends ComponentStore {
|
|
|
172
172
|
setNavigationRangeLimit = this.updater((state, navigationRangeLimit) => updateCalendarStateWithNavigationRangeLimit(state, navigationRangeLimit));
|
|
173
173
|
setShowTodayButton = this.updater((state, showTodayButton) => ({ ...state, showTodayButton: showTodayButton ?? true }));
|
|
174
174
|
setShowPageButtons = this.updater((state, showPageButtons) => ({ ...state, showPageButtons: showPageButtons ?? false }));
|
|
175
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
176
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
175
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxCalendarStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
176
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxCalendarStore });
|
|
177
177
|
}
|
|
178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxCalendarStore, decorators: [{
|
|
179
179
|
type: Injectable
|
|
180
180
|
}], ctorParameters: () => [] });
|
|
181
181
|
/**
|
|
@@ -290,10 +290,10 @@ class DbxCalendarBaseComponent {
|
|
|
290
290
|
typeToggleChanged(event) {
|
|
291
291
|
this.calendarStore.setDisplayType(event.value);
|
|
292
292
|
}
|
|
293
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
294
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
293
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxCalendarBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
294
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxCalendarBaseComponent, isStandalone: true, selector: "dbx-calendar-base", ngImport: i0, template: "<div class=\"dbx-calendar\">\n <h3 class=\"dbx-calendar-title\">{{ viewDateSignal() | calendarDate: displayTypeSignal() + 'ViewTitle' : 'en' }}</h3>\n <div class=\"dbx-calendar-header\">\n <div class=\"dbx-calendar-controls\" fxLayout=\"row\" fxLayout.xs=\"column\" ngClass.xs=\"dbx-calendar-controls-compact\">\n <span class=\"dbx-calendar-controls-left dbx-flex\" fxFlex=\"nogrow\">\n @if (showTodayButtonSignal()) {\n <button mat-stroked-button [disabled]=\"!canJumpToTodaySignal()\" (click)=\"todayClicked()\">Today</button>\n }\n <dbx-button-spacer></dbx-button-spacer>\n @if (hasMultiplePagesSignal()) {\n <div class=\"d-iblock\">\n @if (showPageButtonsSignal()) {\n <button mat-icon-button [disabled]=\"isLookingAtMinimumDateSignal()\" aria-label=\"first page button\" (click)=\"firstPageButtonClicked()\">\n <mat-icon>first_page</mat-icon>\n </button>\n }\n <button mat-icon-button [disabled]=\"isLookingAtMinimumDateSignal()\" [attr.aria-label]=\"'Previous ' + displayTypeSignal() + ' button'\" (click)=\"previousButtonClicked()\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n <button mat-icon-button [disabled]=\"isLookingAtMaximumDateSignal()\" [attr.aria-label]=\"'Next ' + displayTypeSignal() + ' button'\" (click)=\"nextButtonClicked()\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n @if (showPageButtonsSignal()) {\n <button mat-icon-button [disabled]=\"isLookingAtMaximumDateSignal()\" aria-label=\"last page button\" (click)=\"lastPageButtonClicked()\">\n <mat-icon>last_page</mat-icon>\n </button>\n }\n </div>\n }\n </span>\n <span class=\"spacer\"></span>\n <span class=\"dbx-calendar-controls-right\" fxFlex=\"nogrow\">\n <ng-content select=\"[controls]\"></ng-content>\n </span>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: CalendarDatePipe, name: "calendarDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
295
295
|
}
|
|
296
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxCalendarBaseComponent, decorators: [{
|
|
297
297
|
type: Component,
|
|
298
298
|
args: [{ selector: 'dbx-calendar-base', standalone: true, imports: [MatButtonModule, MatButtonToggleModule, DbxButtonSpacerDirective, MatIconModule, CalendarDatePipe, FlexLayoutModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dbx-calendar\">\n <h3 class=\"dbx-calendar-title\">{{ viewDateSignal() | calendarDate: displayTypeSignal() + 'ViewTitle' : 'en' }}</h3>\n <div class=\"dbx-calendar-header\">\n <div class=\"dbx-calendar-controls\" fxLayout=\"row\" fxLayout.xs=\"column\" ngClass.xs=\"dbx-calendar-controls-compact\">\n <span class=\"dbx-calendar-controls-left dbx-flex\" fxFlex=\"nogrow\">\n @if (showTodayButtonSignal()) {\n <button mat-stroked-button [disabled]=\"!canJumpToTodaySignal()\" (click)=\"todayClicked()\">Today</button>\n }\n <dbx-button-spacer></dbx-button-spacer>\n @if (hasMultiplePagesSignal()) {\n <div class=\"d-iblock\">\n @if (showPageButtonsSignal()) {\n <button mat-icon-button [disabled]=\"isLookingAtMinimumDateSignal()\" aria-label=\"first page button\" (click)=\"firstPageButtonClicked()\">\n <mat-icon>first_page</mat-icon>\n </button>\n }\n <button mat-icon-button [disabled]=\"isLookingAtMinimumDateSignal()\" [attr.aria-label]=\"'Previous ' + displayTypeSignal() + ' button'\" (click)=\"previousButtonClicked()\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n <button mat-icon-button [disabled]=\"isLookingAtMaximumDateSignal()\" [attr.aria-label]=\"'Next ' + displayTypeSignal() + ' button'\" (click)=\"nextButtonClicked()\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n @if (showPageButtonsSignal()) {\n <button mat-icon-button [disabled]=\"isLookingAtMaximumDateSignal()\" aria-label=\"last page button\" (click)=\"lastPageButtonClicked()\">\n <mat-icon>last_page</mat-icon>\n </button>\n }\n </div>\n }\n </span>\n <span class=\"spacer\"></span>\n <span class=\"dbx-calendar-controls-right\" fxFlex=\"nogrow\">\n <ng-content select=\"[controls]\"></ng-content>\n </span>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n" }]
|
|
299
299
|
}] });
|
|
@@ -333,10 +333,10 @@ class DbxCalendarComponent {
|
|
|
333
333
|
typeToggleChanged(event) {
|
|
334
334
|
this.calendarStore.setDisplayType(event.value);
|
|
335
335
|
}
|
|
336
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
337
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
336
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
337
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxCalendarComponent, isStandalone: true, selector: "dbx-calendar", outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<dbx-calendar-base>\n <ng-container controls>\n <mat-button-toggle-group name=\"calendarDisplayStyle\" [value]=\"displayTypeSignal()\" (change)=\"typeToggleChanged($event)\" aria-label=\"Display Style\">\n <mat-button-toggle value=\"month\">Month</mat-button-toggle>\n <mat-button-toggle value=\"week\">Week</mat-button-toggle>\n <mat-button-toggle value=\"day\">Day</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n <div class=\"dbx-calendar-content\" [ngClass]=\"displayTypeClassSignal()\">\n @switch (displayTypeSignal()) {\n @case ('month') {\n <mwl-calendar-month-view [viewDate]=\"viewDateSignal()\" [events]=\"eventsSignal()\" [activeDayIsOpen]=\"activeDayIsOpenSignal()\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-month-view>\n }\n @case ('week') {\n <mwl-calendar-week-view [viewDate]=\"viewDateSignal()\" [events]=\"eventsSignal()\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-week-view>\n }\n @case ('day') {\n <mwl-calendar-day-view [viewDate]=\"viewDateSignal()\" [events]=\"eventsSignal()\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-day-view>\n }\n }\n </div>\n</dbx-calendar-base>\n", dependencies: [{ kind: "component", type: DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "component", type: CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: CalendarDayViewComponent, selector: "mwl-calendar-day-view", inputs: ["viewDate", "events", "hourSegments", "hourSegmentHeight", "hourDuration", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "refresh", "locale", "eventSnapSize", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "hourSegmentTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "snapDraggedEvents", "allDayEventsLabelTemplate", "currentTimeMarkerTemplate", "validateEventTimesChanged", "resizeCursors"], outputs: ["eventClicked", "hourSegmentClicked", "eventTimesChanged", "beforeViewRender"] }, { kind: "component", type: CalendarWeekViewComponent, selector: "mwl-calendar-week-view", inputs: ["viewDate", "events", "excludeDays", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "precision", "weekendDays", "snapDraggedEvents", "hourSegments", "hourDuration", "hourSegmentHeight", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "hourSegmentTemplate", "eventSnapSize", "allDayEventsLabelTemplate", "daysInWeek", "currentTimeMarkerTemplate", "validateEventTimesChanged", "resizeCursors"], outputs: ["dayHeaderClicked", "eventClicked", "eventTimesChanged", "beforeViewRender", "hourSegmentClicked"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
338
338
|
}
|
|
339
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxCalendarComponent, decorators: [{
|
|
340
340
|
type: Component,
|
|
341
341
|
args: [{ selector: 'dbx-calendar', imports: [DbxCalendarBaseComponent, CalendarMonthViewComponent, CalendarDayViewComponent, CalendarWeekViewComponent, MatButtonToggleModule, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-calendar-base>\n <ng-container controls>\n <mat-button-toggle-group name=\"calendarDisplayStyle\" [value]=\"displayTypeSignal()\" (change)=\"typeToggleChanged($event)\" aria-label=\"Display Style\">\n <mat-button-toggle value=\"month\">Month</mat-button-toggle>\n <mat-button-toggle value=\"week\">Week</mat-button-toggle>\n <mat-button-toggle value=\"day\">Day</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n <div class=\"dbx-calendar-content\" [ngClass]=\"displayTypeClassSignal()\">\n @switch (displayTypeSignal()) {\n @case ('month') {\n <mwl-calendar-month-view [viewDate]=\"viewDateSignal()\" [events]=\"eventsSignal()\" [activeDayIsOpen]=\"activeDayIsOpenSignal()\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-month-view>\n }\n @case ('week') {\n <mwl-calendar-week-view [viewDate]=\"viewDateSignal()\" [events]=\"eventsSignal()\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-week-view>\n }\n @case ('day') {\n <mwl-calendar-day-view [viewDate]=\"viewDateSignal()\" [events]=\"eventsSignal()\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-day-view>\n }\n }\n </div>\n</dbx-calendar-base>\n" }]
|
|
342
342
|
}], propDecorators: { clickEvent: [{ type: i0.Output, args: ["clickEvent"] }] } });
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { DbxSectionComponent } from '@dereekb/dbx-web';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Wrapper for a single self-contained documentation UI example.
|
|
7
|
+
*
|
|
8
|
+
* The `<dbx-docs-ui-example>` element is the parser contract for the
|
|
9
|
+
* `@dereekb/dbx-components-mcp` UI examples scanner: every example component
|
|
10
|
+
* tagged with `@dbxDocsUiExample` must render exactly one of these as the
|
|
11
|
+
* template root, with the runnable snippet placed inside
|
|
12
|
+
* `<dbx-docs-ui-example-content>` and descriptive prose inside
|
|
13
|
+
* `<dbx-docs-ui-example-info>`. Optional `<dbx-docs-ui-example-imports>` and
|
|
14
|
+
* `<dbx-docs-ui-example-notes>` slots are also picked up by the scanner.
|
|
15
|
+
*
|
|
16
|
+
* Selector and child element names are stable — renaming them would break
|
|
17
|
+
* the scanner's deterministic anchors, so treat the names as a public
|
|
18
|
+
* contract on par with a JSDoc tag vocabulary.
|
|
19
|
+
*/
|
|
20
|
+
class DbxDocsUiExampleComponent {
|
|
21
|
+
header = input.required(...(ngDevMode ? [{ debugName: "header" }] : /* istanbul ignore next */ []));
|
|
22
|
+
hint = input(undefined, ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: DbxDocsUiExampleComponent, isStandalone: true, selector: "dbx-docs-ui-example", inputs: { header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: true, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
25
|
+
<div class="dbx-docs-ui-example dbx-content-border">
|
|
26
|
+
<dbx-section [h]="3" [header]="header()" [hint]="hint()">
|
|
27
|
+
<ng-content></ng-content>
|
|
28
|
+
</dbx-section>
|
|
29
|
+
</div>
|
|
30
|
+
`, isInline: true, styles: [".dbx-docs-ui-example{display:block;margin-bottom:12px}\n"], dependencies: [{ kind: "component", type: DbxSectionComponent, selector: "dbx-section", inputs: ["elevate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: 'dbx-docs-ui-example', template: `
|
|
35
|
+
<div class="dbx-docs-ui-example dbx-content-border">
|
|
36
|
+
<dbx-section [h]="3" [header]="header()" [hint]="hint()">
|
|
37
|
+
<ng-content></ng-content>
|
|
38
|
+
</dbx-section>
|
|
39
|
+
</div>
|
|
40
|
+
`, imports: [DbxSectionComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".dbx-docs-ui-example{display:block;margin-bottom:12px}\n"] }]
|
|
41
|
+
}], propDecorators: { header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: true }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }] } });
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Descriptive prose slot inside a `<dbx-docs-ui-example>`.
|
|
45
|
+
*
|
|
46
|
+
* The MCP scanner extracts the projected content as the example entry's
|
|
47
|
+
* `info` field. Multiple `<dbx-docs-ui-example-info>` children are joined in
|
|
48
|
+
* source order. Free-form HTML / inline markdown is allowed.
|
|
49
|
+
*/
|
|
50
|
+
class DbxDocsUiExampleInfoComponent {
|
|
51
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxDocsUiExampleInfoComponent, isStandalone: true, selector: "dbx-docs-ui-example-info", ngImport: i0, template: `
|
|
53
|
+
<div class="dbx-docs-ui-example-info">
|
|
54
|
+
<ng-content></ng-content>
|
|
55
|
+
</div>
|
|
56
|
+
`, isInline: true, styles: [".dbx-docs-ui-example-info{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleInfoComponent, decorators: [{
|
|
59
|
+
type: Component,
|
|
60
|
+
args: [{ selector: 'dbx-docs-ui-example-info', template: `
|
|
61
|
+
<div class="dbx-docs-ui-example-info">
|
|
62
|
+
<ng-content></ng-content>
|
|
63
|
+
</div>
|
|
64
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".dbx-docs-ui-example-info{display:block}\n"] }]
|
|
65
|
+
}] });
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Runnable-snippet slot inside a `<dbx-docs-ui-example>`.
|
|
69
|
+
*
|
|
70
|
+
* The MCP scanner extracts the projected HTML body as the example entry's
|
|
71
|
+
* `snippet` field. Whatever is inside this element is treated as the literal
|
|
72
|
+
* code shown to LLM consumers — keep it minimal, copy-paste-ready, and free of
|
|
73
|
+
* documentation-only chrome.
|
|
74
|
+
*/
|
|
75
|
+
class DbxDocsUiExampleContentComponent {
|
|
76
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxDocsUiExampleContentComponent, isStandalone: true, selector: "dbx-docs-ui-example-content", ngImport: i0, template: `
|
|
78
|
+
<div class="dbx-docs-ui-example-content">
|
|
79
|
+
<ng-content></ng-content>
|
|
80
|
+
</div>
|
|
81
|
+
`, isInline: true, styles: [".dbx-docs-ui-example-content{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
82
|
+
}
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleContentComponent, decorators: [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'dbx-docs-ui-example-content', template: `
|
|
86
|
+
<div class="dbx-docs-ui-example-content">
|
|
87
|
+
<ng-content></ng-content>
|
|
88
|
+
</div>
|
|
89
|
+
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".dbx-docs-ui-example-content{display:block}\n"] }]
|
|
90
|
+
}] });
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Optional `import { … }` block slot inside a `<dbx-docs-ui-example>`.
|
|
94
|
+
*
|
|
95
|
+
* The MCP scanner extracts the projected text as the example entry's optional
|
|
96
|
+
* `imports` field. Use this for the import lines a consumer would copy along
|
|
97
|
+
* with the runnable snippet.
|
|
98
|
+
*/
|
|
99
|
+
class DbxDocsUiExampleImportsComponent {
|
|
100
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleImportsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
101
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxDocsUiExampleImportsComponent, isStandalone: true, selector: "dbx-docs-ui-example-imports", ngImport: i0, template: `
|
|
102
|
+
<ng-content></ng-content>
|
|
103
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
104
|
+
}
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleImportsComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{
|
|
108
|
+
selector: 'dbx-docs-ui-example-imports',
|
|
109
|
+
template: `
|
|
110
|
+
<ng-content></ng-content>
|
|
111
|
+
`,
|
|
112
|
+
standalone: true,
|
|
113
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
114
|
+
}]
|
|
115
|
+
}] });
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Optional footnotes slot inside a `<dbx-docs-ui-example>`.
|
|
119
|
+
*
|
|
120
|
+
* The MCP scanner extracts the projected content as the example entry's
|
|
121
|
+
* optional `notes` field, appended to `full`-depth output.
|
|
122
|
+
*/
|
|
123
|
+
class DbxDocsUiExampleNotesComponent {
|
|
124
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleNotesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.11", type: DbxDocsUiExampleNotesComponent, isStandalone: true, selector: "dbx-docs-ui-example-notes", ngImport: i0, template: `
|
|
126
|
+
<ng-content></ng-content>
|
|
127
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
128
|
+
}
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDocsUiExampleNotesComponent, decorators: [{
|
|
130
|
+
type: Component,
|
|
131
|
+
args: [{
|
|
132
|
+
selector: 'dbx-docs-ui-example-notes',
|
|
133
|
+
template: `
|
|
134
|
+
<ng-content></ng-content>
|
|
135
|
+
`,
|
|
136
|
+
standalone: true,
|
|
137
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
138
|
+
}]
|
|
139
|
+
}] });
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Generated bundle index. Do not edit.
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
export { DbxDocsUiExampleComponent, DbxDocsUiExampleContentComponent, DbxDocsUiExampleImportsComponent, DbxDocsUiExampleInfoComponent, DbxDocsUiExampleNotesComponent };
|
|
146
|
+
//# sourceMappingURL=dereekb-dbx-web-docs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dereekb-dbx-web-docs.mjs","sources":["../../../../packages/dbx-web/docs/src/lib/ui.example.component.ts","../../../../packages/dbx-web/docs/src/lib/ui.example.info.component.ts","../../../../packages/dbx-web/docs/src/lib/ui.example.content.component.ts","../../../../packages/dbx-web/docs/src/lib/ui.example.imports.component.ts","../../../../packages/dbx-web/docs/src/lib/ui.example.notes.component.ts","../../../../packages/dbx-web/docs/src/dereekb-dbx-web-docs.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { DbxSectionComponent } from '@dereekb/dbx-web';\n\n/**\n * Wrapper for a single self-contained documentation UI example.\n *\n * The `<dbx-docs-ui-example>` element is the parser contract for the\n * `@dereekb/dbx-components-mcp` UI examples scanner: every example component\n * tagged with `@dbxDocsUiExample` must render exactly one of these as the\n * template root, with the runnable snippet placed inside\n * `<dbx-docs-ui-example-content>` and descriptive prose inside\n * `<dbx-docs-ui-example-info>`. Optional `<dbx-docs-ui-example-imports>` and\n * `<dbx-docs-ui-example-notes>` slots are also picked up by the scanner.\n *\n * Selector and child element names are stable — renaming them would break\n * the scanner's deterministic anchors, so treat the names as a public\n * contract on par with a JSDoc tag vocabulary.\n */\n@Component({\n selector: 'dbx-docs-ui-example',\n template: `\n <div class=\"dbx-docs-ui-example dbx-content-border\">\n <dbx-section [h]=\"3\" [header]=\"header()\" [hint]=\"hint()\">\n <ng-content></ng-content>\n </dbx-section>\n </div>\n `,\n styles: [\n `\n .dbx-docs-ui-example {\n display: block;\n margin-bottom: 12px;\n }\n `\n ],\n imports: [DbxSectionComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDocsUiExampleComponent {\n readonly header = input.required<string>();\n readonly hint = input<string | undefined>(undefined);\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Descriptive prose slot inside a `<dbx-docs-ui-example>`.\n *\n * The MCP scanner extracts the projected content as the example entry's\n * `info` field. Multiple `<dbx-docs-ui-example-info>` children are joined in\n * source order. Free-form HTML / inline markdown is allowed.\n */\n@Component({\n selector: 'dbx-docs-ui-example-info',\n template: `\n <div class=\"dbx-docs-ui-example-info\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [\n `\n .dbx-docs-ui-example-info {\n display: block;\n }\n `\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDocsUiExampleInfoComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Runnable-snippet slot inside a `<dbx-docs-ui-example>`.\n *\n * The MCP scanner extracts the projected HTML body as the example entry's\n * `snippet` field. Whatever is inside this element is treated as the literal\n * code shown to LLM consumers — keep it minimal, copy-paste-ready, and free of\n * documentation-only chrome.\n */\n@Component({\n selector: 'dbx-docs-ui-example-content',\n template: `\n <div class=\"dbx-docs-ui-example-content\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [\n `\n .dbx-docs-ui-example-content {\n display: block;\n }\n `\n ],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDocsUiExampleContentComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Optional `import { … }` block slot inside a `<dbx-docs-ui-example>`.\n *\n * The MCP scanner extracts the projected text as the example entry's optional\n * `imports` field. Use this for the import lines a consumer would copy along\n * with the runnable snippet.\n */\n@Component({\n selector: 'dbx-docs-ui-example-imports',\n template: `\n <ng-content></ng-content>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDocsUiExampleImportsComponent {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Optional footnotes slot inside a `<dbx-docs-ui-example>`.\n *\n * The MCP scanner extracts the projected content as the example entry's\n * optional `notes` field, appended to `full`-depth output.\n */\n@Component({\n selector: 'dbx-docs-ui-example-notes',\n template: `\n <ng-content></ng-content>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDocsUiExampleNotesComponent {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|