@tekus/design-system 5.36.0 → 5.37.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tekus-design-system-components-grid-container.mjs","sources":["../../../projects/design-system/components/grid-container/src/grid-container.component.ts","../../../projects/design-system/components/grid-container/tekus-design-system-components-grid-container.ts"],"sourcesContent":["import { Component, computed, inject, model } from '@angular/core';\nimport { GridItemDirective } from '@tekus/design-system/directives/gird-item';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport {\n AutoFillGridProps,\n ComposeMinMax,\n ComposeSize,\n ContainerType,\n FixedGridProps,\n GapGutter,\n GridColumns,\n PaddingGridContainer,\n Breakpoints,\n Gutter,\n GutterType\n} from '@tekus/design-system/core/types';\n\n/**\n * A responsive CSS Grid container that exposes typed, two-way models to control\n * column count, track size, inter-item gutter, and container padding.\n *\n * Behavior:\n * - columns: GridColumns (default 12). Numeric values are capped per Breakpoints\n * (2/3/4/8 for mobileSmall/mobileLarge/tabletVertical/tabletHorizontal). No cap when size is minmax().\n * - size: ComposeSize (default '1fr'). Required to be minmax() when columns is 'auto-fill', otherwise an error is thrown.\n * - gutter: Gutter (default 'normal'), mapped to GapGutter for host gap.\n * - containerType: ContainerType (default 'medium'), mapped to PaddingGridContainer for host padding.\n *\n * Host bindings:\n * - style.grid-template-columns via repeat(...) from computed columns/size.\n * - style.gap via GapGutter.\n * - style.padding via PaddingGridContainer.\n *\n * Intended to wrap GridItemDirective children. Public type is compatible with FixedGridProps | AutoFillGridProps.\n * @selector tk-grid-container\n */\n@Component({\n selector: 'tk-grid-container',\n standalone: true,\n imports: [GridItemDirective],\n styleUrls: ['./grid-container.component.scss'],\n template: `<ng-content />`,\n host: {\n '[style.gap]': 'hostGap()',\n '[style.grid-template-columns]': 'gridColumns()',\n '[style.padding]': 'containerPadding()',\n },\n})\nexport class GridContainerComponent {\n\n /**\n * Two-way bound model defining the number of columns in the grid.\n *\n * The value is capped based on the current screen breakpoint. If the `size` model\n * is a `minmax()` function, the column cap is disabled.\n *\n * @default 12\n * @see GridColumns\n */\n columns = model<GridColumns>(12);\n\n /**\n * Two-way bound model defining the spacing between grid items.\n *\n * The value is mapped to a CSS `gap` property based on the `Gutter` type.\n *\n * @default Gutter.normal\n * @see Gutter\n * @see GutterType\n */\n gutter = model<GutterType>(Gutter.normal);\n\n /**\n * Two-way bound model defining the grid track size.\n *\n * Accepts any ComposeSize value (e.g., '1fr', fixed lengths, or minmax()) and\n * drives the computed grid template for the container.\n *\n * @default '1fr'\n * @see ComposeSize\n */\n size = model<ComposeSize>('1fr');\n\n /**\n * Two-way bound model defining the internal spacing of the grid container.\n *\n * The value is mapped to a CSS `padding` property based on the `PaddingGridContainer` type.\n *\n * @default 'medium'\n * @see ContainerType\n */\n containerType = model<ContainerType>('medium');\n\n /**\n * A private static RegExp to validate strings that match the `minmax()` function.\n */\n readonly MINMAX_RE = /^minmax\\(\\s*(\\d+(px|rem|em|%|fr))\\s*,\\s*(\\d+(px|rem|em|%|fr))\\s*\\)$/i;\n\n /**\n * A private service injection to observe screen breakpoint changes.\n */\n private readonly breakpointObserver = inject(BreakpointObserver);\n\n /**\n * A signal derived from `breakpointObserver` to reactively track changes\n * across all defined breakpoints.\n */\n screenChanges = toSignal(\n this.breakpointObserver.observe([\n Breakpoints.mobileSmall,\n Breakpoints.mobile,\n Breakpoints.mobileLarge,\n Breakpoints.tabletVertical,\n Breakpoints.tabletHorizontal,\n Breakpoints.desktopSmall,\n Breakpoints.desktop,\n Breakpoints.desktopLarge,\n ])\n );\n\n /**\n * A computed signal that determines the final number of columns for the grid.\n *\n * It caps the `columns` model value based on the current screen breakpoint,\n * unless the `size` model is a `minmax()` function.\n */\n readonly finalColumns = computed(() => {\n const breakpoints = this.screenChanges()?.breakpoints;\n const columnsNumber = Number.parseInt(this.columns() as string);\n if (\n Number.isNaN(columnsNumber) ||\n !breakpoints ||\n this.isMinMax(this.size())\n ) {\n return this.columns();\n }\n\n let maxColumns = 12;\n\n if (\n breakpoints[Breakpoints.mobileSmall] ||\n breakpoints[Breakpoints.mobile]\n ) {\n maxColumns = 2;\n } else if (breakpoints[Breakpoints.mobileLarge]) {\n maxColumns = 3;\n } else if (breakpoints[Breakpoints.tabletVertical]) {\n maxColumns = 4;\n } else if (breakpoints[Breakpoints.tabletHorizontal]) {\n maxColumns = 8;\n }\n\n return Math.min(columnsNumber, maxColumns);\n });\n\n /**\n * Host binding that maps the `gutter` model to the host element's `style.gap` property.\n */\n readonly hostGap = computed<GapGutter>(() => {\n const key: GutterType = this.gutter() ?? Gutter.normal;\n return GapGutter[key as Gutter];\n });\n\n /**\n * Host binding that sets the `style.grid-template-columns` property based on\n * the computed column count and track size.\n */\n readonly gridColumns = computed<string>(() => this.computeGridTemplateColumns());\n\n /**\n * Host binding that sets the `style.padding` property based on the `containerType` model.\n */\n readonly containerPadding = computed<string>(() =>\n PaddingGridContainer[this.containerType() as keyof typeof PaddingGridContainer] ?? PaddingGridContainer.medium\n );\n\n /**\n * Computes the final `grid-template-columns` string for the host element.\n *\n * It handles both fixed and `auto-fill` column types and validates that the `size`\n * model is a `minmax()` function when `columns` is set to `'auto-fill'`.\n * @returns The CSS value for the `grid-template-columns` property.\n */\n computeGridTemplateColumns(): string {\n const columnsVal = this.finalColumns();\n const sizeVal = this.size() ?? '1fr';\n\n if (columnsVal === 'auto-fill') {\n if (this.isMinMax(sizeVal)) {\n return `repeat(auto-fill, ${sizeVal})`;\n }\n throw new Error(\n 'When using columns=\"auto-fill\", the \"size\" model must be a minmax() function, e.g., minmax(200px,1fr).'\n );\n }\n\n return `repeat(${columnsVal}, ${sizeVal})`;\n }\n\n /**\n * A private helper method to check if a given value is a valid `minmax()` function string.\n * @param value The value to check.\n * @returns `true` if the value is a valid `minmax()` string, `false` otherwise.\n */\n private isMinMax(value: unknown): value is ComposeMinMax {\n return (\n typeof value === 'string' &&\n this.MINMAX_RE.test(value.trim())\n );\n }\n}\n\n/**\n * A public type to represent an instance of the `GridContainerComponent` class,\n * combined with its public input properties.\n *\n * This allows for better type-checking when the component is used in a template.\n */\nexport type GridComponent = new () => GridContainerComponent &\n (FixedGridProps | AutoFillGridProps);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { TagComponent } from '@tekus/design-system/components/tag';
5
+ import { IconComponent } from '@tekus/design-system/components/icon';
6
+ import { GridContainerComponent } from '@tekus/design-system/components/grid-container';
7
+ import { GridItemDirective } from '@tekus/design-system/directives/gird-item';
8
+
9
+ /**
10
+ * @component SectionComponent
11
+ * @description
12
+ * The Section component provides a structured, responsive layout block with an optional header and content area.
13
+ * It supports standard layouts, split layouts (two columns or two rows) with independent scrollable areas,
14
+ * and custom transclusion slots for headers, tags, and actions.
15
+ *
16
+ * @usage
17
+ * ```html
18
+ * <tk-section title="Licensing" tagText="Active" tagSeverity="success" icon="pi-cog">
19
+ * <div>Standard content area</div>
20
+ * </tk-section>
21
+ * ```
22
+ */
23
+ class SectionComponent {
24
+ constructor() {
25
+ /** The primary title of the section. Optional. If omitted, the header is not rendered. */
26
+ this.title = input(undefined, ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
27
+ /** Optional fixed height for the section (e.g. '300px', '100%'). If content exceeds this height, it scrolls. */
28
+ this.height = input(undefined, ...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
29
+ /** Optional tag text displayed next to the title. */
30
+ this.tagText = input(undefined, ...(ngDevMode ? [{ debugName: "tagText" }] : /* istanbul ignore next */ []));
31
+ /** Optional tag severity for color styling. Defaults to 'info'. */
32
+ this.tagSeverity = input('info', ...(ngDevMode ? [{ debugName: "tagSeverity" }] : /* istanbul ignore next */ []));
33
+ /** Optional prefix icon class (e.g. 'pi-plus'). Shows a circular prefix icon in the header if set. */
34
+ this.icon = input(undefined, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
35
+ /** Additional info text for the right side of the main header */
36
+ this.infoText = input(undefined, ...(ngDevMode ? [{ debugName: "infoText" }] : /* istanbul ignore next */ []));
37
+ /** Icon for the right side of the main header */
38
+ this.infoIcon = input(undefined, ...(ngDevMode ? [{ debugName: "infoIcon" }] : /* istanbul ignore next */ []));
39
+ /** Severity color for the main header info text ('default', 'danger', etc.) */
40
+ this.infoSeverity = input('default', ...(ngDevMode ? [{ debugName: "infoSeverity" }] : /* istanbul ignore next */ []));
41
+ /** If true, the section body is split into two panels (left/right or top/bottom). */
42
+ this.split = input(false, ...(ngDevMode ? [{ debugName: "split" }] : /* istanbul ignore next */ []));
43
+ /** Layout direction for the split panels: 'row' (side-by-side) or 'column' (stacked). Defaults to 'row'. */
44
+ this.direction = input('row', ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
45
+ /** If true and split mode is enabled, each panel will scroll independently when content overflows. */
46
+ this.scrollable = input(true, ...(ngDevMode ? [{ debugName: "scrollable" }] : /* istanbul ignore next */ []));
47
+ }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SectionComponent, isStandalone: true, selector: "tk-section", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, tagText: { classPropertyName: "tagText", publicName: "tagText", isSignal: true, isRequired: false, transformFunction: null }, tagSeverity: { classPropertyName: "tagSeverity", publicName: "tagSeverity", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, infoText: { classPropertyName: "infoText", publicName: "infoText", isSignal: true, isRequired: false, transformFunction: null }, infoIcon: { classPropertyName: "infoIcon", publicName: "infoIcon", isSignal: true, isRequired: false, transformFunction: null }, infoSeverity: { classPropertyName: "infoSeverity", publicName: "infoSeverity", isSignal: true, isRequired: false, transformFunction: null }, split: { classPropertyName: "split", publicName: "split", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.height": "height()" } }, ngImport: i0, template: "<div class=\"tk-section\">\n <!-- Header -->\n @if (title()) {\n <div class=\"tk-section__header\">\n <div class=\"tk-section__header-left\">\n <!-- Optional prefix icon -->\n @if (icon()) {\n <div class=\"tk-section__icon-wrapper\">\n <tk-icon [icon]=\"icon()!\" size=\"sm\"></tk-icon>\n </div>\n } @else {\n <!-- Or transcluded prefix icon -->\n <ng-content select=\"[headerIcon]\"></ng-content>\n }\n\n <!-- Title -->\n <h2 class=\"tk-section__title\">{{ title() }}</h2>\n \n <!-- Optional Tag -->\n @if (tagText()) {\n <tk-tag [value]=\"tagText()!\" [severity]=\"tagSeverity()\"></tk-tag>\n } @else {\n <ng-content select=\"[headerTag]\"></ng-content>\n }\n </div>\n\n <!-- Actions slot -->\n <div class=\"tk-section__header-right\">\n @if (infoText() || infoIcon()) {\n <div class=\"tk-section__header-info\" [class]=\"'tk-text-' + infoSeverity()\">\n @if (infoIcon()) { <tk-icon [icon]=\"infoIcon()!\"></tk-icon> }\n @if (infoText()) { <span>{{ infoText() }}</span> }\n </div>\n }\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </div>\n }\n\n <!-- Body Content -->\n <div class=\"tk-section__body\">\n @if (!split()) {\n <div class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\">\n <ng-content></ng-content>\n </div>\n } @else {\n <tk-grid-container [columns]=\"direction() === 'row' ? 2 : 1\" style=\"height: 100%; min-height: 0;\">\n <div tkGridItem class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\" style=\"height: 100%;\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n <div tkGridItem class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\" style=\"height: 100%;\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n </tk-grid-container>\n }\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box}.tk-section{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;font-family:var(--tk-font-family, \"Outfit\", \"Inter\", -apple-system, sans-serif);background-color:var(--tk-color-base-surface-100);border-radius:var(--tk-borderRadius-s);padding:var(--tk-spacing-padding-s);gap:var(--tk-spacing-gap-s)}.tk-section__header{display:flex;justify-content:space-between;align-items:center;background-color:var(--tk-color-base-surface-0);border-radius:var(--tk-borderRadius-s);padding:var(--tk-spacing-padding-s) var(--tk-spacing-padding-m);min-height:3.5rem;box-sizing:border-box}.tk-section__header-left{display:flex;align-items:center;gap:var(--tk-spacing-base-75, .75rem)}.tk-section__header-left tk-tag ::ng-deep .p-tag{background-color:var(--tk-color-primary-muted)!important;color:var(--tk-color-primary-strong)!important;border-radius:var(--tk-borderRadius-full)!important;font-weight:var(--tk-font-weight-600);font-size:var(--tk-font-size-paragraph-s);padding:var(--tk-spacing-padding-xs) var(--tk-spacing-padding-m);border:none}.tk-section__icon-wrapper{display:flex;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;background-color:var(--tk-color-base-surface-100);border-radius:50%;color:var(--tk-color-text-default)}.tk-section__icon-wrapper ::ng-deep tk-icon{display:flex;align-items:center;justify-content:center}.tk-section__title{font-size:var(--tk-font-size-paragraph-m);font-weight:var(--tk-font-weight-600);color:var(--tk-color-text-default);margin:0;line-height:1.25}.tk-section__header-right{display:flex;align-items:center;gap:var(--tk-spacing-gap-m)}.tk-section__header-right ::ng-deep button,.tk-section__header-right ::ng-deep a{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:var(--tk-spacing-padding-xs);color:var(--tk-color-text-default);transition:color .15s ease}.tk-section__header-right ::ng-deep button:hover,.tk-section__header-right ::ng-deep a:hover{color:var(--tk-color-primary-default)}.tk-section__header-info{display:flex;align-items:center;gap:var(--tk-spacing-gap-s);font-size:var(--tk-font-size-paragraph-s);color:var(--tk-color-text-muted)}.tk-section__header-info ::ng-deep tk-icon{color:inherit}.tk-section__header-info.tk-text-default{color:var(--tk-color-text-muted)}.tk-section__header-info.tk-text-danger{color:var(--tk-color-feedback-danger-default)}.tk-section__header-info.tk-text-success{color:var(--tk-color-feedback-success-default)}.tk-section__header-info.tk-text-warning{color:var(--tk-color-feedback-warn-default)}.tk-section__header-info.tk-text-info{color:var(--tk-color-feedback-info-default)}.tk-section__body{flex:1;display:flex;flex-direction:column;min-height:0;box-sizing:border-box}.tk-section__content{flex:1;min-height:0;background-color:var(--tk-color-base-surface-0);border-radius:var(--tk-borderRadius-s);padding:var(--tk-spacing-padding-m);box-sizing:border-box}.tk-section__content--scrollable{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--tk-color-base-surface-300) transparent}.tk-section__content--scrollable::-webkit-scrollbar{width:.375rem;height:.375rem}.tk-section__content--scrollable::-webkit-scrollbar-track{background:transparent}.tk-section__content--scrollable::-webkit-scrollbar-thumb{background-color:var(--tk-color-base-surface-300);border-radius:var(--tk-borderRadius-xs)}.tk-section__content--scrollable::-webkit-scrollbar-thumb:hover{background-color:var(--tk-color-base-surface-400)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TagComponent, selector: "tk-tag", inputs: ["value", "severity", "truncationLimit"] }, { kind: "component", type: IconComponent, selector: "tk-icon", inputs: ["icon", "styleIcon", "color", "size", "disabled"] }, { kind: "component", type: GridContainerComponent, selector: "tk-grid-container", inputs: ["columns", "gutter", "size", "containerType"], outputs: ["columnsChange", "gutterChange", "sizeChange", "containerTypeChange"] }, { kind: "directive", type: GridItemDirective, selector: "[tkGridItem]", inputs: ["span"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
+ }
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SectionComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'tk-section', imports: [CommonModule, TagComponent, IconComponent, GridContainerComponent, GridItemDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
54
+ '[style.height]': 'height()',
55
+ }, template: "<div class=\"tk-section\">\n <!-- Header -->\n @if (title()) {\n <div class=\"tk-section__header\">\n <div class=\"tk-section__header-left\">\n <!-- Optional prefix icon -->\n @if (icon()) {\n <div class=\"tk-section__icon-wrapper\">\n <tk-icon [icon]=\"icon()!\" size=\"sm\"></tk-icon>\n </div>\n } @else {\n <!-- Or transcluded prefix icon -->\n <ng-content select=\"[headerIcon]\"></ng-content>\n }\n\n <!-- Title -->\n <h2 class=\"tk-section__title\">{{ title() }}</h2>\n \n <!-- Optional Tag -->\n @if (tagText()) {\n <tk-tag [value]=\"tagText()!\" [severity]=\"tagSeverity()\"></tk-tag>\n } @else {\n <ng-content select=\"[headerTag]\"></ng-content>\n }\n </div>\n\n <!-- Actions slot -->\n <div class=\"tk-section__header-right\">\n @if (infoText() || infoIcon()) {\n <div class=\"tk-section__header-info\" [class]=\"'tk-text-' + infoSeverity()\">\n @if (infoIcon()) { <tk-icon [icon]=\"infoIcon()!\"></tk-icon> }\n @if (infoText()) { <span>{{ infoText() }}</span> }\n </div>\n }\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </div>\n }\n\n <!-- Body Content -->\n <div class=\"tk-section__body\">\n @if (!split()) {\n <div class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\">\n <ng-content></ng-content>\n </div>\n } @else {\n <tk-grid-container [columns]=\"direction() === 'row' ? 2 : 1\" style=\"height: 100%; min-height: 0;\">\n <div tkGridItem class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\" style=\"height: 100%;\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n <div tkGridItem class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\" style=\"height: 100%;\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n </tk-grid-container>\n }\n </div>\n</div>\n", styles: [":host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box}.tk-section{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;box-sizing:border-box;font-family:var(--tk-font-family, \"Outfit\", \"Inter\", -apple-system, sans-serif);background-color:var(--tk-color-base-surface-100);border-radius:var(--tk-borderRadius-s);padding:var(--tk-spacing-padding-s);gap:var(--tk-spacing-gap-s)}.tk-section__header{display:flex;justify-content:space-between;align-items:center;background-color:var(--tk-color-base-surface-0);border-radius:var(--tk-borderRadius-s);padding:var(--tk-spacing-padding-s) var(--tk-spacing-padding-m);min-height:3.5rem;box-sizing:border-box}.tk-section__header-left{display:flex;align-items:center;gap:var(--tk-spacing-base-75, .75rem)}.tk-section__header-left tk-tag ::ng-deep .p-tag{background-color:var(--tk-color-primary-muted)!important;color:var(--tk-color-primary-strong)!important;border-radius:var(--tk-borderRadius-full)!important;font-weight:var(--tk-font-weight-600);font-size:var(--tk-font-size-paragraph-s);padding:var(--tk-spacing-padding-xs) var(--tk-spacing-padding-m);border:none}.tk-section__icon-wrapper{display:flex;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;background-color:var(--tk-color-base-surface-100);border-radius:50%;color:var(--tk-color-text-default)}.tk-section__icon-wrapper ::ng-deep tk-icon{display:flex;align-items:center;justify-content:center}.tk-section__title{font-size:var(--tk-font-size-paragraph-m);font-weight:var(--tk-font-weight-600);color:var(--tk-color-text-default);margin:0;line-height:1.25}.tk-section__header-right{display:flex;align-items:center;gap:var(--tk-spacing-gap-m)}.tk-section__header-right ::ng-deep button,.tk-section__header-right ::ng-deep a{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:var(--tk-spacing-padding-xs);color:var(--tk-color-text-default);transition:color .15s ease}.tk-section__header-right ::ng-deep button:hover,.tk-section__header-right ::ng-deep a:hover{color:var(--tk-color-primary-default)}.tk-section__header-info{display:flex;align-items:center;gap:var(--tk-spacing-gap-s);font-size:var(--tk-font-size-paragraph-s);color:var(--tk-color-text-muted)}.tk-section__header-info ::ng-deep tk-icon{color:inherit}.tk-section__header-info.tk-text-default{color:var(--tk-color-text-muted)}.tk-section__header-info.tk-text-danger{color:var(--tk-color-feedback-danger-default)}.tk-section__header-info.tk-text-success{color:var(--tk-color-feedback-success-default)}.tk-section__header-info.tk-text-warning{color:var(--tk-color-feedback-warn-default)}.tk-section__header-info.tk-text-info{color:var(--tk-color-feedback-info-default)}.tk-section__body{flex:1;display:flex;flex-direction:column;min-height:0;box-sizing:border-box}.tk-section__content{flex:1;min-height:0;background-color:var(--tk-color-base-surface-0);border-radius:var(--tk-borderRadius-s);padding:var(--tk-spacing-padding-m);box-sizing:border-box}.tk-section__content--scrollable{overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--tk-color-base-surface-300) transparent}.tk-section__content--scrollable::-webkit-scrollbar{width:.375rem;height:.375rem}.tk-section__content--scrollable::-webkit-scrollbar-track{background:transparent}.tk-section__content--scrollable::-webkit-scrollbar-thumb{background-color:var(--tk-color-base-surface-300);border-radius:var(--tk-borderRadius-xs)}.tk-section__content--scrollable::-webkit-scrollbar-thumb:hover{background-color:var(--tk-color-base-surface-400)}\n"] }]
56
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], tagText: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagText", required: false }] }], tagSeverity: [{ type: i0.Input, args: [{ isSignal: true, alias: "tagSeverity", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], infoText: [{ type: i0.Input, args: [{ isSignal: true, alias: "infoText", required: false }] }], infoIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "infoIcon", required: false }] }], infoSeverity: [{ type: i0.Input, args: [{ isSignal: true, alias: "infoSeverity", required: false }] }], split: [{ type: i0.Input, args: [{ isSignal: true, alias: "split", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }] } });
57
+
58
+ /**
59
+ * Generated bundle index. Do not edit.
60
+ */
61
+
62
+ export { SectionComponent };
63
+ //# sourceMappingURL=tekus-design-system-components-section.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tekus-design-system-components-section.mjs","sources":["../../../projects/design-system/components/section/src/section.component.ts","../../../projects/design-system/components/section/src/section.component.html","../../../projects/design-system/components/section/tekus-design-system-components-section.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TagComponent, TagSeverity } from '@tekus/design-system/components/tag';\nimport { IconComponent } from '@tekus/design-system/components/icon';\nimport { GridContainerComponent } from '@tekus/design-system/components/grid-container';\nimport { GridItemDirective } from '@tekus/design-system/directives/gird-item';\n\n/**\n * @component SectionComponent\n * @description\n * The Section component provides a structured, responsive layout block with an optional header and content area.\n * It supports standard layouts, split layouts (two columns or two rows) with independent scrollable areas,\n * and custom transclusion slots for headers, tags, and actions.\n *\n * @usage\n * ```html\n * <tk-section title=\"Licensing\" tagText=\"Active\" tagSeverity=\"success\" icon=\"pi-cog\">\n * <div>Standard content area</div>\n * </tk-section>\n * ```\n */\n@Component({\n selector: 'tk-section',\n imports: [CommonModule, TagComponent, IconComponent, GridContainerComponent, GridItemDirective],\n templateUrl: './section.component.html',\n styleUrl: './section.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style.height]': 'height()',\n }\n})\nexport class SectionComponent {\n /** The primary title of the section. Optional. If omitted, the header is not rendered. */\n title = input<string | undefined>(undefined);\n\n /** Optional fixed height for the section (e.g. '300px', '100%'). If content exceeds this height, it scrolls. */\n height = input<string | undefined>(undefined);\n\n /** Optional tag text displayed next to the title. */\n tagText = input<string | undefined>(undefined);\n\n /** Optional tag severity for color styling. Defaults to 'info'. */\n tagSeverity = input<TagSeverity>('info');\n\n /** Optional prefix icon class (e.g. 'pi-plus'). Shows a circular prefix icon in the header if set. */\n icon = input<string | undefined>(undefined);\n\n /** Additional info text for the right side of the main header */\n infoText = input<string | undefined>(undefined);\n\n /** Icon for the right side of the main header */\n infoIcon = input<string | undefined>(undefined);\n\n /** Severity color for the main header info text ('default', 'danger', etc.) */\n infoSeverity = input<'default' | 'danger' | 'success' | 'warning' | 'info'>('default');\n\n /** If true, the section body is split into two panels (left/right or top/bottom). */\n split = input<boolean>(false);\n\n /** Layout direction for the split panels: 'row' (side-by-side) or 'column' (stacked). Defaults to 'row'. */\n direction = input<'row' | 'column'>('row');\n\n /** If true and split mode is enabled, each panel will scroll independently when content overflows. */\n scrollable = input<boolean>(true);\n}\n","<div class=\"tk-section\">\n <!-- Header -->\n @if (title()) {\n <div class=\"tk-section__header\">\n <div class=\"tk-section__header-left\">\n <!-- Optional prefix icon -->\n @if (icon()) {\n <div class=\"tk-section__icon-wrapper\">\n <tk-icon [icon]=\"icon()!\" size=\"sm\"></tk-icon>\n </div>\n } @else {\n <!-- Or transcluded prefix icon -->\n <ng-content select=\"[headerIcon]\"></ng-content>\n }\n\n <!-- Title -->\n <h2 class=\"tk-section__title\">{{ title() }}</h2>\n \n <!-- Optional Tag -->\n @if (tagText()) {\n <tk-tag [value]=\"tagText()!\" [severity]=\"tagSeverity()\"></tk-tag>\n } @else {\n <ng-content select=\"[headerTag]\"></ng-content>\n }\n </div>\n\n <!-- Actions slot -->\n <div class=\"tk-section__header-right\">\n @if (infoText() || infoIcon()) {\n <div class=\"tk-section__header-info\" [class]=\"'tk-text-' + infoSeverity()\">\n @if (infoIcon()) { <tk-icon [icon]=\"infoIcon()!\"></tk-icon> }\n @if (infoText()) { <span>{{ infoText() }}</span> }\n </div>\n }\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n </div>\n }\n\n <!-- Body Content -->\n <div class=\"tk-section__body\">\n @if (!split()) {\n <div class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\">\n <ng-content></ng-content>\n </div>\n } @else {\n <tk-grid-container [columns]=\"direction() === 'row' ? 2 : 1\" style=\"height: 100%; min-height: 0;\">\n <div tkGridItem class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\" style=\"height: 100%;\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n <div tkGridItem class=\"tk-section__content\" [class.tk-section__content--scrollable]=\"scrollable()\" style=\"height: 100%;\">\n <ng-content select=\"[right]\"></ng-content>\n </div>\n </tk-grid-container>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, contentChild, signal, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from 'primeng/treetable';
6
+ import { TreeTableModule } from 'primeng/treetable';
7
+ import { IconComponent } from '@tekus/design-system/components/icon';
8
+ import { ButtonComponent } from '@tekus/design-system/components/button';
9
+ import * as i3 from 'primeng/api';
10
+
11
+ class TreeTableComponent {
12
+ constructor() {
13
+ /**
14
+ * Hierarchical list of tree nodes to render.
15
+ */
16
+ this.data = input([], ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
17
+ /**
18
+ * Custom template slot to render the icon on the left of each node label.
19
+ * Usage: `<ng-template #iconTemplate let-node>...</ng-template>`
20
+ */
21
+ this.iconTemplate = contentChild('iconTemplate', ...(ngDevMode ? [{ debugName: "iconTemplate" }] : /* istanbul ignore next */ []));
22
+ /**
23
+ * Custom template slot to render center information/indicators.
24
+ * Usage: `<ng-template #centerTemplate let-node>...</ng-template>`
25
+ */
26
+ this.centerTemplate = contentChild('centerTemplate', ...(ngDevMode ? [{ debugName: "centerTemplate" }] : /* istanbul ignore next */ []));
27
+ /**
28
+ * Custom template slot to render additional actions/content on the right of the row.
29
+ * Usage: `<ng-template #rightTemplate let-node>...</ng-template>`
30
+ */
31
+ this.rightTemplate = contentChild('rightTemplate', ...(ngDevMode ? [{ debugName: "rightTemplate" }] : /* istanbul ignore next */ []));
32
+ /**
33
+ * Internal representation of the tree nodes mapped to PrimeNG's format.
34
+ */
35
+ this.primeNodes = signal([], ...(ngDevMode ? [{ debugName: "primeNodes" }] : /* istanbul ignore next */ []));
36
+ effect(() => {
37
+ const mapped = this.mapToPrimeNodes(this.data());
38
+ this.primeNodes.set(mapped);
39
+ });
40
+ }
41
+ mapToPrimeNodes(nodes) {
42
+ return nodes.map(node => ({
43
+ key: node.id?.toString(),
44
+ data: node,
45
+ expanded: node.expanded ?? false,
46
+ children: node.children?.length
47
+ ? this.mapToPrimeNodes(node.children)
48
+ : undefined,
49
+ }));
50
+ }
51
+ /**
52
+ * API Method: Recursively expands all nodes.
53
+ */
54
+ expandAll() {
55
+ const updated = this.toggleAllNodes(this.primeNodes(), true);
56
+ this.primeNodes.set(updated);
57
+ }
58
+ /**
59
+ * API Method: Recursively collapses all nodes.
60
+ */
61
+ collapseAll() {
62
+ const updated = this.toggleAllNodes(this.primeNodes(), false);
63
+ this.primeNodes.set(updated);
64
+ }
65
+ toggleAllNodes(nodes, expanded) {
66
+ return nodes.map(node => ({
67
+ ...node,
68
+ expanded,
69
+ children: node.children ? this.toggleAllNodes(node.children, expanded) : [],
70
+ }));
71
+ }
72
+ /**
73
+ * Toggles the expansion state of a specific node.
74
+ */
75
+ toggleNode(rowNode) {
76
+ if (rowNode?.node) {
77
+ rowNode.node.expanded = !rowNode.node.expanded;
78
+ this.primeNodes.set([...this.primeNodes()]);
79
+ }
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreeTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: TreeTableComponent, isStandalone: true, selector: "tk-tree-table", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "iconTemplate", first: true, predicate: ["iconTemplate"], descendants: true, isSignal: true }, { propertyName: "centerTemplate", first: true, predicate: ["centerTemplate"], descendants: true, isSignal: true }, { propertyName: "rightTemplate", first: true, predicate: ["rightTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<p-treeTable [value]=\"primeNodes()\" class=\"tk-tree-table\">\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\">\n <tr [ttRow]=\"rowNode\" \n class=\"tk-tree-table__row\"\n [class.tk-tree-table__row--level-0]=\"rowNode.level === 0\"\n [class.tk-tree-table__row--level-1]=\"rowNode.level === 1\"\n [class.tk-tree-table__row--level-2]=\"rowNode.level >= 2\">\n <td class=\"tk-tree-table__cell\">\n <div class=\"tk-tree-table__row-container\" \n [class.tk-tree-table__row-container--level-0]=\"rowNode.level === 0\"\n [class.tk-tree-table__row-container--level-1]=\"rowNode.level === 1\"\n [class.tk-tree-table__row-container--level-2]=\"rowNode.level >= 2\"\n [style.padding-left.px]=\"rowNode.level * 32\">\n \n <!-- LEFT SIDE: Chevron + Icon + Label -->\n <div class=\"tk-tree-table__left\">\n <!-- Toggler Chevron -->\n @if (rowNode.node.children && rowNode.node.children.length > 0) {\n <tk-button \n class=\"tk-tree-table__toggler\" \n [class.tk-tree-table__toggler--rotated]=\"rowNode.node.expanded\"\n icon=\"chevron-right\"\n variant=\"text\"\n severity=\"secondary\"\n [ariaLabel]=\"rowNode.node.expanded ? 'Colapsar nodo' : 'Expandir nodo'\"\n (clicked)=\"toggleNode(rowNode)\">\n </tk-button>\n } @else {\n <span class=\"tk-tree-table__toggler-placeholder\"></span>\n }\n\n <!-- Icon Slot -->\n <div class=\"tk-tree-table__icon-wrapper\">\n @if (iconTemplate()) {\n <ng-container *ngTemplateOutlet=\"iconTemplate(); context: { $implicit: rowData }\"></ng-container>\n } @else if (rowData.icon) {\n <tk-icon \n [icon]=\"rowData.icon\" \n [styleIcon]=\"rowData.iconStyle || 'regular'\" \n class=\"tk-tree-table__icon\">\n </tk-icon>\n }\n </div>\n\n <!-- Label -->\n <span class=\"tk-tree-table__label\">{{ rowData.label }}</span>\n </div>\n\n <!-- CENTER SIDE: Custom Information Column -->\n @if (centerTemplate()) {\n <div class=\"tk-tree-table__center\">\n <ng-container *ngTemplateOutlet=\"centerTemplate(); context: { $implicit: rowData }\"></ng-container>\n </div>\n }\n\n <!-- RIGHT SIDE: Custom Dynamic Content Slot -->\n @if (rightTemplate()) {\n <div class=\"tk-tree-table__right\">\n <ng-container *ngTemplateOutlet=\"rightTemplate(); context: { $implicit: rowData }\"></ng-container>\n </div>\n }\n \n </div>\n </td>\n </tr>\n </ng-template>\n</p-treeTable>\n", styles: [":host{display:block;width:100%}:host ::ng-deep .tk-tree-table .p-treetable{border:1px solid var(--tk-color-base-surface-200, #e4e4e4);border-radius:var(--tk-borderRadius-m, 8px);overflow:hidden;background-color:var(--tk-color-base-surface-0, #ffffff);box-shadow:0 1px 3px #0000000d}:host ::ng-deep .tk-tree-table .p-treetable-scrollable-header,:host ::ng-deep .tk-tree-table .p-treetable-thead{display:none}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr{background-color:var(--tk-color-base-surface-0, #ffffff);border-bottom:1px solid var(--tk-color-base-surface-100, #f2f1f1);transition:background-color .2s ease}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr:last-child{border-bottom:none}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr:hover{background-color:var(--tk-color-base-surface-50, #fbfafa)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr.tk-tree-table__row--level-0{background-color:var(--tk-color-base-surface-50, #fbfafa)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr.tk-tree-table__row--level-1:hover{background-color:var(--tk-color-base-primary-50, #e8e6f1)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr.tk-tree-table__row--level-2:hover{background-color:var(--tk-color-base-primary-50, #e8e6f1)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr>td{padding:0!important;border:none!important;background:transparent!important}.tk-tree-table__row-container{display:flex;align-items:center;justify-content:flex-start;padding:var(--tk-spacing-padding-s, 12px) var(--tk-spacing-padding-m, 16px);width:100%;box-sizing:border-box;min-height:56px;gap:var(--tk-spacing-base-100, 12px)}.tk-tree-table__row-container--level-0 .tk-tree-table__label{font-size:var(--tk-font-size-base-100, 1rem);font-weight:var(--tk-font-weight-600, 600);color:var(--tk-color-base-surface-950, #191a1b)}.tk-tree-table__row-container--level-0 .tk-tree-table__icon-wrapper{color:var(--tk-color-base-primary-300, #948abd)}.tk-tree-table__row-container--level-1 .tk-tree-table__label{font-size:var(--tk-font-size-base-100, 1rem);font-weight:var(--tk-font-weight-600, 600);color:var(--tk-color-base-surface-800, #303031)}.tk-tree-table__row-container--level-1 .tk-tree-table__icon-wrapper{color:var(--tk-color-base-primary-300, #948abd)}.tk-tree-table__row-container--level-2 .tk-tree-table__label{font-size:var(--tk-font-size-base-100, 1rem);font-weight:var(--tk-font-weight-400, 400);color:var(--tk-color-base-surface-700, #424243)}.tk-tree-table__row-container--level-2 .tk-tree-table__icon-wrapper{color:var(--tk-color-base-surface-300, #d2d2d2)}.tk-tree-table__left{display:flex;align-items:center;gap:var(--tk-spacing-base-100, 12px);flex-shrink:0}.tk-tree-table__center{display:flex;align-items:center;gap:var(--tk-spacing-base-100, 12px);margin-left:24px;flex-grow:1}.tk-tree-table__toggler{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}.tk-tree-table__toggler ::ng-deep .tk-button.p-button{background:transparent!important;border:none!important;padding:0!important;width:24px!important;height:24px!important;color:var(--tk-color-base-surface-500, #8a8a8b)!important;border-radius:var(--tk-border-radius-xs, 4px)!important;min-width:auto!important;transition:background-color .2s ease,color .2s ease}.tk-tree-table__toggler ::ng-deep .tk-button.p-button:hover{background-color:var(--tk-color-base-surface-100, #f2f1f1)!important;color:var(--tk-color-base-surface-800, #303031)!important}.tk-tree-table__toggler ::ng-deep tk-icon{transition:transform .2s cubic-bezier(.4,0,.2,1);display:inline-block}.tk-tree-table__toggler--rotated ::ng-deep tk-icon{transform:rotate(90deg)}.tk-tree-table__toggler-placeholder{width:24px;height:24px;display:inline-block}.tk-tree-table__icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:1.2rem}.tk-tree-table__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tk-tree-table__right{display:flex;align-items:center;gap:var(--tk-spacing-base-100, 12px);margin-left:auto}@media(max-width:640px){.tk-tree-table__row-container{flex-wrap:wrap;align-items:flex-start;gap:var(--tk-spacing-base-50, 8px);padding:var(--tk-spacing-padding-s, 12px)}.tk-tree-table__center{margin-left:0;padding-left:var(--tk-spacing-base-300, 36px);width:100%;flex-grow:0}.tk-tree-table__right{margin-left:0;padding-left:var(--tk-spacing-base-300, 36px);width:100%;margin-top:4px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TreeTableModule }, { kind: "component", type: i2.TreeTable, selector: "p-treeTable, p-treetable, p-tree-table", inputs: ["columns", "styleClass", "tableStyle", "tableStyleClass", "autoLayout", "lazy", "lazyLoadOnInit", "paginator", "rows", "first", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "customSort", "selectionMode", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "compareSelectionBy", "rowHover", "loading", "loadingIcon", "showLoader", "scrollable", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "frozenColumns", "resizableColumns", "columnResizeMode", "reorderableColumns", "contextMenu", "rowTrackBy", "filters", "globalFilterFields", "filterDelay", "filterMode", "filterLocale", "paginatorLocale", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "value", "virtualRowHeight", "selectionKeys", "showGridlines"], outputs: ["selectionChange", "contextMenuSelectionChange", "onFilter", "onNodeExpand", "onNodeCollapse", "onPage", "onSort", "onLazyLoad", "sortFunction", "onColResize", "onColReorder", "onNodeSelect", "onNodeUnselect", "onContextMenuSelect", "onHeaderCheckboxToggle", "onEditInit", "onEditComplete", "onEditCancel", "selectionKeysChange"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.TTRow, selector: "[ttRow]", inputs: ["ttRow"] }, { kind: "component", type: IconComponent, selector: "tk-icon", inputs: ["icon", "styleIcon", "color", "size", "disabled"] }, { kind: "component", type: ButtonComponent, selector: "tk-button", inputs: ["label", "disabled", "type", "severity", "variant", "link", "icon", "iconPosition", "tooltipText", "full", "ariaLabel", "size"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreeTableComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'tk-tree-table', imports: [CommonModule, TreeTableModule, IconComponent, ButtonComponent], template: "<p-treeTable [value]=\"primeNodes()\" class=\"tk-tree-table\">\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\">\n <tr [ttRow]=\"rowNode\" \n class=\"tk-tree-table__row\"\n [class.tk-tree-table__row--level-0]=\"rowNode.level === 0\"\n [class.tk-tree-table__row--level-1]=\"rowNode.level === 1\"\n [class.tk-tree-table__row--level-2]=\"rowNode.level >= 2\">\n <td class=\"tk-tree-table__cell\">\n <div class=\"tk-tree-table__row-container\" \n [class.tk-tree-table__row-container--level-0]=\"rowNode.level === 0\"\n [class.tk-tree-table__row-container--level-1]=\"rowNode.level === 1\"\n [class.tk-tree-table__row-container--level-2]=\"rowNode.level >= 2\"\n [style.padding-left.px]=\"rowNode.level * 32\">\n \n <!-- LEFT SIDE: Chevron + Icon + Label -->\n <div class=\"tk-tree-table__left\">\n <!-- Toggler Chevron -->\n @if (rowNode.node.children && rowNode.node.children.length > 0) {\n <tk-button \n class=\"tk-tree-table__toggler\" \n [class.tk-tree-table__toggler--rotated]=\"rowNode.node.expanded\"\n icon=\"chevron-right\"\n variant=\"text\"\n severity=\"secondary\"\n [ariaLabel]=\"rowNode.node.expanded ? 'Colapsar nodo' : 'Expandir nodo'\"\n (clicked)=\"toggleNode(rowNode)\">\n </tk-button>\n } @else {\n <span class=\"tk-tree-table__toggler-placeholder\"></span>\n }\n\n <!-- Icon Slot -->\n <div class=\"tk-tree-table__icon-wrapper\">\n @if (iconTemplate()) {\n <ng-container *ngTemplateOutlet=\"iconTemplate(); context: { $implicit: rowData }\"></ng-container>\n } @else if (rowData.icon) {\n <tk-icon \n [icon]=\"rowData.icon\" \n [styleIcon]=\"rowData.iconStyle || 'regular'\" \n class=\"tk-tree-table__icon\">\n </tk-icon>\n }\n </div>\n\n <!-- Label -->\n <span class=\"tk-tree-table__label\">{{ rowData.label }}</span>\n </div>\n\n <!-- CENTER SIDE: Custom Information Column -->\n @if (centerTemplate()) {\n <div class=\"tk-tree-table__center\">\n <ng-container *ngTemplateOutlet=\"centerTemplate(); context: { $implicit: rowData }\"></ng-container>\n </div>\n }\n\n <!-- RIGHT SIDE: Custom Dynamic Content Slot -->\n @if (rightTemplate()) {\n <div class=\"tk-tree-table__right\">\n <ng-container *ngTemplateOutlet=\"rightTemplate(); context: { $implicit: rowData }\"></ng-container>\n </div>\n }\n \n </div>\n </td>\n </tr>\n </ng-template>\n</p-treeTable>\n", styles: [":host{display:block;width:100%}:host ::ng-deep .tk-tree-table .p-treetable{border:1px solid var(--tk-color-base-surface-200, #e4e4e4);border-radius:var(--tk-borderRadius-m, 8px);overflow:hidden;background-color:var(--tk-color-base-surface-0, #ffffff);box-shadow:0 1px 3px #0000000d}:host ::ng-deep .tk-tree-table .p-treetable-scrollable-header,:host ::ng-deep .tk-tree-table .p-treetable-thead{display:none}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr{background-color:var(--tk-color-base-surface-0, #ffffff);border-bottom:1px solid var(--tk-color-base-surface-100, #f2f1f1);transition:background-color .2s ease}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr:last-child{border-bottom:none}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr:hover{background-color:var(--tk-color-base-surface-50, #fbfafa)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr.tk-tree-table__row--level-0{background-color:var(--tk-color-base-surface-50, #fbfafa)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr.tk-tree-table__row--level-1:hover{background-color:var(--tk-color-base-primary-50, #e8e6f1)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr.tk-tree-table__row--level-2:hover{background-color:var(--tk-color-base-primary-50, #e8e6f1)}:host ::ng-deep .tk-tree-table .p-treetable-tbody>tr>td{padding:0!important;border:none!important;background:transparent!important}.tk-tree-table__row-container{display:flex;align-items:center;justify-content:flex-start;padding:var(--tk-spacing-padding-s, 12px) var(--tk-spacing-padding-m, 16px);width:100%;box-sizing:border-box;min-height:56px;gap:var(--tk-spacing-base-100, 12px)}.tk-tree-table__row-container--level-0 .tk-tree-table__label{font-size:var(--tk-font-size-base-100, 1rem);font-weight:var(--tk-font-weight-600, 600);color:var(--tk-color-base-surface-950, #191a1b)}.tk-tree-table__row-container--level-0 .tk-tree-table__icon-wrapper{color:var(--tk-color-base-primary-300, #948abd)}.tk-tree-table__row-container--level-1 .tk-tree-table__label{font-size:var(--tk-font-size-base-100, 1rem);font-weight:var(--tk-font-weight-600, 600);color:var(--tk-color-base-surface-800, #303031)}.tk-tree-table__row-container--level-1 .tk-tree-table__icon-wrapper{color:var(--tk-color-base-primary-300, #948abd)}.tk-tree-table__row-container--level-2 .tk-tree-table__label{font-size:var(--tk-font-size-base-100, 1rem);font-weight:var(--tk-font-weight-400, 400);color:var(--tk-color-base-surface-700, #424243)}.tk-tree-table__row-container--level-2 .tk-tree-table__icon-wrapper{color:var(--tk-color-base-surface-300, #d2d2d2)}.tk-tree-table__left{display:flex;align-items:center;gap:var(--tk-spacing-base-100, 12px);flex-shrink:0}.tk-tree-table__center{display:flex;align-items:center;gap:var(--tk-spacing-base-100, 12px);margin-left:24px;flex-grow:1}.tk-tree-table__toggler{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}.tk-tree-table__toggler ::ng-deep .tk-button.p-button{background:transparent!important;border:none!important;padding:0!important;width:24px!important;height:24px!important;color:var(--tk-color-base-surface-500, #8a8a8b)!important;border-radius:var(--tk-border-radius-xs, 4px)!important;min-width:auto!important;transition:background-color .2s ease,color .2s ease}.tk-tree-table__toggler ::ng-deep .tk-button.p-button:hover{background-color:var(--tk-color-base-surface-100, #f2f1f1)!important;color:var(--tk-color-base-surface-800, #303031)!important}.tk-tree-table__toggler ::ng-deep tk-icon{transition:transform .2s cubic-bezier(.4,0,.2,1);display:inline-block}.tk-tree-table__toggler--rotated ::ng-deep tk-icon{transform:rotate(90deg)}.tk-tree-table__toggler-placeholder{width:24px;height:24px;display:inline-block}.tk-tree-table__icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:1.2rem}.tk-tree-table__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tk-tree-table__right{display:flex;align-items:center;gap:var(--tk-spacing-base-100, 12px);margin-left:auto}@media(max-width:640px){.tk-tree-table__row-container{flex-wrap:wrap;align-items:flex-start;gap:var(--tk-spacing-base-50, 8px);padding:var(--tk-spacing-padding-s, 12px)}.tk-tree-table__center{margin-left:0;padding-left:var(--tk-spacing-base-300, 36px);width:100%;flex-grow:0}.tk-tree-table__right{margin-left:0;padding-left:var(--tk-spacing-base-300, 36px);width:100%;margin-top:4px}}\n"] }]
87
+ }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], iconTemplate: [{ type: i0.ContentChild, args: ['iconTemplate', { isSignal: true }] }], centerTemplate: [{ type: i0.ContentChild, args: ['centerTemplate', { isSignal: true }] }], rightTemplate: [{ type: i0.ContentChild, args: ['rightTemplate', { isSignal: true }] }] } });
88
+
89
+ /**
90
+ * Generated bundle index. Do not edit.
91
+ */
92
+
93
+ export { TreeTableComponent };
94
+ //# sourceMappingURL=tekus-design-system-components-tree-table.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tekus-design-system-components-tree-table.mjs","sources":["../../../projects/design-system/components/tree-table/src/tree-table.component.ts","../../../projects/design-system/components/tree-table/src/tree-table.component.html","../../../projects/design-system/components/tree-table/tekus-design-system-components-tree-table.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n effect,\n input,\n signal,\n TemplateRef,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TreeTableModule } from 'primeng/treetable';\nimport { TreeNode } from 'primeng/api';\nimport { IconComponent } from '@tekus/design-system/components/icon';\nimport { ButtonComponent } from '@tekus/design-system/components/button';\nimport { TkTreeNode } from './tree-table.types';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'tk-tree-table',\n imports: [CommonModule, TreeTableModule, IconComponent, ButtonComponent],\n templateUrl: './tree-table.component.html',\n styleUrl: './tree-table.component.scss',\n})\nexport class TreeTableComponent {\n /**\n * Hierarchical list of tree nodes to render.\n */\n data = input<TkTreeNode[]>([]);\n\n /**\n * Custom template slot to render the icon on the left of each node label.\n * Usage: `<ng-template #iconTemplate let-node>...</ng-template>`\n */\n readonly iconTemplate = contentChild<TemplateRef<unknown>>('iconTemplate');\n\n /**\n * Custom template slot to render center information/indicators.\n * Usage: `<ng-template #centerTemplate let-node>...</ng-template>`\n */\n readonly centerTemplate = contentChild<TemplateRef<unknown>>('centerTemplate');\n\n /**\n * Custom template slot to render additional actions/content on the right of the row.\n * Usage: `<ng-template #rightTemplate let-node>...</ng-template>`\n */\n readonly rightTemplate = contentChild<TemplateRef<unknown>>('rightTemplate');\n\n /**\n * Internal representation of the tree nodes mapped to PrimeNG's format.\n */\n readonly primeNodes = signal<TreeNode[]>([]);\n\n constructor() {\n effect(() => {\n const mapped = this.mapToPrimeNodes(this.data());\n this.primeNodes.set(mapped);\n });\n }\n\n private mapToPrimeNodes(nodes: TkTreeNode[]): TreeNode[] {\n return nodes.map(node => ({\n key: node.id?.toString(),\n data: node,\n expanded: node.expanded ?? false,\n children: node.children?.length\n ? this.mapToPrimeNodes(node.children)\n : undefined,\n }));\n }\n\n /**\n * API Method: Recursively expands all nodes.\n */\n expandAll(): void {\n const updated = this.toggleAllNodes(this.primeNodes(), true);\n this.primeNodes.set(updated);\n }\n\n /**\n * API Method: Recursively collapses all nodes.\n */\n collapseAll(): void {\n const updated = this.toggleAllNodes(this.primeNodes(), false);\n this.primeNodes.set(updated);\n }\n\n private toggleAllNodes(nodes: TreeNode[], expanded: boolean): TreeNode[] {\n return nodes.map(node => ({\n ...node,\n expanded,\n children: node.children ? this.toggleAllNodes(node.children, expanded) : [],\n }));\n }\n\n /**\n * Toggles the expansion state of a specific node.\n */\n toggleNode(rowNode: { node: TreeNode; level?: number }): void {\n if (rowNode?.node) {\n rowNode.node.expanded = !rowNode.node.expanded;\n this.primeNodes.set([...this.primeNodes()]);\n }\n }\n}\n","<p-treeTable [value]=\"primeNodes()\" class=\"tk-tree-table\">\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\">\n <tr [ttRow]=\"rowNode\" \n class=\"tk-tree-table__row\"\n [class.tk-tree-table__row--level-0]=\"rowNode.level === 0\"\n [class.tk-tree-table__row--level-1]=\"rowNode.level === 1\"\n [class.tk-tree-table__row--level-2]=\"rowNode.level >= 2\">\n <td class=\"tk-tree-table__cell\">\n <div class=\"tk-tree-table__row-container\" \n [class.tk-tree-table__row-container--level-0]=\"rowNode.level === 0\"\n [class.tk-tree-table__row-container--level-1]=\"rowNode.level === 1\"\n [class.tk-tree-table__row-container--level-2]=\"rowNode.level >= 2\"\n [style.padding-left.px]=\"rowNode.level * 32\">\n \n <!-- LEFT SIDE: Chevron + Icon + Label -->\n <div class=\"tk-tree-table__left\">\n <!-- Toggler Chevron -->\n @if (rowNode.node.children && rowNode.node.children.length > 0) {\n <tk-button \n class=\"tk-tree-table__toggler\" \n [class.tk-tree-table__toggler--rotated]=\"rowNode.node.expanded\"\n icon=\"chevron-right\"\n variant=\"text\"\n severity=\"secondary\"\n [ariaLabel]=\"rowNode.node.expanded ? 'Colapsar nodo' : 'Expandir nodo'\"\n (clicked)=\"toggleNode(rowNode)\">\n </tk-button>\n } @else {\n <span class=\"tk-tree-table__toggler-placeholder\"></span>\n }\n\n <!-- Icon Slot -->\n <div class=\"tk-tree-table__icon-wrapper\">\n @if (iconTemplate()) {\n <ng-container *ngTemplateOutlet=\"iconTemplate(); context: { $implicit: rowData }\"></ng-container>\n } @else if (rowData.icon) {\n <tk-icon \n [icon]=\"rowData.icon\" \n [styleIcon]=\"rowData.iconStyle || 'regular'\" \n class=\"tk-tree-table__icon\">\n </tk-icon>\n }\n </div>\n\n <!-- Label -->\n <span class=\"tk-tree-table__label\">{{ rowData.label }}</span>\n </div>\n\n <!-- CENTER SIDE: Custom Information Column -->\n @if (centerTemplate()) {\n <div class=\"tk-tree-table__center\">\n <ng-container *ngTemplateOutlet=\"centerTemplate(); context: { $implicit: rowData }\"></ng-container>\n </div>\n }\n\n <!-- RIGHT SIDE: Custom Dynamic Content Slot -->\n @if (rightTemplate()) {\n <div class=\"tk-tree-table__right\">\n <ng-container *ngTemplateOutlet=\"rightTemplate(); context: { $implicit: rowData }\"></ng-container>\n </div>\n }\n \n </div>\n </td>\n </tr>\n </ng-template>\n</p-treeTable>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -7,16 +7,16 @@ import { Subject } from 'rxjs';
7
7
 
8
8
  var GapGutter;
9
9
  (function (GapGutter) {
10
- GapGutter["normal"] = "24px";
11
- GapGutter["small"] = "16px";
12
- GapGutter["large"] = "32px";
13
- GapGutter["extraLarge"] = "40px";
10
+ GapGutter["normal"] = "var(--tk-spacing-gap-l, 1.5rem)";
11
+ GapGutter["small"] = "var(--tk-spacing-gap-m, 1rem)";
12
+ GapGutter["large"] = "var(--tk-spacing-base-200, 2rem)";
13
+ GapGutter["extraLarge"] = "var(--tk-spacing-gap-xl, 2.5rem)";
14
14
  })(GapGutter || (GapGutter = {}));
15
15
  var PaddingGridContainer;
16
16
  (function (PaddingGridContainer) {
17
- PaddingGridContainer["large"] = "32px";
18
- PaddingGridContainer["medium"] = "24px";
19
- PaddingGridContainer["small"] = "16px";
17
+ PaddingGridContainer["large"] = "var(--tk-spacing-base-200, 2rem)";
18
+ PaddingGridContainer["medium"] = "var(--tk-spacing-padding-xl, 1.5rem)";
19
+ PaddingGridContainer["small"] = "var(--tk-spacing-padding-m, 1rem)";
20
20
  })(PaddingGridContainer || (PaddingGridContainer = {}));
21
21
  var Gutter;
22
22
  (function (Gutter) {
@@ -449,6 +449,21 @@ const tkOverrides = {
449
449
  },
450
450
  },
451
451
  },
452
+ treetable: {
453
+ root: {
454
+ borderColor: 'var(--tk-color-base-surface-200)',
455
+ background: 'var(--tk-color-base-surface-0)',
456
+ },
457
+ header: {
458
+ background: 'transparent',
459
+ borderColor: 'transparent',
460
+ },
461
+ row: {
462
+ background: 'var(--tk-color-base-surface-0)',
463
+ borderColor: 'var(--tk-color-base-surface-100)',
464
+ hoverBackground: 'var(--tk-color-base-surface-50)',
465
+ },
466
+ },
452
467
  },
