@frame-kit/ui-ng-patterns 0.2.16 → 0.2.18
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frame-kit/ui-ng-patterns",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.18",
|
|
4
4
|
"description": "Opinionated, dashboard-ready Angular component patterns composed from @frame-kit/ui-ng.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"@angular/forms": "^21.2.0",
|
|
18
18
|
"@angular/platform-browser": "^21.2.0",
|
|
19
19
|
"@angular/router": "^21.2.0",
|
|
20
|
-
"@frame-kit/ui-ng": "0.2.
|
|
20
|
+
"@frame-kit/ui-ng": "0.2.18",
|
|
21
21
|
"rxjs": "^7.0.0"
|
|
22
22
|
},
|
|
23
23
|
"sideEffects": false,
|
|
@@ -1411,8 +1411,17 @@ interface NavSegment {
|
|
|
1411
1411
|
*/
|
|
1412
1412
|
declare class DashboardNavComponent {
|
|
1413
1413
|
readonly groups: _angular_core.InputSignal<DashboardNavGroup[]>;
|
|
1414
|
-
/**
|
|
1415
|
-
|
|
1414
|
+
/**
|
|
1415
|
+
* Icon-rail mode, passed through to every segment. Left `null` — the
|
|
1416
|
+
* default — each segment reads the collapse state of an ancestor
|
|
1417
|
+
* `fk-app-shell`, which is what `fk-dashboard-layout` is. Set it
|
|
1418
|
+
* explicitly only to drive the rail without a shell present.
|
|
1419
|
+
*
|
|
1420
|
+
* It defaults to inheriting rather than to `false` because the failure is
|
|
1421
|
+
* silent otherwise: a nav told nothing renders its expanded rows into a
|
|
1422
|
+
* collapsed rail and they are squashed, with no error to follow.
|
|
1423
|
+
*/
|
|
1424
|
+
readonly collapsed: _angular_core.InputSignal<boolean | null>;
|
|
1416
1425
|
/** Project `[navSlotBefore]` content immediately before this group. */
|
|
1417
1426
|
readonly slotBeforeGroupId: _angular_core.InputSignal<string | null>;
|
|
1418
1427
|
/** Project default `<ng-content>` immediately after this group. */
|
|
@@ -1420,6 +1429,10 @@ declare class DashboardNavComponent {
|
|
|
1420
1429
|
readonly className: _angular_core.InputSignal<string>;
|
|
1421
1430
|
readonly id: _angular_core.InputSignal<string | null>;
|
|
1422
1431
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
1432
|
+
private readonly layout;
|
|
1433
|
+
private readonly shell;
|
|
1434
|
+
/** The rail state in force: this input, else whichever ancestor owns it. */
|
|
1435
|
+
readonly isCollapsed: _angular_core.Signal<boolean>;
|
|
1423
1436
|
/**
|
|
1424
1437
|
* Visible groups sliced into render segments, each carrying a single-group
|
|
1425
1438
|
* `SidebarNavModel`.
|
|
@@ -1522,5 +1535,78 @@ declare class DashboardLayoutComponent {
|
|
|
1522
1535
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardLayoutComponent, "fk-dashboard-layout", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "sidenavWidth": { "alias": "sidenavWidth"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; "endMode": { "alias": "endMode"; "required": false; "isSignal": true; }; "endWidth": { "alias": "endWidth"; "required": false; "isSignal": true; }; "endCollapsedWidth": { "alias": "endCollapsedWidth"; "required": false; "isSignal": true; }; "pageLoading": { "alias": "pageLoading"; "required": false; "isSignal": true; }; "toggleAriaLabel": { "alias": "toggleAriaLabel"; "required": false; "isSignal": true; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["[layoutBanner]", "[layoutBrand]", "[layoutToggleIcon]", "[layoutAside]", "[layoutAsideFooter]", "[layoutContentPanel]", "[layoutMenuIcon]", "[layoutTopbarStart]", "[layoutTopbarEnd]", "*", "[layoutPageLoader]", "[layoutEnd]", "[layoutFooter]"], true, never>;
|
|
1523
1536
|
}
|
|
1524
1537
|
|
|
1525
|
-
|
|
1538
|
+
/**
|
|
1539
|
+
* A whole dashboard shell in one element: the collapsing aside and its
|
|
1540
|
+
* toggle, the brand block at its head, the icon-rail navigation, and the
|
|
1541
|
+
* banner, topbar, panel and footer slots a product hangs its own content
|
|
1542
|
+
* off.
|
|
1543
|
+
*
|
|
1544
|
+
* `fk-dashboard-layout` and `fk-dashboard-nav` remain the pieces to reach
|
|
1545
|
+
* for when a product wants a different arrangement. This is the arrangement
|
|
1546
|
+
* most products want, assembled once: every consumer that builds it by hand
|
|
1547
|
+
* repeats the same half-dozen bindings, and the ones that matter fail
|
|
1548
|
+
* quietly when forgotten rather than loudly.
|
|
1549
|
+
*
|
|
1550
|
+
* Everything a product supplies is projected on through, so nothing is
|
|
1551
|
+
* given up by using it: banners, a trailing panel, a second nav column
|
|
1552
|
+
* beside the page, switchers pinned into the rail.
|
|
1553
|
+
*
|
|
1554
|
+
* @example
|
|
1555
|
+
* ```html
|
|
1556
|
+
* <fk-dashboard-chrome
|
|
1557
|
+
* #chrome
|
|
1558
|
+
* brandText="Acme"
|
|
1559
|
+
* brandDescription="Admin"
|
|
1560
|
+
* brandHref="/"
|
|
1561
|
+
* [navGroups]="nav()"
|
|
1562
|
+
* >
|
|
1563
|
+
* <fk-icon-badge chromeBrandMark name="acme-mark" shape="rounded" size="sm" />
|
|
1564
|
+
* <nav chromeTopbarStart>…</nav>
|
|
1565
|
+
* <fk-user-menu chromeTopbarEnd … />
|
|
1566
|
+
* <router-outlet />
|
|
1567
|
+
* </fk-dashboard-chrome>
|
|
1568
|
+
* ```
|
|
1569
|
+
*/
|
|
1570
|
+
declare class DashboardChromeComponent {
|
|
1571
|
+
/** Product name beside the mark. */
|
|
1572
|
+
readonly brandText: _angular_core.InputSignal<string>;
|
|
1573
|
+
/** The line under it — which product this is. */
|
|
1574
|
+
readonly brandDescription: _angular_core.InputSignal<string>;
|
|
1575
|
+
/** Where the brand block navigates. */
|
|
1576
|
+
readonly brandHref: _angular_core.InputSignal<string>;
|
|
1577
|
+
/** Ordered nav groups, already filtered to what this reader may open. */
|
|
1578
|
+
readonly navGroups: _angular_core.InputSignal<DashboardNavGroup[]>;
|
|
1579
|
+
/** Group id the `[chromeNavBefore]` content is placed in front of. */
|
|
1580
|
+
readonly navSlotBeforeGroupId: _angular_core.InputSignal<string | null>;
|
|
1581
|
+
/** Group id the `[chromeNavAfter]` content follows. */
|
|
1582
|
+
readonly navSlotAfterGroupId: _angular_core.InputSignal<string | null>;
|
|
1583
|
+
/** Aside behaviour. `icon` leaves a rail behind when collapsed. */
|
|
1584
|
+
readonly mode: _angular_core.InputSignal<AppShellMode>;
|
|
1585
|
+
/** Trailing-panel behaviour, for a product that projects `[chromeEnd]`. */
|
|
1586
|
+
readonly endMode: _angular_core.InputSignal<AppShellMode>;
|
|
1587
|
+
/** Covers the content column while a routed page resolves. */
|
|
1588
|
+
readonly pageLoading: _angular_core.InputSignal<boolean>;
|
|
1589
|
+
readonly toggleAriaLabel: _angular_core.InputSignal<string>;
|
|
1590
|
+
readonly menuAriaLabel: _angular_core.InputSignal<string>;
|
|
1591
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
1592
|
+
private readonly layout;
|
|
1593
|
+
/**
|
|
1594
|
+
* Whether the aside is collapsed to its rail. For projected content that
|
|
1595
|
+
* has to follow it — a switcher pinned into the nav shrinks to its glyph
|
|
1596
|
+
* the same way the rows do.
|
|
1597
|
+
*/
|
|
1598
|
+
collapsed(): boolean;
|
|
1599
|
+
/** Whether the trailing panel is open. */
|
|
1600
|
+
endOpen(): boolean;
|
|
1601
|
+
/** Collapse the aside to its rail. */
|
|
1602
|
+
closeSidenav(): void;
|
|
1603
|
+
/** Open the trailing panel. */
|
|
1604
|
+
openEnd(): void;
|
|
1605
|
+
/** Close the trailing panel. */
|
|
1606
|
+
closeEnd(): void;
|
|
1607
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DashboardChromeComponent, never>;
|
|
1608
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DashboardChromeComponent, "fk-dashboard-chrome", never, { "brandText": { "alias": "brandText"; "required": false; "isSignal": true; }; "brandDescription": { "alias": "brandDescription"; "required": false; "isSignal": true; }; "brandHref": { "alias": "brandHref"; "required": false; "isSignal": true; }; "navGroups": { "alias": "navGroups"; "required": false; "isSignal": true; }; "navSlotBeforeGroupId": { "alias": "navSlotBeforeGroupId"; "required": false; "isSignal": true; }; "navSlotAfterGroupId": { "alias": "navSlotAfterGroupId"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "endMode": { "alias": "endMode"; "required": false; "isSignal": true; }; "pageLoading": { "alias": "pageLoading"; "required": false; "isSignal": true; }; "toggleAriaLabel": { "alias": "toggleAriaLabel"; "required": false; "isSignal": true; }; "menuAriaLabel": { "alias": "menuAriaLabel"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["[chromeBanner]", "[chromeBrandMark]", "[chromeNavBefore]", "[chromeNavAfter]", "[chromeTopbarStart]", "[chromeTopbarEnd]", "*", "[chromeContentPanel]", "[chromeEnd]", "[chromeFooter]"], true, never>;
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
export { BackNavComponent, ColumnsComponent, ContentColumnComponent, ContentColumnHeadlineComponent, ContentDetailHeaderComponent, ContentDetailPageComponent, ContentPageSectionComponent, ContentRowComponent, ContentSplitLayoutComponent, ContextSwitcherComponent, DashboardChromeComponent, DashboardLayoutComponent, DashboardNavComponent, DetailPanelComponent, DialogFooterComponent, DialogHeaderComponent, DialogShellComponent, InlineLoaderComponent, OnboardingGuideComponent, PageHeaderComponent, SearchBarLayoutComponent, SidebarNavComponent, SidebarNavItemDirective, TableEmptyStateComponent };
|
|
1526
1612
|
export type { ColumnsEmptyTracks, ContextSwitcherColumn, ContextSwitcherIconTone, ContextSwitcherOption, ContextSwitcherSelection, ContextSwitcherSublabelTone, DashboardNavChild, DashboardNavGroup, DashboardNavItem, DialogConfirmVariant, DialogHeaderTint, OnboardingStep, OnboardingSubstep, OnboardingSubstepToggle, SidebarNavChild, SidebarNavGroup, SidebarNavItem, SidebarNavLink, SidebarNavModel };
|