@unopsitg/ux 21.0.2 → 21.0.5
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/assets/_main.scss +1 -1
- package/assets/tailwind.css +7 -7
- package/fesm2022/unopsitg-ux.mjs +427 -9
- package/fesm2022/unopsitg-ux.mjs.map +1 -1
- package/package.json +1 -1
- package/types/unopsitg-ux.d.ts +90 -3
package/package.json
CHANGED
package/types/unopsitg-ux.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _primeuix_themes_types from '@primeuix/themes/types';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { InjectionToken, OnInit, OnDestroy, ElementRef, AfterViewChecked, AfterViewInit } from '@angular/core';
|
|
3
|
+
import { InjectionToken, OnInit, OnDestroy, ElementRef, AfterViewChecked, AfterViewInit, TemplateRef, QueryList } from '@angular/core';
|
|
4
4
|
import { QueryParamsHandling, IsActiveMatchOptions, Router } from '@angular/router';
|
|
5
5
|
import * as _unopsitg_ux from '@unopsitg/ux';
|
|
6
6
|
import * as rxjs from 'rxjs';
|
|
@@ -660,6 +660,93 @@ declare class AiCardBgComponent {
|
|
|
660
660
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AiCardBgComponent, "ux-ai-card-bg", never, {}, {}, never, ["*"], true, never>;
|
|
661
661
|
}
|
|
662
662
|
|
|
663
|
+
interface AiInsight {
|
|
664
|
+
id: number;
|
|
665
|
+
title: string;
|
|
666
|
+
description: string;
|
|
667
|
+
actionLabel: string;
|
|
668
|
+
icon: string;
|
|
669
|
+
iconColor: string;
|
|
670
|
+
}
|
|
671
|
+
declare class AiInsightsCardComponent implements OnInit {
|
|
672
|
+
title: _angular_core.InputSignal<string>;
|
|
673
|
+
insights: _angular_core.InputSignal<AiInsight[]>;
|
|
674
|
+
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
675
|
+
actionClick: _angular_core.OutputEmitterRef<AiInsight>;
|
|
676
|
+
expanded: _angular_core.WritableSignal<boolean>;
|
|
677
|
+
searchQuery: _angular_core.WritableSignal<string>;
|
|
678
|
+
filteredInsights: _angular_core.Signal<AiInsight[]>;
|
|
679
|
+
perPage: _angular_core.WritableSignal<number>;
|
|
680
|
+
page: _angular_core.WritableSignal<number>;
|
|
681
|
+
first: _angular_core.Signal<number>;
|
|
682
|
+
paginatedInsights: _angular_core.Signal<AiInsight[]>;
|
|
683
|
+
private destroyRef;
|
|
684
|
+
ngOnInit(): void;
|
|
685
|
+
private calcPerPage;
|
|
686
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AiInsightsCardComponent, never>;
|
|
687
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AiInsightsCardComponent, "ux-ai-insights-card", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "insights": { "alias": "insights"; "required": true; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; }, never, never, true, never>;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
interface DetailTab {
|
|
691
|
+
value: string;
|
|
692
|
+
label: string;
|
|
693
|
+
icon?: string;
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Structural directive that marks a template as content for a specific tab
|
|
697
|
+
* inside `<ux-detail-layout>`.
|
|
698
|
+
*
|
|
699
|
+
* Usage: `<ng-template uxDetailTab="overview">...content...</ng-template>`
|
|
700
|
+
*/
|
|
701
|
+
declare class DetailTabDirective {
|
|
702
|
+
templateRef: TemplateRef<unknown>;
|
|
703
|
+
readonly uxDetailTab: _angular_core.InputSignal<string>;
|
|
704
|
+
constructor(templateRef: TemplateRef<unknown>);
|
|
705
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DetailTabDirective, never>;
|
|
706
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DetailTabDirective, "[uxDetailTab]", never, { "uxDetailTab": { "alias": "uxDetailTab"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
707
|
+
}
|
|
708
|
+
/**
|
|
709
|
+
* Reusable detail-page layout shell: sticky header, tabbed main column,
|
|
710
|
+
* and a persistent right sidebar (typically for AI insights).
|
|
711
|
+
*
|
|
712
|
+
* All styling derives from the active PrimeNG brand preset (BrandSoft / BrandCrisp /
|
|
713
|
+
* BrandContrast) via `--p-*` CSS variables and Tailwind `surface-*` / `primary-*`
|
|
714
|
+
* utilities (resolved by `tailwindcss-primeui`). No hardcoded colors.
|
|
715
|
+
*
|
|
716
|
+
* ```html
|
|
717
|
+
* <ux-detail-layout [tabs]="myTabs" [(activeTab)]="currentTab">
|
|
718
|
+
* <ng-container ux-detail-header>
|
|
719
|
+
* ...sticky header content...
|
|
720
|
+
* </ng-container>
|
|
721
|
+
*
|
|
722
|
+
* <ng-template uxDetailTab="overview">...tab 1...</ng-template>
|
|
723
|
+
* <ng-template uxDetailTab="scope">...tab 2...</ng-template>
|
|
724
|
+
*
|
|
725
|
+
* <ng-container ux-detail-sidebar>
|
|
726
|
+
* ...right sidebar (AI card, documents, etc.)...
|
|
727
|
+
* </ng-container>
|
|
728
|
+
*
|
|
729
|
+
* <ng-container ux-detail-footer>
|
|
730
|
+
* ...audit metadata row...
|
|
731
|
+
* </ng-container>
|
|
732
|
+
* </ux-detail-layout>
|
|
733
|
+
* ```
|
|
734
|
+
*/
|
|
735
|
+
declare class DetailLayoutComponent {
|
|
736
|
+
/** Tab definitions for the main content area. */
|
|
737
|
+
readonly tabs: _angular_core.InputSignal<DetailTab[]>;
|
|
738
|
+
/** Currently active tab value (two-way bindable). */
|
|
739
|
+
readonly activeTab: _angular_core.ModelSignal<string>;
|
|
740
|
+
/** True once the scrollable body has been scrolled past the threshold. */
|
|
741
|
+
readonly scrolled: _angular_core.WritableSignal<boolean>;
|
|
742
|
+
/** Tab content templates provided by the consumer. */
|
|
743
|
+
tabTemplates: QueryList<DetailTabDirective>;
|
|
744
|
+
getTabTemplate(value: string): TemplateRef<unknown> | null;
|
|
745
|
+
onScroll(event: Event): void;
|
|
746
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DetailLayoutComponent, never>;
|
|
747
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DetailLayoutComponent, "ux-detail-layout", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; }, ["tabTemplates"], ["[ux-detail-header]", "[ux-detail-header-meta]", "[ux-detail-footer]", "[ux-detail-sidebar]"], true, never>;
|
|
748
|
+
}
|
|
749
|
+
|
|
663
750
|
interface Blog {
|
|
664
751
|
name?: string;
|
|
665
752
|
coverImage?: any;
|
|
@@ -874,5 +961,5 @@ interface DialogConfig {
|
|
|
874
961
|
newTask?: boolean;
|
|
875
962
|
}
|
|
876
963
|
|
|
877
|
-
export { AiCardBgComponent, AppBreadcrumb, AppConfigurator, AppFooter, AppLayout, AppMenu, AppMenuitem, AppRightMenu, AppSearch, AppSidebar, AppTopbar, AuthLayout, BrandContrast, BrandCrisp, BrandSoft, LayoutService, MENU_MODEL, SIDEBAR_LOGO, TOPBAR_MOBILE_LOGO, brandPresets, brandPrimitives };
|
|
878
|
-
export type { Assignee, Blog, Chat, Comment$1 as Comment, Country, Customer, DialogConfig, File, Folder, Image, KanbanCardType, Comment as KanbanComment, KanbanListType, Task$1 as KanbanTask, LayoutConfig, ListName, Mail, Member$1 as Member, MenuItem, Message, Metric, Partner, Product, Representative, SidebarLogoConfig, Task, TaskList, TopbarMobileLogoConfig };
|
|
964
|
+
export { AiCardBgComponent, AiInsightsCardComponent, AppBreadcrumb, AppConfigurator, AppFooter, AppLayout, AppMenu, AppMenuitem, AppRightMenu, AppSearch, AppSidebar, AppTopbar, AuthLayout, BrandContrast, BrandCrisp, BrandSoft, DetailLayoutComponent, DetailTabDirective, LayoutService, MENU_MODEL, SIDEBAR_LOGO, TOPBAR_MOBILE_LOGO, brandPresets, brandPrimitives };
|
|
965
|
+
export type { AiInsight, Assignee, Blog, Chat, Comment$1 as Comment, Country, Customer, DetailTab, DialogConfig, File, Folder, Image, KanbanCardType, Comment as KanbanComment, KanbanListType, Task$1 as KanbanTask, LayoutConfig, ListName, Mail, Member$1 as Member, MenuItem, Message, Metric, Partner, Product, Representative, SidebarLogoConfig, Task, TaskList, TopbarMobileLogoConfig };
|