453
468
  };
454
469
  const TkPreset = definePreset(Aura, tkOverrides);
@@ -1 +1 @@
1
- {"version":3,"file":"tekus-design-system-core-types.mjs","sources":["../../../projects/design-system/core/types/src/grids/grid.enum.ts","../../../projects/design-system/core/types/src/breakpoints/breakpoints.ts","../../../projects/design-system/core/types/src/theme/tk-preset.ts","../../../projects/design-system/core/types/src/theme/theme.provider.ts","../../../projects/design-system/core/types/src/interception/dialog-ref.ts","../../../projects/design-system/core/types/tekus-design-system-core-types.ts"],"sourcesContent":["enum GapGutter {\n normal = '24px',\n small = '16px',\n large = '32px',\n extraLarge = '40px',\n}\n\nenum PaddingGridContainer {\n large = '32px',\n medium = '24px',\n small = '16px'\n}\n\nenum Gutter {\n normal = 'normal',\n small = 'small',\n large = 'large',\n extraLarge = 'extraLarge',\n\n}\n\nexport {\n Gutter,\n GapGutter,\n PaddingGridContainer\n}","export const Breakpoints = {\n // Covers all devices with a width less than or equal to 360px.\n mobileSmall: '(max-width: 360px)',\n\n // For small phones (e.g., most modern cell phones)\n mobile: '(min-width: 361px) and (max-width: 424px)',\n\n // For large phones (e.g., Google Pixel, iPhone Plus/Max)\n mobileLarge: '(min-width: 425px) and (max-width: 575px)',\n\n // Vertical tablets and medium-sized devices\n tabletVertical: '(min-width: 576px) and (max-width: 767px)',\n\n // Tablets in landscape mode\n tabletHorizontal: '(min-width: 768px) and (max-width: 991px)',\n\n // Laptops and small desktops\n desktopSmall: '(min-width: 992px) and (max-width: 1199px)',\n\n // Large desks\n desktop: '(min-width: 1200px) and (max-width: 1399px)',\n\n // Ultra-wide screens\n desktopLarge: '(min-width: 1400px)',\n}","import { definePreset } from '@primeuix/themes';\nimport type { Preset } from '@primeuix/themes/types';\nimport Aura from '@primeuix/themes/aura';\n\nconst tkOverrides = {\n semantic: {\n primary: {\n 50: 'var(--tk-color-base-primary-50)',\n 100: 'var(--tk-color-base-primary-100)',\n 200: 'var(--tk-color-base-primary-200)',\n 300: 'var(--tk-color-base-primary-300)',\n 400: 'var(--tk-color-base-primary-400)',\n 500: 'var(--tk-color-base-primary-500)',\n 600: 'var(--tk-color-base-primary-600)',\n 700: 'var(--tk-color-base-primary-700)',\n 800: 'var(--tk-color-base-primary-800)',\n 900: 'var(--tk-color-base-primary-900)',\n 950: 'var(--tk-color-base-primary-950)',\n },\n red: {\n 50: 'var(--tk-color-base-red-50)',\n 100: 'var(--tk-color-base-red-100)',\n 200: 'var(--tk-color-base-red-200)',\n 300: 'var(--tk-color-base-red-300)',\n 400: 'var(--tk-color-base-red-400)',\n 500: 'var(--tk-color-base-red-500)',\n 600: 'var(--tk-color-base-red-600)',\n 700: 'var(--tk-color-base-red-700)',\n 800: 'var(--tk-color-base-red-800)',\n 900: 'var(--tk-color-base-red-900)',\n 950: 'var(--tk-color-base-red-950)',\n },\n surface: {\n 0: 'var(--tk-color-base-surface-0)',\n 50: 'var(--tk-color-base-surface-50)',\n 100: 'var(--tk-color-base-surface-100)',\n 200: 'var(--tk-color-base-surface-200)',\n 300: 'var(--tk-color-base-surface-300)',\n 400: 'var(--tk-color-base-surface-400)',\n 500: 'var(--tk-color-base-surface-500)',\n 600: 'var(--tk-color-base-surface-600)',\n 700: 'var(--tk-color-base-surface-700)',\n 800: 'var(--tk-color-base-surface-800)',\n 900: 'var(--tk-color-base-surface-900)',\n 950: 'var(--tk-color-base-surface-950)',\n },\n sky:{\n 50: 'var(--tk-color-base-sky-50)',\n 100: 'var(--tk-color-base-sky-100)',\n 200: 'var(--tk-color-base-sky-200)',\n 300: 'var(--tk-color-base-sky-300)',\n 400: 'var(--tk-color-base-sky-400)',\n 500: 'var(--tk-color-base-sky-500)',\n 600: 'var(--tk-color-base-sky-600)',\n 700: 'var(--tk-color-base-sky-700)',\n 800: 'var(--tk-color-base-sky-800)',\n 900: 'var(--tk-color-base-sky-900)',\n 950: 'var(--tk-color-base-sky-950)',\n },\n orange:{\n 50: 'var(--tk-color-base-yellow-50)',\n 100: 'var(--tk-color-base-yellow-100)',\n 200: 'var(--tk-color-base-yellow-200)',\n 300: 'var(--tk-color-base-yellow-300)',\n 400: 'var(--tk-color-base-yellow-400)',\n 500: 'var(--tk-color-base-yellow-500)',\n 600: 'var(--tk-color-base-yellow-600)',\n 700: 'var(--tk-color-base-yellow-700)',\n 800: 'var(--tk-color-base-yellow-800)',\n 900: 'var(--tk-color-base-yellow-900)',\n 950: 'var(--tk-color-base-yellow-950)',\n },\n },\n font: {\n family: 'var(--tk-font-family)',\n },\n\n components: {\n button: {\n root: {\n outline: 'none',\n boxShadow: 'none',\n border: 'none',\n focusBoxShadow: 'none',\n },\n label: {\n color: 'inherit',\n },\n colorScheme: {\n light: {\n root: {\n primary: {\n hoverBackground: 'var(--tk-color-base-primary-400)',\n activeBackground: 'var(--tk-color-base-primary-400)',\n hoverBorderColor: 'transparent',\n activeBorderColor: 'transparent',\n },\n secondary: {\n background: 'var(--tk-color-base-surface-100)',\n hoverBackground: 'var(--tk-color-base-surface-400)',\n },\n },\n text: {\n secondary: {\n hoverBackground: 'var(--tk-color-base-surface-200)',\n activeBackground: 'var(--tk-color-base-surface-200)',\n },\n },\n outlined: {\n secondary: {\n hoverBackground: 'var(--tk-color-base-surface-200)',\n activeBackground: 'var(--tk-color-base-surface-200)',\n borderColor: 'var(--tk-color-base-surface-200)',\n },\n },\n }\n },\n },\n tag: {\n root: {\n fontWeight: 'var(--tk-font-weight-400)',\n borderRadius: 'var(--tk-borderRadius-full)',\n },\n colorScheme: {\n light: {\n secondary:{\n color: 'var(--tk-color-base-surface-950)',\n }\n },\n },\n },\n message: {\n text: {\n fontWeight: '400',\n fontSize: 'var(--tk-font-size-paragraph-s)',\n },\n colorScheme: {\n light: {\n info: {\n background: 'var(--tk-color-feedback-info-muted)',\n borderColor: 'var(--tk-color-feedback-info-default)',\n color: 'var(--tk-color-feedback-info-strong)',\n shadow: 'none',\n },\n success: {\n background: 'var(--tk-color-feedback-success-muted)',\n borderColor: 'var(--tk-color-feedback-success-default)',\n color: 'var(--tk-color-feedback-success-strong)',\n shadow: 'none',\n },\n warn: {\n background: 'var(--tk-color-feedback-warn-muted)',\n borderColor: 'var(--tk-color-feedback-warn-default)',\n color: 'var(--tk-color-feedback-warn-strong)',\n shadow: 'none',\n },\n error: {\n background: 'var(--tk-color-feedback-danger-muted)',\n borderColor: 'var(--tk-color-feedback-danger-default)',\n color: 'var(--tk-color-feedback-danger-strong)',\n shadow: 'none',\n },\n secondary: {\n color: 'var(--tk-color-base-surface-600)',\n simple: {\n color: 'var(--tk-color-base-surface-600)',\n },\n },\n },\n },\n },\n tooltip: {\n colorScheme: {\n light: {\n root: {\n background: 'var(--tk-color-base-surface-700)',\n }\n }\n }\n },\n checkbox: {\n colorScheme: {\n light: {\n root: {\n borderColor: 'var(--tk-color-base-surface-400)',\n checkedBackground: 'var(--tk-color-base-primary-500)',\n checkedBorderColor: 'var(--tk-color-base-primary-500)',\n checkedHoverBackground: 'var(--tk-color-base-primary-600)',\n checkedHoverBorderColor: 'var(--tk-color-base-primary-600)',\n disabledBackground: 'var(--tk-color-base-surface-100)',\n disabledBorderColor: 'var(--tk-color-base-surface-300)',\n checkedDisabledBorderColor: 'var(--tk-color-base-surface-300)',\n }\n }\n }\n },\n radiobutton: {\n colorScheme: {\n light: {\n root: {\n borderColor: 'var(--tk-color-base-surface-400)',\n checkedBackground: 'var(--tk-color-base-primary-500)',\n checkedBorderColor: 'var(--tk-color-base-primary-500)',\n checkedHoverBackground: 'var(--tk-color-base-primary-600)',\n checkedHoverBorderColor: 'var(--tk-color-base-primary-600)',\n disabledBackground: 'var(--tk-color-base-surface-100)',\n disabledBorderColor: 'var(--tk-color-base-surface-300)',\n checkedDisabledBackground: 'var(--tk-color-base-surface-100)',\n checkedDisabledBorderColor: 'var(--tk-color-base-surface-300)',\n }\n }\n }\n },\n panel: {\n root: {\n background: 'var(--tk-color-background-soft)',\n borderRadius: 'var(--tk-borderRadius-s)',\n borderColor: 'var(--tk-color-transparent)',\n },\n header: {\n background: 'transparent',\n color: 'var(--tk-color-text-default)',\n borderColor: 'var(--tk-color-transparent)',\n borderWidth: '0',\n padding: 'var(--tk-spacing-padding-m)',\n fontWeight: 'var(--tk-font-weight-600)',\n fontSize: 'var(--tk-font-size-paragraph-m)',\n },\n toggleableHeader: {\n padding: 'var(--tk-spacing-padding-s) var(--tk-spacing-padding-m)',\n },\n content: {\n padding: 'var(--tk-spacing-padding-l)',\n },\n },\n drawer: {\n header: {\n padding: 'var(--tk-spacing-padding-m)',\n },\n content: {\n padding: 'var(--tk-spacing-padding-m)',\n },\n },\n toast: {\n info: {\n background: 'var(--tk-color-base-sky-100)',\n borderColor: 'var(--tk-color-base-sky-500)',\n color: 'var(--tk-color-base-sky-700)',\n detailColor: 'var(--tk-color-base-surface-700)',\n closeButton: {\n hoverBackground: 'var(--tk-color-base-sky-100)',\n focusRing: {\n color: 'var(--tk-color-base-sky-600)',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'var(--tk-color-base-green-100)',\n borderColor: 'var(--tk-color-base-green-500)',\n color: 'var(--tk-color-base-green-700)',\n detailColor: 'var(--tk-color-base-surface-700)',\n closeButton: {\n hoverBackground: 'var(--tk-color-base-green-100)',\n focusRing: {\n color: 'var(--tk-color-base-green-600)',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'var(--tk-color-base-red-100)',\n borderColor: 'var(--tk-color-base-red-500)',\n color: 'var(--tk-color-base-red-700)',\n detailColor: 'var(--tk-color-base-surface-700)',\n closeButton: {\n hoverBackground: 'var(--tk-color-base-red-100)',\n focusRing: {\n color: 'var(--tk-color-base-red-600)',\n shadow: 'none'\n }\n }\n }\n },\n menu: {\n root: {\n background: 'transparent',\n borderColor: 'transparent',\n borderRadius: 'var(--tk-borderRadius-s)',\n padding: 'var(--tk-spacing-base-50)',\n color: 'var(--tk-color-base-surface-950)',\n },\n list: {\n padding: '0',\n gap: 'var(--tk-spacing-base-25)',\n },\n item: {\n focusBackground: 'transparent',\n activeBackground: 'transparent',\n hoverBackground: 'transparent',\n padding: 'var(--tk-spacing-base-75) var(--tk-spacing-base-100)',\n borderRadius: 'var(--tk-borderRadius-s)',\n gap: 'var(--tk-spacing-base-75)',\n color: 'var(--tk-color-base-surface-950)',\n },\n submenuLabel: {\n padding: 'var(--tk-spacing-base-100) var(--tk-spacing-base-50) var(--tk-spacing-base-50)',\n fontWeight: 'var(--tk-font-weight-600)',\n color: 'var(--tk-color-base-surface-950)',\n },\n separator: {\n margin: 'var(--tk-spacing-base-75) 0',\n borderColor: 'var(--tk-color-base-surface-100)',\n },\n },\n popover: {\n root: {\n background: 'var(--tk-color-base-surface-0)',\n borderColor: 'var(--tk-color-base-surface-200)',\n borderRadius: 'var(--tk-borderRadius-s)',\n shadow: '0 4px 12px rgba(0, 0, 0, 0.08)',\n },\n content: {\n padding: '0',\n },\n },\n panelMenu: {\n root: {\n background: 'transparent',\n borderColor: 'transparent',\n gap: 'var(--tk-spacing-base-50)',\n },\n panel: {\n background: 'transparent',\n borderColor: 'transparent',\n borderWidth: '0',\n padding: '0',\n borderRadius: 'var(--tk-borderRadius-s)',\n first: { borderWidth: '0' },\n last: { borderWidth: '0' },\n },\n item: {\n focusBackground: 'transparent',\n activeBackground: 'transparent',\n hoverBackground: 'transparent',\n padding: '0',\n gap: '0',\n borderRadius: 'var(--tk-borderRadius-s)',\n },\n submenu: {\n indent: '0',\n },\n submenuIcon: {\n color: 'transparent',\n focusColor: 'transparent',\n },\n },\n stepper: {\n colorScheme: {\n light: {\n separator: {\n background: 'var(--tk-color-base-surface-200)',\n activeBackground: 'var(--tk-color-base-primary-500)',\n },\n stepTitle: {\n color: 'var(--tk-color-text-muted)',\n activeColor: 'var(--tk-color-base-primary-500)',\n },\n stepNumber: {\n background: 'var(--tk-color-base-surface-0)',\n activeBackground: 'var(--tk-color-base-surface-0)',\n borderColor: 'var(--tk-color-base-surface-300)',\n activeBorderColor: 'var(--tk-color-base-primary-500)',\n color: 'var(--tk-color-text-muted)',\n activeColor: 'var(--tk-color-base-primary-500)',\n shadow: 'none',\n },\n }\n }\n },\n chip: {\n root: {\n borderRadius: 'var(--tk-borderRadius-full, 62.4375rem)',\n paddingX: '0.5rem',\n paddingY: '0.25rem',\n gap: '0.375rem',\n background: 'var(--tk-color-background-soft, #f2f1f1)',\n color: 'var(--tk-color-base-surface-700, #424243)',\n },\n image: {\n width: '1.5rem',\n height: '1.5rem',\n },\n icon: {\n size: '0.875rem',\n color: 'var(--tk-color-base-surface-700, #424243)',\n },\n removeIcon: {\n size: '1.125rem',\n color: 'var(--tk-color-base-surface-700, #424243)',\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: 'none',\n },\n },\n },\n },\n};\n\nexport const TkPreset: Preset = definePreset(Aura, tkOverrides as Preset);\n","import { inject, provideAppInitializer, DOCUMENT } from '@angular/core';\n\nimport { PrimeNG } from 'primeng/config';\nimport { TkPreset } from './tk-preset';\n\nfunction themeFactory(config: PrimeNG, document: Document): () => void {\n return () => {\n const fontLink = document.createElement('link');\n fontLink.rel = 'stylesheet';\n fontLink.href =\n 'https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap';\n document.head.appendChild(fontLink);\n\n const style = document.createElement('style');\n style.innerHTML = `\n body {\n font-family: 'Poppins', sans-serif;\n }\n `;\n document.head.appendChild(style);\n\n config.theme.set({\n preset: TkPreset,\n options: {\n prefix: 'tk',\n darkMode: false,\n darkModeSelector: false\n },\n });\n\n // Ensure PrimeNG overlays appear above Material Dialogs (Z-Index 1000)\n config.zIndex.modal = 1100;\n config.zIndex.overlay = 12000;\n config.zIndex.menu = 1100;\n config.zIndex.tooltip = 1100;\n };\n}\n\nexport function provideTkTheme() {\n return provideAppInitializer(() => {\n const config = inject(PrimeNG);\n const document = inject(DOCUMENT);\n return themeFactory(config, document)();\n });\n}\n","import { ComponentRef, signal, Injectable } from '@angular/core';\nimport { Subject, PartialObserver, Subscription } from 'rxjs';\n\n/**\n * Reference to a dialog/drawer opened via a service.\n * Supports both Observable-style subscription and Signal-based state.\n */\n@Injectable()\nexport class TkDialogRef<T, R = unknown> {\n private readonly closedSubject = new Subject<R | undefined>();\n private readonly resultSignal = signal<R | undefined>(undefined);\n private readonly isClosedSignal = signal<boolean>(false);\n\n /**\n * Signal that holds the result of the dialog after it closes.\n */\n readonly result = this.resultSignal.asReadonly();\n\n /**\n * Signal that indicates if the dialog has been closed.\n */\n readonly isClosed = this.isClosedSignal.asReadonly();\n\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(public readonly componentRef: ComponentRef<T>) {}\n\n /**\n * The instance of the component opened in the dialog.\n */\n get componentInstance(): T {\n return this.componentRef.instance;\n }\n\n /**\n * Closes the dialog, optionally passing a result back.\n * Internal implementation calls the component's tryClose to respect guards.\n */\n close(result?: R): void {\n const instance = this.componentRef.instance as unknown as {\n tryClose?: (result?: R) => void;\n };\n if (instance && typeof instance.tryClose === 'function') {\n instance.tryClose(result);\n }\n }\n\n /**\n * Subscribes to the closure event.\n * This maintains compatibility with existing service.open(...).subscribe() patterns\n * using the modern RxJS signature.\n */\n subscribe(\n nextOrObserver?:\n | ((value: R | undefined) => void)\n | PartialObserver<R | undefined>\n ): Subscription {\n if (typeof nextOrObserver === 'function') {\n return this.closedSubject.subscribe({ next: nextOrObserver });\n }\n return this.closedSubject.subscribe(nextOrObserver);\n }\n\n /**\n * Supports RxJS operators on the closure event.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pipe(...args: any[]): any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (this.closedSubject.pipe as any)(...args);\n }\n\n /**\n * Returns an Observable that emits when the dialog is closed.\n */\n afterClosed(): Subject<R | undefined> {\n return this.closedSubject;\n }\n\n /**\n * Internal method to emit the result and update reactive state.\n * Not intended for public use outside the opening service.\n */\n emitClose(result?: R): void {\n if (this.isClosedSignal()) {\n return;\n }\n this.resultSignal.set(result === null ? undefined : result);\n this.isClosedSignal.set(true);\n this.closedSubject.next(result === null ? undefined : result);\n this.closedSubject.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tekus-design-system-core-types.mjs","sources":["../../../projects/design-system/core/types/src/grids/grid.enum.ts","../../../projects/design-system/core/types/src/breakpoints/breakpoints.ts","../../../projects/design-system/core/types/src/theme/tk-preset.ts","../../../projects/design-system/core/types/src/theme/theme.provider.ts","../../../projects/design-system/core/types/src/interception/dialog-ref.ts","../../../projects/design-system/core/types/tekus-design-system-core-types.ts"],"sourcesContent":["enum GapGutter {\n normal = 'var(--tk-spacing-gap-l, 1.5rem)',\n small = 'var(--tk-spacing-gap-m, 1rem)',\n large = 'var(--tk-spacing-base-200, 2rem)',\n extraLarge = 'var(--tk-spacing-gap-xl, 2.5rem)',\n}\n\nenum PaddingGridContainer {\n large = 'var(--tk-spacing-base-200, 2rem)',\n medium = 'var(--tk-spacing-padding-xl, 1.5rem)',\n small = 'var(--tk-spacing-padding-m, 1rem)'\n}\n\nenum Gutter {\n normal = 'normal',\n small = 'small',\n large = 'large',\n extraLarge = 'extraLarge',\n\n}\n\nexport {\n Gutter,\n GapGutter,\n PaddingGridContainer\n}","export const Breakpoints = {\n // Covers all devices with a width less than or equal to 360px.\n mobileSmall: '(max-width: 360px)',\n\n // For small phones (e.g., most modern cell phones)\n mobile: '(min-width: 361px) and (max-width: 424px)',\n\n // For large phones (e.g., Google Pixel, iPhone Plus/Max)\n mobileLarge: '(min-width: 425px) and (max-width: 575px)',\n\n // Vertical tablets and medium-sized devices\n tabletVertical: '(min-width: 576px) and (max-width: 767px)',\n\n // Tablets in landscape mode\n tabletHorizontal: '(min-width: 768px) and (max-width: 991px)',\n\n // Laptops and small desktops\n desktopSmall: '(min-width: 992px) and (max-width: 1199px)',\n\n // Large desks\n desktop: '(min-width: 1200px) and (max-width: 1399px)',\n\n // Ultra-wide screens\n desktopLarge: '(min-width: 1400px)',\n}","import { definePreset } from '@primeuix/themes';\nimport type { Preset } from '@primeuix/themes/types';\nimport Aura from '@primeuix/themes/aura';\n\nconst tkOverrides = {\n semantic: {\n primary: {\n 50: 'var(--tk-color-base-primary-50)',\n 100: 'var(--tk-color-base-primary-100)',\n 200: 'var(--tk-color-base-primary-200)',\n 300: 'var(--tk-color-base-primary-300)',\n 400: 'var(--tk-color-base-primary-400)',\n 500: 'var(--tk-color-base-primary-500)',\n 600: 'var(--tk-color-base-primary-600)',\n 700: 'var(--tk-color-base-primary-700)',\n 800: 'var(--tk-color-base-primary-800)',\n 900: 'var(--tk-color-base-primary-900)',\n 950: 'var(--tk-color-base-primary-950)',\n },\n red: {\n 50: 'var(--tk-color-base-red-50)',\n 100: 'var(--tk-color-base-red-100)',\n 200: 'var(--tk-color-base-red-200)',\n 300: 'var(--tk-color-base-red-300)',\n 400: 'var(--tk-color-base-red-400)',\n 500: 'var(--tk-color-base-red-500)',\n 600: 'var(--tk-color-base-red-600)',\n 700: 'var(--tk-color-base-red-700)',\n 800: 'var(--tk-color-base-red-800)',\n 900: 'var(--tk-color-base-red-900)',\n 950: 'var(--tk-color-base-red-950)',\n },\n surface: {\n 0: 'var(--tk-color-base-surface-0)',\n 50: 'var(--tk-color-base-surface-50)',\n 100: 'var(--tk-color-base-surface-100)',\n 200: 'var(--tk-color-base-surface-200)',\n 300: 'var(--tk-color-base-surface-300)',\n 400: 'var(--tk-color-base-surface-400)',\n 500: 'var(--tk-color-base-surface-500)',\n 600: 'var(--tk-color-base-surface-600)',\n 700: 'var(--tk-color-base-surface-700)',\n 800: 'var(--tk-color-base-surface-800)',\n 900: 'var(--tk-color-base-surface-900)',\n 950: 'var(--tk-color-base-surface-950)',\n },\n sky:{\n 50: 'var(--tk-color-base-sky-50)',\n 100: 'var(--tk-color-base-sky-100)',\n 200: 'var(--tk-color-base-sky-200)',\n 300: 'var(--tk-color-base-sky-300)',\n 400: 'var(--tk-color-base-sky-400)',\n 500: 'var(--tk-color-base-sky-500)',\n 600: 'var(--tk-color-base-sky-600)',\n 700: 'var(--tk-color-base-sky-700)',\n 800: 'var(--tk-color-base-sky-800)',\n 900: 'var(--tk-color-base-sky-900)',\n 950: 'var(--tk-color-base-sky-950)',\n },\n orange:{\n 50: 'var(--tk-color-base-yellow-50)',\n 100: 'var(--tk-color-base-yellow-100)',\n 200: 'var(--tk-color-base-yellow-200)',\n 300: 'var(--tk-color-base-yellow-300)',\n 400: 'var(--tk-color-base-yellow-400)',\n 500: 'var(--tk-color-base-yellow-500)',\n 600: 'var(--tk-color-base-yellow-600)',\n 700: 'var(--tk-color-base-yellow-700)',\n 800: 'var(--tk-color-base-yellow-800)',\n 900: 'var(--tk-color-base-yellow-900)',\n 950: 'var(--tk-color-base-yellow-950)',\n },\n },\n font: {\n family: 'var(--tk-font-family)',\n },\n\n components: {\n button: {\n root: {\n outline: 'none',\n boxShadow: 'none',\n border: 'none',\n focusBoxShadow: 'none',\n },\n label: {\n color: 'inherit',\n },\n colorScheme: {\n light: {\n root: {\n primary: {\n hoverBackground: 'var(--tk-color-base-primary-400)',\n activeBackground: 'var(--tk-color-base-primary-400)',\n hoverBorderColor: 'transparent',\n activeBorderColor: 'transparent',\n },\n secondary: {\n background: 'var(--tk-color-base-surface-100)',\n hoverBackground: 'var(--tk-color-base-surface-400)',\n },\n },\n text: {\n secondary: {\n hoverBackground: 'var(--tk-color-base-surface-200)',\n activeBackground: 'var(--tk-color-base-surface-200)',\n },\n },\n outlined: {\n secondary: {\n hoverBackground: 'var(--tk-color-base-surface-200)',\n activeBackground: 'var(--tk-color-base-surface-200)',\n borderColor: 'var(--tk-color-base-surface-200)',\n },\n },\n }\n },\n },\n tag: {\n root: {\n fontWeight: 'var(--tk-font-weight-400)',\n borderRadius: 'var(--tk-borderRadius-full)',\n },\n colorScheme: {\n light: {\n secondary:{\n color: 'var(--tk-color-base-surface-950)',\n }\n },\n },\n },\n message: {\n text: {\n fontWeight: '400',\n fontSize: 'var(--tk-font-size-paragraph-s)',\n },\n colorScheme: {\n light: {\n info: {\n background: 'var(--tk-color-feedback-info-muted)',\n borderColor: 'var(--tk-color-feedback-info-default)',\n color: 'var(--tk-color-feedback-info-strong)',\n shadow: 'none',\n },\n success: {\n background: 'var(--tk-color-feedback-success-muted)',\n borderColor: 'var(--tk-color-feedback-success-default)',\n color: 'var(--tk-color-feedback-success-strong)',\n shadow: 'none',\n },\n warn: {\n background: 'var(--tk-color-feedback-warn-muted)',\n borderColor: 'var(--tk-color-feedback-warn-default)',\n color: 'var(--tk-color-feedback-warn-strong)',\n shadow: 'none',\n },\n error: {\n background: 'var(--tk-color-feedback-danger-muted)',\n borderColor: 'var(--tk-color-feedback-danger-default)',\n color: 'var(--tk-color-feedback-danger-strong)',\n shadow: 'none',\n },\n secondary: {\n color: 'var(--tk-color-base-surface-600)',\n simple: {\n color: 'var(--tk-color-base-surface-600)',\n },\n },\n },\n },\n },\n tooltip: {\n colorScheme: {\n light: {\n root: {\n background: 'var(--tk-color-base-surface-700)',\n }\n }\n }\n },\n checkbox: {\n colorScheme: {\n light: {\n root: {\n borderColor: 'var(--tk-color-base-surface-400)',\n checkedBackground: 'var(--tk-color-base-primary-500)',\n checkedBorderColor: 'var(--tk-color-base-primary-500)',\n checkedHoverBackground: 'var(--tk-color-base-primary-600)',\n checkedHoverBorderColor: 'var(--tk-color-base-primary-600)',\n disabledBackground: 'var(--tk-color-base-surface-100)',\n disabledBorderColor: 'var(--tk-color-base-surface-300)',\n checkedDisabledBorderColor: 'var(--tk-color-base-surface-300)',\n }\n }\n }\n },\n radiobutton: {\n colorScheme: {\n light: {\n root: {\n borderColor: 'var(--tk-color-base-surface-400)',\n checkedBackground: 'var(--tk-color-base-primary-500)',\n checkedBorderColor: 'var(--tk-color-base-primary-500)',\n checkedHoverBackground: 'var(--tk-color-base-primary-600)',\n checkedHoverBorderColor: 'var(--tk-color-base-primary-600)',\n disabledBackground: 'var(--tk-color-base-surface-100)',\n disabledBorderColor: 'var(--tk-color-base-surface-300)',\n checkedDisabledBackground: 'var(--tk-color-base-surface-100)',\n checkedDisabledBorderColor: 'var(--tk-color-base-surface-300)',\n }\n }\n }\n },\n panel: {\n root: {\n background: 'var(--tk-color-background-soft)',\n borderRadius: 'var(--tk-borderRadius-s)',\n borderColor: 'var(--tk-color-transparent)',\n },\n header: {\n background: 'transparent',\n color: 'var(--tk-color-text-default)',\n borderColor: 'var(--tk-color-transparent)',\n borderWidth: '0',\n padding: 'var(--tk-spacing-padding-m)',\n fontWeight: 'var(--tk-font-weight-600)',\n fontSize: 'var(--tk-font-size-paragraph-m)',\n },\n toggleableHeader: {\n padding: 'var(--tk-spacing-padding-s) var(--tk-spacing-padding-m)',\n },\n content: {\n padding: 'var(--tk-spacing-padding-l)',\n },\n },\n drawer: {\n header: {\n padding: 'var(--tk-spacing-padding-m)',\n },\n content: {\n padding: 'var(--tk-spacing-padding-m)',\n },\n },\n toast: {\n info: {\n background: 'var(--tk-color-base-sky-100)',\n borderColor: 'var(--tk-color-base-sky-500)',\n color: 'var(--tk-color-base-sky-700)',\n detailColor: 'var(--tk-color-base-surface-700)',\n closeButton: {\n hoverBackground: 'var(--tk-color-base-sky-100)',\n focusRing: {\n color: 'var(--tk-color-base-sky-600)',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'var(--tk-color-base-green-100)',\n borderColor: 'var(--tk-color-base-green-500)',\n color: 'var(--tk-color-base-green-700)',\n detailColor: 'var(--tk-color-base-surface-700)',\n closeButton: {\n hoverBackground: 'var(--tk-color-base-green-100)',\n focusRing: {\n color: 'var(--tk-color-base-green-600)',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'var(--tk-color-base-red-100)',\n borderColor: 'var(--tk-color-base-red-500)',\n color: 'var(--tk-color-base-red-700)',\n detailColor: 'var(--tk-color-base-surface-700)',\n closeButton: {\n hoverBackground: 'var(--tk-color-base-red-100)',\n focusRing: {\n color: 'var(--tk-color-base-red-600)',\n shadow: 'none'\n }\n }\n }\n },\n menu: {\n root: {\n background: 'transparent',\n borderColor: 'transparent',\n borderRadius: 'var(--tk-borderRadius-s)',\n padding: 'var(--tk-spacing-base-50)',\n color: 'var(--tk-color-base-surface-950)',\n },\n list: {\n padding: '0',\n gap: 'var(--tk-spacing-base-25)',\n },\n item: {\n focusBackground: 'transparent',\n activeBackground: 'transparent',\n hoverBackground: 'transparent',\n padding: 'var(--tk-spacing-base-75) var(--tk-spacing-base-100)',\n borderRadius: 'var(--tk-borderRadius-s)',\n gap: 'var(--tk-spacing-base-75)',\n color: 'var(--tk-color-base-surface-950)',\n },\n submenuLabel: {\n padding: 'var(--tk-spacing-base-100) var(--tk-spacing-base-50) var(--tk-spacing-base-50)',\n fontWeight: 'var(--tk-font-weight-600)',\n color: 'var(--tk-color-base-surface-950)',\n },\n separator: {\n margin: 'var(--tk-spacing-base-75) 0',\n borderColor: 'var(--tk-color-base-surface-100)',\n },\n },\n popover: {\n root: {\n background: 'var(--tk-color-base-surface-0)',\n borderColor: 'var(--tk-color-base-surface-200)',\n borderRadius: 'var(--tk-borderRadius-s)',\n shadow: '0 4px 12px rgba(0, 0, 0, 0.08)',\n },\n content: {\n padding: '0',\n },\n },\n panelMenu: {\n root: {\n background: 'transparent',\n borderColor: 'transparent',\n gap: 'var(--tk-spacing-base-50)',\n },\n panel: {\n background: 'transparent',\n borderColor: 'transparent',\n borderWidth: '0',\n padding: '0',\n borderRadius: 'var(--tk-borderRadius-s)',\n first: { borderWidth: '0' },\n last: { borderWidth: '0' },\n },\n item: {\n focusBackground: 'transparent',\n activeBackground: 'transparent',\n hoverBackground: 'transparent',\n padding: '0',\n gap: '0',\n borderRadius: 'var(--tk-borderRadius-s)',\n },\n submenu: {\n indent: '0',\n },\n submenuIcon: {\n color: 'transparent',\n focusColor: 'transparent',\n },\n },\n stepper: {\n colorScheme: {\n light: {\n separator: {\n background: 'var(--tk-color-base-surface-200)',\n activeBackground: 'var(--tk-color-base-primary-500)',\n },\n stepTitle: {\n color: 'var(--tk-color-text-muted)',\n activeColor: 'var(--tk-color-base-primary-500)',\n },\n stepNumber: {\n background: 'var(--tk-color-base-surface-0)',\n activeBackground: 'var(--tk-color-base-surface-0)',\n borderColor: 'var(--tk-color-base-surface-300)',\n activeBorderColor: 'var(--tk-color-base-primary-500)',\n color: 'var(--tk-color-text-muted)',\n activeColor: 'var(--tk-color-base-primary-500)',\n shadow: 'none',\n },\n }\n }\n },\n chip: {\n root: {\n borderRadius: 'var(--tk-borderRadius-full, 62.4375rem)',\n paddingX: '0.5rem',\n paddingY: '0.25rem',\n gap: '0.375rem',\n background: 'var(--tk-color-background-soft, #f2f1f1)',\n color: 'var(--tk-color-base-surface-700, #424243)',\n },\n image: {\n width: '1.5rem',\n height: '1.5rem',\n },\n icon: {\n size: '0.875rem',\n color: 'var(--tk-color-base-surface-700, #424243)',\n },\n removeIcon: {\n size: '1.125rem',\n color: 'var(--tk-color-base-surface-700, #424243)',\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: 'none',\n },\n },\n },\n treetable: {\n root: {\n borderColor: 'var(--tk-color-base-surface-200)',\n background: 'var(--tk-color-base-surface-0)',\n },\n header: {\n background: 'transparent',\n borderColor: 'transparent',\n },\n row: {\n background: 'var(--tk-color-base-surface-0)',\n borderColor: 'var(--tk-color-base-surface-100)',\n hoverBackground: 'var(--tk-color-base-surface-50)',\n },\n },\n },\n};\n\nexport const TkPreset: Preset = definePreset(Aura, tkOverrides as Preset);\n","import { inject, provideAppInitializer, DOCUMENT } from '@angular/core';\n\nimport { PrimeNG } from 'primeng/config';\nimport { TkPreset } from './tk-preset';\n\nfunction themeFactory(config: PrimeNG, document: Document): () => void {\n return () => {\n const fontLink = document.createElement('link');\n fontLink.rel = 'stylesheet';\n fontLink.href =\n 'https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap';\n document.head.appendChild(fontLink);\n\n const style = document.createElement('style');\n style.innerHTML = `\n body {\n font-family: 'Poppins', sans-serif;\n }\n `;\n document.head.appendChild(style);\n\n config.theme.set({\n preset: TkPreset,\n options: {\n prefix: 'tk',\n darkMode: false,\n darkModeSelector: false\n },\n });\n\n // Ensure PrimeNG overlays appear above Material Dialogs (Z-Index 1000)\n config.zIndex.modal = 1100;\n config.zIndex.overlay = 12000;\n config.zIndex.menu = 1100;\n config.zIndex.tooltip = 1100;\n };\n}\n\nexport function provideTkTheme() {\n return provideAppInitializer(() => {\n const config = inject(PrimeNG);\n const document = inject(DOCUMENT);\n return themeFactory(config, document)();\n });\n}\n","import { ComponentRef, signal, Injectable } from '@angular/core';\nimport { Subject, PartialObserver, Subscription } from 'rxjs';\n\n/**\n * Reference to a dialog/drawer opened via a service.\n * Supports both Observable-style subscription and Signal-based state.\n */\n@Injectable()\nexport class TkDialogRef<T, R = unknown> {\n private readonly closedSubject = new Subject<R | undefined>();\n private readonly resultSignal = signal<R | undefined>(undefined);\n private readonly isClosedSignal = signal<boolean>(false);\n\n /**\n * Signal that holds the result of the dialog after it closes.\n */\n readonly result = this.resultSignal.asReadonly();\n\n /**\n * Signal that indicates if the dialog has been closed.\n */\n readonly isClosed = this.isClosedSignal.asReadonly();\n\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(public readonly componentRef: ComponentRef<T>) {}\n\n /**\n * The instance of the component opened in the dialog.\n */\n get componentInstance(): T {\n return this.componentRef.instance;\n }\n\n /**\n * Closes the dialog, optionally passing a result back.\n * Internal implementation calls the component's tryClose to respect guards.\n */\n close(result?: R): void {\n const instance = this.componentRef.instance as unknown as {\n tryClose?: (result?: R) => void;\n };\n if (instance && typeof instance.tryClose === 'function') {\n instance.tryClose(result);\n }\n }\n\n /**\n * Subscribes to the closure event.\n * This maintains compatibility with existing service.open(...).subscribe() patterns\n * using the modern RxJS signature.\n */\n subscribe(\n nextOrObserver?:\n | ((value: R | undefined) => void)\n | PartialObserver<R | undefined>\n ): Subscription {\n if (typeof nextOrObserver === 'function') {\n return this.closedSubject.subscribe({ next: nextOrObserver });\n }\n return this.closedSubject.subscribe(nextOrObserver);\n }\n\n /**\n * Supports RxJS operators on the closure event.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pipe(...args: any[]): any {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (this.closedSubject.pipe as any)(...args);\n }\n\n /**\n * Returns an Observable that emits when the dialog is closed.\n */\n afterClosed(): Subject<R | undefined> {\n return this.closedSubject;\n }\n\n /**\n * Internal method to emit the result and update reactive state.\n * Not intended for public use outside the opening service.\n */\n emitClose(result?: R): void {\n if (this.isClosedSignal()) {\n return;\n }\n this.resultSignal.set(result === null ? undefined : result);\n this.isClosedSignal.set(true);\n this.closedSubject.next(result === null ? undefined : result);\n this.closedSubject.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -7,16 +7,16 @@ import { Subject } from 'rxjs';
7
7
 
8
8
  var GapGutter;
9
9
  (function (GapGutter) {
10
- GapGutter["normal"] = "24px";
11
- GapGutter["small"] = "16px";
12
- GapGutter["large"] = "32px";
13
- GapGutter["extraLarge"] = "40px";
10
+ GapGutter["normal"] = "var(--tk-spacing-gap-l, 1.5rem)";
11
+ GapGutter["small"] = "var(--tk-spacing-gap-m, 1rem)";
12
+ GapGutter["large"] = "var(--tk-spacing-base-200, 2rem)";
13
+ GapGutter["extraLarge"] = "var(--tk-spacing-gap-xl, 2.5rem)";
14
14
  })(GapGutter || (GapGutter = {}));
15
15
  var PaddingGridContainer;
16
16
  (function (PaddingGridContainer) {
17
- PaddingGridContainer["large"] = "32px";
18
- PaddingGridContainer["medium"] = "24px";
19
- PaddingGridContainer["small"] = "16px";
17
+ PaddingGridContainer["large"] = "var(--tk-spacing-base-200, 2rem)";
18
+ PaddingGridContainer["medium"] = "var(--tk-spacing-padding-xl, 1.5rem)";
19
+ PaddingGridContainer["small"] = "var(--tk-spacing-padding-m, 1rem)";
20
20
  })(PaddingGridContainer || (PaddingGridContainer = {}));
21
21
  var Gutter;
22
22
  (function (Gutter) {
@@ -449,6 +449,21 @@ const tkOverrides = {
449
449
  },
450
450
  },
451
451
  },
452
+ treetable: {
453
+ root: {
454
+ borderColor: 'var(--tk-color-base-surface-200)',
455
+ background: 'var(--tk-color-base-surface-0)',
456
+ },
457
+ header: {
458
+ background: 'transparent',
459
+ borderColor: 'transparent',
460
+ },
461
+ row: {
462
+ background: 'var(--tk-color-base-surface-0)',
463
+ borderColor: 'var(--tk-color-base-surface-100)',
464
+ hoverBackground: 'var(--tk-color-base-surface-50)',
465
+ },
466
+ },
452
467
  },
453
468
  };
454
469
  const TkPreset = definePreset(Aura, tkOverrides);