@frame-kit/ui-ng-patterns 0.1.6 → 0.1.8
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.
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { TemplateRef } from '@angular/core';
|
|
3
3
|
import { HeadlineLevel } from '@frame-kit/ui-ng/core/headline';
|
|
4
|
+
import * as i1 from '@angular/cdk/drag-drop';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Page-level dashboard header: title + optional description on the left, up to
|
|
@@ -38,8 +39,14 @@ declare class PageHeaderComponent {
|
|
|
38
39
|
readonly title: _angular_core.InputSignal<string>;
|
|
39
40
|
readonly description: _angular_core.InputSignal<string | null>;
|
|
40
41
|
readonly headingLevel: _angular_core.InputSignal<HeadlineLevel>;
|
|
42
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
43
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
44
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
45
|
+
readonly classes: _angular_core.Signal<string>;
|
|
46
|
+
get hostClass(): string;
|
|
47
|
+
get hostId(): string | null;
|
|
41
48
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageHeaderComponent, never>;
|
|
42
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageHeaderComponent, "fk-page-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; }, {}, never, ["[pageHeaderLeading]", "[pageHeaderTrailing]", "[pageHeaderActions]"], true, never>;
|
|
49
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageHeaderComponent, "fk-page-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "headingLevel": { "alias": "headingLevel"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["[pageHeaderLeading]", "[pageHeaderTrailing]", "[pageHeaderActions]"], true, never>;
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
/**
|
|
@@ -89,9 +96,13 @@ declare class TableEmptyStateComponent {
|
|
|
89
96
|
declare class ContentSplitLayoutComponent {
|
|
90
97
|
readonly endWidth: _angular_core.InputSignal<string | null>;
|
|
91
98
|
readonly gap: _angular_core.InputSignal<string>;
|
|
92
|
-
readonly
|
|
99
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
100
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
101
|
+
readonly classes: _angular_core.Signal<string>;
|
|
102
|
+
get hostClass(): string;
|
|
103
|
+
get hostId(): string | null;
|
|
93
104
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContentSplitLayoutComponent, never>;
|
|
94
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContentSplitLayoutComponent, "fk-content-split-layout", never, { "endWidth": { "alias": "endWidth"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; }, {}, never, ["[start]", "[end]"], true, never>;
|
|
105
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContentSplitLayoutComponent, "fk-content-split-layout", never, { "endWidth": { "alias": "endWidth"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["[start]", "[end]"], true, never>;
|
|
95
106
|
}
|
|
96
107
|
|
|
97
108
|
/**
|
|
@@ -579,5 +590,365 @@ declare class DialogFooterComponent {
|
|
|
579
590
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogFooterComponent, "fk-dialog-footer", never, { "note": { "alias": "note"; "required": false; "isSignal": true; }; "noteIcon": { "alias": "noteIcon"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
580
591
|
}
|
|
581
592
|
|
|
582
|
-
|
|
583
|
-
|
|
593
|
+
/**
|
|
594
|
+
* A single item inside a grouped step's sub-checklist. The consumer owns the
|
|
595
|
+
* `done` state — the widget only reflects it and emits toggles.
|
|
596
|
+
*/
|
|
597
|
+
interface OnboardingSubstep {
|
|
598
|
+
/** Stable identifier, unique within the parent step. */
|
|
599
|
+
id: string;
|
|
600
|
+
/** Human-readable label. */
|
|
601
|
+
label: string;
|
|
602
|
+
/** Whether this substep is complete. */
|
|
603
|
+
done: boolean;
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* A step in the onboarding guide. A step is either:
|
|
607
|
+
*
|
|
608
|
+
* - a **leaf** step — has an optional `description` + a call-to-action, and its
|
|
609
|
+
* completion is driven by the `done` flag, or
|
|
610
|
+
* - a **group** step — carries `substeps`, and is considered complete once every
|
|
611
|
+
* substep is `done` (the top-level `done` flag is ignored for group steps).
|
|
612
|
+
*
|
|
613
|
+
* All state (`done`) is owned by the consumer; the widget is a controlled view
|
|
614
|
+
* of the `steps` model and emits events when the user acts.
|
|
615
|
+
*/
|
|
616
|
+
interface OnboardingStep {
|
|
617
|
+
/** Stable identifier, unique within the guide. */
|
|
618
|
+
id: string;
|
|
619
|
+
/** Human-readable label shown on the step row. */
|
|
620
|
+
label: string;
|
|
621
|
+
/** Whether a leaf step is complete. Ignored when `substeps` is set. */
|
|
622
|
+
done: boolean;
|
|
623
|
+
/** Optional supporting copy shown when the step is expanded. */
|
|
624
|
+
description?: string;
|
|
625
|
+
/** Optional call-to-action label (defaults to a generic "Start"). */
|
|
626
|
+
actionLabel?: string;
|
|
627
|
+
/** When set, the step renders a sub-checklist and auto-completes when all are done. */
|
|
628
|
+
substeps?: OnboardingSubstep[];
|
|
629
|
+
}
|
|
630
|
+
/** Payload emitted when a substep checkbox is toggled. */
|
|
631
|
+
interface OnboardingSubstepToggle {
|
|
632
|
+
stepId: string;
|
|
633
|
+
substepId: string;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
interface Point {
|
|
637
|
+
x: number;
|
|
638
|
+
y: number;
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* A floating, draggable onboarding-progress widget. It presents a checklist of
|
|
642
|
+
* steps with a progress bar, collapses to a compact pill with a progress ring,
|
|
643
|
+
* and can be dragged anywhere on screen (CDK drag). It renders over the app in
|
|
644
|
+
* a fixed layer — drop it once near the app root.
|
|
645
|
+
*
|
|
646
|
+
* **Controlled model, no domain data.** The `steps` model is a required,
|
|
647
|
+
* reactive input: the widget is a pure view of it and emits events when the
|
|
648
|
+
* user acts (`stepAction`, `stepMarkDone`, `substepToggle`, `goLive`). The
|
|
649
|
+
* consumer owns the step state — so if it is keyed by, say, the active account
|
|
650
|
+
* or environment, swapping the input re-renders the widget instantly. The
|
|
651
|
+
* widget never persists step state.
|
|
652
|
+
*
|
|
653
|
+
* **Presentation state is internal + persisted.** Collapsed and drag position
|
|
654
|
+
* live in the widget and persist to `localStorage` under `storageKey` — these
|
|
655
|
+
* are UI preferences, not part of the model.
|
|
656
|
+
*
|
|
657
|
+
* **Opinionated but themeable.** It ships a house look out of the box; all
|
|
658
|
+
* colour flows through `--fk-onboarding-guide-*` tokens, so overriding those
|
|
659
|
+
* (e.g. pointing them at a brand scale) retints it without touching the markup.
|
|
660
|
+
*
|
|
661
|
+
* ```html
|
|
662
|
+
* <fk-onboarding-guide
|
|
663
|
+
* [steps]="steps()"
|
|
664
|
+
* title="Setup guide"
|
|
665
|
+
* (stepAction)="onStart($event)"
|
|
666
|
+
* (substepToggle)="onToggle($event)"
|
|
667
|
+
* (goLive)="onGoLive()"
|
|
668
|
+
* (dismiss)="onDismiss()"
|
|
669
|
+
* />
|
|
670
|
+
* ```
|
|
671
|
+
*/
|
|
672
|
+
declare class OnboardingGuideComponent {
|
|
673
|
+
private readonly host;
|
|
674
|
+
private readonly drag;
|
|
675
|
+
private readonly destroyRef;
|
|
676
|
+
/** The step model. Controlled by the consumer; the widget is a view of it. */
|
|
677
|
+
readonly steps: _angular_core.InputSignal<OnboardingStep[]>;
|
|
678
|
+
/** Widget title. */
|
|
679
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
680
|
+
/** `localStorage` key for the collapsed + drag-position preferences. */
|
|
681
|
+
readonly storageKey: _angular_core.InputSignal<string>;
|
|
682
|
+
/** Initial collapsed state, used only when nothing is persisted yet. */
|
|
683
|
+
readonly startCollapsed: _angular_core.InputSignal<boolean>;
|
|
684
|
+
/** Default CTA label when a step doesn't supply its own `actionLabel`. */
|
|
685
|
+
readonly startLabel: _angular_core.InputSignal<string>;
|
|
686
|
+
/** Secondary "mark this step done" action label. */
|
|
687
|
+
readonly markDoneLabel: _angular_core.InputSignal<string>;
|
|
688
|
+
/** Footer / final go-live action label. */
|
|
689
|
+
readonly goLiveLabel: _angular_core.InputSignal<string>;
|
|
690
|
+
/** Footer noun for the "{done} of {total} {stepsWord} {doneWord}" summary. */
|
|
691
|
+
readonly stepsWord: _angular_core.InputSignal<string>;
|
|
692
|
+
/** Footer verb for the summary. */
|
|
693
|
+
readonly doneWord: _angular_core.InputSignal<string>;
|
|
694
|
+
/** Collapsed-pill suffix, e.g. "3 steps left". */
|
|
695
|
+
readonly stepsLeftWord: _angular_core.InputSignal<string>;
|
|
696
|
+
/** Collapsed-pill copy shown when everything is complete. */
|
|
697
|
+
readonly allDoneLabel: _angular_core.InputSignal<string>;
|
|
698
|
+
/** ARIA labels for the icon-only header controls. */
|
|
699
|
+
readonly renameLabel: _angular_core.InputSignal<string>;
|
|
700
|
+
readonly collapseLabel: _angular_core.InputSignal<string>;
|
|
701
|
+
readonly dismissLabel: _angular_core.InputSignal<string>;
|
|
702
|
+
readonly expandLabel: _angular_core.InputSignal<string>;
|
|
703
|
+
readonly checkIcon: _angular_core.InputSignal<string>;
|
|
704
|
+
readonly caretIcon: _angular_core.InputSignal<string>;
|
|
705
|
+
readonly editIcon: _angular_core.InputSignal<string>;
|
|
706
|
+
readonly collapseIcon: _angular_core.InputSignal<string>;
|
|
707
|
+
readonly dismissIcon: _angular_core.InputSignal<string>;
|
|
708
|
+
readonly expandIcon: _angular_core.InputSignal<string>;
|
|
709
|
+
readonly actionIcon: _angular_core.InputSignal<string>;
|
|
710
|
+
/** A step's primary CTA was clicked. Emits the step id. */
|
|
711
|
+
readonly stepAction: _angular_core.OutputEmitterRef<string>;
|
|
712
|
+
/** A step's "mark done" was clicked. Emits the step id. */
|
|
713
|
+
readonly stepMarkDone: _angular_core.OutputEmitterRef<string>;
|
|
714
|
+
/** A substep checkbox was toggled. */
|
|
715
|
+
readonly substepToggle: _angular_core.OutputEmitterRef<OnboardingSubstepToggle>;
|
|
716
|
+
/** The final go-live action was invoked (footer or the go-live step CTA). */
|
|
717
|
+
readonly goLive: _angular_core.OutputEmitterRef<void>;
|
|
718
|
+
/** The rename (edit) affordance was clicked; the consumer owns renaming. */
|
|
719
|
+
readonly renameClick: _angular_core.OutputEmitterRef<void>;
|
|
720
|
+
/** The dismiss control was clicked; the consumer decides whether to hide it. */
|
|
721
|
+
readonly dismiss: _angular_core.OutputEmitterRef<void>;
|
|
722
|
+
/** Fires when the collapsed state changes. */
|
|
723
|
+
readonly collapsedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
724
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
725
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
726
|
+
protected readonly collapsed: _angular_core.WritableSignal<boolean>;
|
|
727
|
+
protected readonly dragPosition: _angular_core.WritableSignal<Point>;
|
|
728
|
+
/** True immediately after a real drag, so the drag-handle's click (e.g. the
|
|
729
|
+
* pill's expand) is suppressed rather than firing at the drop point. */
|
|
730
|
+
private justDragged;
|
|
731
|
+
/**
|
|
732
|
+
* The expanded step. A `linkedSignal` over `steps` so that whenever the model
|
|
733
|
+
* changes (e.g. the consumer swaps in another account/environment's steps) it
|
|
734
|
+
* resets to the first incomplete step; user toggles override until the next
|
|
735
|
+
* model change.
|
|
736
|
+
*/
|
|
737
|
+
protected readonly openStepId: _angular_core.WritableSignal<string | null>;
|
|
738
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
739
|
+
protected readonly doneCount: _angular_core.Signal<number>;
|
|
740
|
+
protected readonly percent: _angular_core.Signal<number>;
|
|
741
|
+
protected readonly stepsLeft: _angular_core.Signal<number>;
|
|
742
|
+
protected readonly complete: _angular_core.Signal<boolean>;
|
|
743
|
+
/** Circumference for the pill's progress ring (r = 16). */
|
|
744
|
+
protected readonly ringCircumference: number;
|
|
745
|
+
protected readonly ringOffset: _angular_core.Signal<number>;
|
|
746
|
+
readonly classes: _angular_core.Signal<string>;
|
|
747
|
+
get hostClass(): string;
|
|
748
|
+
get hostId(): string | null;
|
|
749
|
+
constructor();
|
|
750
|
+
isComplete(step: OnboardingStep): boolean;
|
|
751
|
+
protected isActive(step: OnboardingStep): boolean;
|
|
752
|
+
protected actionLabelFor(step: OnboardingStep): string;
|
|
753
|
+
protected toggleStep(stepId: string): void;
|
|
754
|
+
protected onAction(step: OnboardingStep): void;
|
|
755
|
+
protected onMarkDone(step: OnboardingStep): void;
|
|
756
|
+
protected onSubstep(step: OnboardingStep, substep: OnboardingSubstep): void;
|
|
757
|
+
protected onCollapse(): void;
|
|
758
|
+
protected onExpand(): void;
|
|
759
|
+
protected onRename(): void;
|
|
760
|
+
protected onDismiss(): void;
|
|
761
|
+
protected onGoLive(): void;
|
|
762
|
+
private setCollapsed;
|
|
763
|
+
private onDragEnded;
|
|
764
|
+
private clamp;
|
|
765
|
+
private hydrate;
|
|
766
|
+
private defaultBottomRight;
|
|
767
|
+
private read;
|
|
768
|
+
private persist;
|
|
769
|
+
private storage;
|
|
770
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OnboardingGuideComponent, never>;
|
|
771
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OnboardingGuideComponent, "fk-onboarding-guide", never, { "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": false; "isSignal": true; }; "startCollapsed": { "alias": "startCollapsed"; "required": false; "isSignal": true; }; "startLabel": { "alias": "startLabel"; "required": false; "isSignal": true; }; "markDoneLabel": { "alias": "markDoneLabel"; "required": false; "isSignal": true; }; "goLiveLabel": { "alias": "goLiveLabel"; "required": false; "isSignal": true; }; "stepsWord": { "alias": "stepsWord"; "required": false; "isSignal": true; }; "doneWord": { "alias": "doneWord"; "required": false; "isSignal": true; }; "stepsLeftWord": { "alias": "stepsLeftWord"; "required": false; "isSignal": true; }; "allDoneLabel": { "alias": "allDoneLabel"; "required": false; "isSignal": true; }; "renameLabel": { "alias": "renameLabel"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "checkIcon": { "alias": "checkIcon"; "required": false; "isSignal": true; }; "caretIcon": { "alias": "caretIcon"; "required": false; "isSignal": true; }; "editIcon": { "alias": "editIcon"; "required": false; "isSignal": true; }; "collapseIcon": { "alias": "collapseIcon"; "required": false; "isSignal": true; }; "dismissIcon": { "alias": "dismissIcon"; "required": false; "isSignal": true; }; "expandIcon": { "alias": "expandIcon"; "required": false; "isSignal": true; }; "actionIcon": { "alias": "actionIcon"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "stepAction": "stepAction"; "stepMarkDone": "stepMarkDone"; "substepToggle": "substepToggle"; "goLive": "goLive"; "renameClick": "renameClick"; "dismiss": "dismiss"; "collapsedChange": "collapsedChange"; }, never, never, true, [{ directive: typeof i1.CdkDrag; inputs: {}; outputs: {}; }]>;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
/**
|
|
775
|
+
* Layout for a dashboard search/filter bar. It lays out a primary search field
|
|
776
|
+
* and fixed-width filter dropdowns in a responsive row and compacts the
|
|
777
|
+
* projected `fk-form-field` / `fk-input` / `fk-select` controls to the house
|
|
778
|
+
* filter-bar size — so every dashboard's filter bar reads the same without
|
|
779
|
+
* per-page CSS.
|
|
780
|
+
*
|
|
781
|
+
* It owns **layout and responsiveness only** — no surrounding border,
|
|
782
|
+
* background, or elevation. If you want the bar to sit inside a card, wrap it in
|
|
783
|
+
* your own surface.
|
|
784
|
+
*
|
|
785
|
+
* Tag the primary search field with the `search` attribute (grows to fill) and
|
|
786
|
+
* each fixed-width filter with the `filter` attribute. Under a narrow container
|
|
787
|
+
* the row stacks and every control goes full-width.
|
|
788
|
+
*
|
|
789
|
+
* ```html
|
|
790
|
+
* <fk-search-bar-layout>
|
|
791
|
+
* <fk-form-field search>
|
|
792
|
+
* <fk-icon fkPrefix name="magnifier-outline" size="sm" />
|
|
793
|
+
* <fk-input formControlName="q" placeholder="Search…" />
|
|
794
|
+
* </fk-form-field>
|
|
795
|
+
*
|
|
796
|
+
* <fk-form-field filter>
|
|
797
|
+
* <fk-select formControlName="status" [options]="options" />
|
|
798
|
+
* </fk-form-field>
|
|
799
|
+
* </fk-search-bar-layout>
|
|
800
|
+
* ```
|
|
801
|
+
*
|
|
802
|
+
* Uses `ViewEncapsulation.None` so it can style the projected controls (the
|
|
803
|
+
* `[search]` / `[filter]` children and the select chevron); its rules are scoped
|
|
804
|
+
* under the block class.
|
|
805
|
+
*/
|
|
806
|
+
declare class SearchBarLayoutComponent {
|
|
807
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
808
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
809
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
810
|
+
readonly classes: _angular_core.Signal<string>;
|
|
811
|
+
get hostClass(): string;
|
|
812
|
+
readonly role = "search";
|
|
813
|
+
get hostId(): string | null;
|
|
814
|
+
get hostAriaLabel(): string | null;
|
|
815
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SearchBarLayoutComponent, never>;
|
|
816
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SearchBarLayoutComponent, "fk-search-bar-layout", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* A titled content section for a dashboard page: an optional heading followed by
|
|
821
|
+
* projected content, with consistent vertical rhythm between the section and its
|
|
822
|
+
* own children.
|
|
823
|
+
*
|
|
824
|
+
* Spacing is top-margin only (never a parent `gap`), so a consumer's per-child
|
|
825
|
+
* `margin-top` overrides cleanly instead of stacking on an invisible gap. The
|
|
826
|
+
* first child sits flush; each subsequent child gets the section rhythm.
|
|
827
|
+
* `marginTop` overrides the section's own top margin per instance.
|
|
828
|
+
*
|
|
829
|
+
* ```html
|
|
830
|
+
* <fk-content-page-section title="Members" [level]="3">
|
|
831
|
+
* <p>…</p>
|
|
832
|
+
* <fk-data-table />
|
|
833
|
+
* </fk-content-page-section>
|
|
834
|
+
* ```
|
|
835
|
+
*
|
|
836
|
+
* Uses `ViewEncapsulation.None` so the inter-child rhythm rule reaches projected
|
|
837
|
+
* content; its rules are scoped under the block class.
|
|
838
|
+
*/
|
|
839
|
+
declare class ContentPageSectionComponent {
|
|
840
|
+
readonly title: _angular_core.InputSignal<string | null>;
|
|
841
|
+
readonly level: _angular_core.InputSignal<HeadlineLevel>;
|
|
842
|
+
readonly marginTop: _angular_core.InputSignal<string | null>;
|
|
843
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
844
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
845
|
+
readonly classes: _angular_core.Signal<string>;
|
|
846
|
+
get hostClass(): string;
|
|
847
|
+
get hostId(): string | null;
|
|
848
|
+
get hostMarginTop(): string | null;
|
|
849
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContentPageSectionComponent, never>;
|
|
850
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContentPageSectionComponent, "fk-content-page-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; "marginTop": { "alias": "marginTop"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
/**
|
|
854
|
+
* Lays its `fk-content-column` children out **side by side**, wrapping and
|
|
855
|
+
* ultimately stacking to a single column based on the row's *own* available
|
|
856
|
+
* width — never the viewport (so it reacts when a sidenav opens or it sits in a
|
|
857
|
+
* narrow panel). Same intrinsic CSS grid as `fk-columns`
|
|
858
|
+
* (`repeat(auto-fit, minmax(min, 1fr))`); `minColumnWidth` is the single knob
|
|
859
|
+
* for when columns stack.
|
|
860
|
+
*
|
|
861
|
+
* Optionally **bordered**, with an optional **headline**
|
|
862
|
+
* (`fk-content-column-headline`) that sits *outside* the border — so the row
|
|
863
|
+
* reads as a titled section wrapping a set of columns.
|
|
864
|
+
*
|
|
865
|
+
* ```html
|
|
866
|
+
* <fk-content-row [bordered]="true" minColumnWidth="16rem">
|
|
867
|
+
* <fk-content-column-headline>Providers</fk-content-column-headline>
|
|
868
|
+
* <fk-content-column>…</fk-content-column>
|
|
869
|
+
* <fk-content-column>…</fk-content-column>
|
|
870
|
+
* </fk-content-row>
|
|
871
|
+
* ```
|
|
872
|
+
*/
|
|
873
|
+
declare class ContentRowComponent {
|
|
874
|
+
/**
|
|
875
|
+
* The smallest width a column may shrink to before the row drops to fewer
|
|
876
|
+
* columns — the single knob that controls when columns wrap/stack.
|
|
877
|
+
*/
|
|
878
|
+
readonly minColumnWidth: _angular_core.InputSignal<string>;
|
|
879
|
+
/**
|
|
880
|
+
* Optional cap on how wide a column may grow. Unset (default), columns fill
|
|
881
|
+
* the row (`1fr`); when set, columns stop at this width and leftover space
|
|
882
|
+
* stays empty (columns aligned to the start).
|
|
883
|
+
*/
|
|
884
|
+
readonly maxColumnWidth: _angular_core.InputSignal<string | null>;
|
|
885
|
+
/** Gap between side-by-side columns and between wrapped rows. */
|
|
886
|
+
readonly gutter: _angular_core.InputSignal<string>;
|
|
887
|
+
/** Draws a bordered, padded box around the columns (not the headline). */
|
|
888
|
+
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
889
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
890
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
891
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
892
|
+
readonly classes: _angular_core.Signal<string>;
|
|
893
|
+
get hostClass(): string;
|
|
894
|
+
get hostId(): string | null;
|
|
895
|
+
get hostAriaLabel(): string | null;
|
|
896
|
+
get hostMin(): string;
|
|
897
|
+
get hostMax(): string | null;
|
|
898
|
+
get hostGutter(): string;
|
|
899
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContentRowComponent, never>;
|
|
900
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContentRowComponent, "fk-content-row", never, { "minColumnWidth": { "alias": "minColumnWidth"; "required": false; "isSignal": true; }; "maxColumnWidth": { "alias": "maxColumnWidth"; "required": false; "isSignal": true; }; "gutter": { "alias": "gutter"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["fk-content-column-headline", "*"], true, never>;
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
/**
|
|
904
|
+
* A single content column — a vertical block of stacked content, with an
|
|
905
|
+
* optional **border** and an optional **headline** (`fk-content-column-headline`)
|
|
906
|
+
* that sits *outside* that border. The semantic unit that goes inside an
|
|
907
|
+
* `fk-content-row` (which lays columns side by side and stacks them when narrow),
|
|
908
|
+
* or stands alone as a bordered, titled section.
|
|
909
|
+
*
|
|
910
|
+
* ```html
|
|
911
|
+
* <fk-content-column [bordered]="true">
|
|
912
|
+
* <fk-content-column-headline>Provider</fk-content-column-headline>
|
|
913
|
+
* …
|
|
914
|
+
* </fk-content-column>
|
|
915
|
+
* ```
|
|
916
|
+
*/
|
|
917
|
+
declare class ContentColumnComponent {
|
|
918
|
+
/** Draws a bordered, padded box around the content (not the headline). */
|
|
919
|
+
readonly bordered: _angular_core.InputSignal<boolean>;
|
|
920
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
921
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
922
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
923
|
+
readonly classes: _angular_core.Signal<string>;
|
|
924
|
+
get hostClass(): string;
|
|
925
|
+
get hostId(): string | null;
|
|
926
|
+
get hostAriaLabel(): string | null;
|
|
927
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContentColumnComponent, never>;
|
|
928
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContentColumnComponent, "fk-content-column", never, { "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["fk-content-column-headline", "*"], true, never>;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
/**
|
|
932
|
+
* Optional headline for `fk-content-column` / `fk-content-row`. Projected
|
|
933
|
+
* *outside* the bordered region, so it labels the group without being boxed in
|
|
934
|
+
* with the content. Projects its own text/markup.
|
|
935
|
+
*
|
|
936
|
+
* ```html
|
|
937
|
+
* <fk-content-column [bordered]="true">
|
|
938
|
+
* <fk-content-column-headline>Provider</fk-content-column-headline>
|
|
939
|
+
* …
|
|
940
|
+
* </fk-content-column>
|
|
941
|
+
* ```
|
|
942
|
+
*/
|
|
943
|
+
declare class ContentColumnHeadlineComponent {
|
|
944
|
+
readonly className: _angular_core.InputSignal<string>;
|
|
945
|
+
readonly id: _angular_core.InputSignal<string | null>;
|
|
946
|
+
readonly classes: _angular_core.Signal<string>;
|
|
947
|
+
get hostClass(): string;
|
|
948
|
+
get hostId(): string | null;
|
|
949
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContentColumnHeadlineComponent, never>;
|
|
950
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContentColumnHeadlineComponent, "fk-content-column-headline", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
export { ColumnsComponent, ContentColumnComponent, ContentColumnHeadlineComponent, ContentPageSectionComponent, ContentRowComponent, ContentSplitLayoutComponent, DetailPanelComponent, DialogFooterComponent, DialogHeaderComponent, DialogShellComponent, OnboardingGuideComponent, PageHeaderComponent, SearchBarLayoutComponent, SidebarNavComponent, SidebarNavItemDirective, TableEmptyStateComponent };
|
|
954
|
+
export type { DialogConfirmVariant, DialogHeaderTint, OnboardingStep, OnboardingSubstep, OnboardingSubstepToggle, SidebarNavChild, SidebarNavGroup, SidebarNavItem, SidebarNavLink, SidebarNavModel };
|