@masterteam/components 0.0.17 → 0.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/assets/common.css CHANGED
@@ -1,25 +1,25 @@
1
1
  @import "tailwindcss";
2
2
  @plugin "tailwindcss-primeui";
3
3
 
4
- @source inline("{dark:,}bg-primary-{50,{100..900..100},950}");
5
- @source inline("bg-teal-{50,{100..900..100},550}");
6
- @source inline("bg-violet-{50,{100..900..100},550}");
7
- @source inline("bg-red-{50,{100..900..100},550}");
8
-
9
- @source inline("border-primary-{50,{100..500..100},550}");
10
- @source inline("border-teal-{50,{100..500..100},550}");
11
- @source inline("border-violet-{50,{100..500..100},550}");
12
- @source inline("border-red-{50,{100..500..100},550}");
13
-
14
- @source inline("ring-primary-{50,{100..500..100},550}");
15
- @source inline("ring-teal-{50,{100..500..100},550}");
16
- @source inline("ring-violet-{50,{100..500..100},550}");
17
- @source inline("ring-red-{50,{100..500..100},550}");
18
-
19
- @source inline("text-primary-{50,{100..500..100},550}");
20
- @source inline("text-teal-{50,{100..500..100},550}");
21
- @source inline("text-violet-{50,{100..500..100},550}");
22
- @source inline("text-red-{50,{100..500..100},550}");
4
+ /* @source inline("{dark:,}bg-primary-{50,{100..900..100},950}"); */
5
+ /* @source inline("bg-teal-{50,{100..900..100},550}"); */
6
+ /* @source inline("bg-violet-{50,{100..900..100},550}"); */
7
+ /* @source inline("bg-red-{50,{100..900..100},550}"); */
8
+ /**/
9
+ /* @source inline("border-primary-{50,{100..500..100},550}"); */
10
+ /* @source inline("border-teal-{50,{100..500..100},550}"); */
11
+ /* @source inline("border-violet-{50,{100..500..100},550}"); */
12
+ /* @source inline("border-red-{50,{100..500..100},550}"); */
13
+ /**/
14
+ /* @source inline("ring-primary-{50,{100..500..100},550}"); */
15
+ /* @source inline("ring-teal-{50,{100..500..100},550}"); */
16
+ /* @source inline("ring-violet-{50,{100..500..100},550}"); */
17
+ /* @source inline("ring-red-{50,{100..500..100},550}"); */
18
+ /**/
19
+ /* @source inline("text-primary-{50,{100..500..100},550}"); */
20
+ /* @source inline("text-teal-{50,{100..500..100},550}"); */
21
+ /* @source inline("text-violet-{50,{100..500..100},550}"); */
22
+ /* @source inline("text-red-{50,{100..500..100},550}"); */
23
23
 
24
24
  @custom-variant dark (&:where(.dark, .dark *));
25
25
 
@@ -1,12 +1,17 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { MenuItem } from 'primeng/api';
3
2
 
3
+ interface BreadcrumbItem {
4
+ label?: string;
5
+ routerLink?: string;
6
+ icon?: string;
7
+ }
4
8
  declare class Breadcrumb {
5
- readonly items: _angular_core.InputSignal<MenuItem[]>;
6
- readonly home: _angular_core.InputSignal<MenuItem>;
9
+ readonly items: _angular_core.InputSignal<BreadcrumbItem[]>;
7
10
  readonly styleClass: _angular_core.InputSignal<string | undefined>;
11
+ readonly onItemClick: _angular_core.OutputEmitterRef<BreadcrumbItem>;
8
12
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Breadcrumb, never>;
9
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Breadcrumb, "mt-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "home": { "alias": "home"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Breadcrumb, "mt-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, { "onItemClick": "onItemClick"; }, never, never, true, never>;
10
14
  }
11
15
 
12
16
  export { Breadcrumb };
17
+ export type { BreadcrumbItem };
@@ -1,21 +1,21 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, Component } from '@angular/core';
3
- import * as i1 from 'primeng/breadcrumb';
4
- import { BreadcrumbModule } from 'primeng/breadcrumb';
2
+ import { input, output, Component } from '@angular/core';
3
+ import * as i1 from '@angular/router';
4
+ import { RouterModule } from '@angular/router';
5
+ import { Icon } from '@masterteam/icons';
5
6
 
6
7
  class Breadcrumb {
7
8
  items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
8
- home = input({ icon: 'pi pi-home' }, ...(ngDevMode ? [{ debugName: "home" }] : []));
9
9
  styleClass = input(undefined, ...(ngDevMode ? [{ debugName: "styleClass" }] : []));
10
+ onItemClick = output();
10
11
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: Breadcrumb, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.3", type: Breadcrumb, isStandalone: true, selector: "mt-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, home: { classPropertyName: "home", publicName: "home", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "styleClass()" }, classAttribute: "grid gap-1" }, ngImport: i0, template: "<p-breadcrumb [model]=\"items()\" [home]=\"home()\" />\n", styles: [""], dependencies: [{ kind: "ngmodule", type: BreadcrumbModule }, { kind: "component", type: i1.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }] });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: Breadcrumb, isStandalone: true, selector: "mt-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: "onItemClick" }, host: { properties: { "class": "styleClass()" } }, ngImport: i0, template: "<nav aria-label=\"breadcrumb\">\n <ol class=\"flex items-center space-x-2\">\n @for (\n item of items();\n track item.label;\n let isFirst = $first;\n let isLast = $last\n ) {\n @if (!isFirst) {\n <li>\n <span class=\"text-gray-400 flex\">\n <mt-icon icon=\"arrow.chevron-right\"></mt-icon>\n </span>\n </li>\n }\n <li>\n @if (item.routerLink) {\n <a\n [routerLink]=\"item.routerLink\"\n class=\"text-gray-500 hover:text-gray-700 flex items-center gap-1 text-[.95rem]\"\n (click)=\"onItemClick.emit(item)\"\n >\n @if (item.icon) {\n <mt-icon [icon]=\"item.icon\"></mt-icon>\n }\n @if (item.label) {\n <span>{{ item.label }}</span>\n }\n </a>\n } @else {\n <span\n class=\"\n {{\n isLast\n ? 'bg-primary-50 text-primary-400 cursor-default flex items-center gap-1 rounded-md px-2 py-1 text-[.95rem]'\n : 'text-gray-500 hover:text-gray-700 flex items-center gap-1 text-[.95rem]'\n }}\"\n (click)=\"onItemClick.emit(item)\"\n >\n @if (item.icon) {\n <mt-icon [icon]=\"item.icon\"></mt-icon>\n }\n @if (item.label) {\n <span>{{ item.label }}</span>\n }\n </span>\n }\n </li>\n }\n </ol>\n</nav>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: Icon, selector: "mt-icon", inputs: ["icon"] }] });
12
13
  }
13
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: Breadcrumb, decorators: [{
14
15
  type: Component,
15
- args: [{ selector: 'mt-breadcrumb', standalone: true, imports: [BreadcrumbModule], host: {
16
- class: 'grid gap-1',
16
+ args: [{ selector: 'mt-breadcrumb', standalone: true, imports: [RouterModule, Icon], host: {
17
17
  '[class]': 'styleClass()',
18
- }, template: "<p-breadcrumb [model]=\"items()\" [home]=\"home()\" />\n" }]
18
+ }, template: "<nav aria-label=\"breadcrumb\">\n <ol class=\"flex items-center space-x-2\">\n @for (\n item of items();\n track item.label;\n let isFirst = $first;\n let isLast = $last\n ) {\n @if (!isFirst) {\n <li>\n <span class=\"text-gray-400 flex\">\n <mt-icon icon=\"arrow.chevron-right\"></mt-icon>\n </span>\n </li>\n }\n <li>\n @if (item.routerLink) {\n <a\n [routerLink]=\"item.routerLink\"\n class=\"text-gray-500 hover:text-gray-700 flex items-center gap-1 text-[.95rem]\"\n (click)=\"onItemClick.emit(item)\"\n >\n @if (item.icon) {\n <mt-icon [icon]=\"item.icon\"></mt-icon>\n }\n @if (item.label) {\n <span>{{ item.label }}</span>\n }\n </a>\n } @else {\n <span\n class=\"\n {{\n isLast\n ? 'bg-primary-50 text-primary-400 cursor-default flex items-center gap-1 rounded-md px-2 py-1 text-[.95rem]'\n : 'text-gray-500 hover:text-gray-700 flex items-center gap-1 text-[.95rem]'\n }}\"\n (click)=\"onItemClick.emit(item)\"\n >\n @if (item.icon) {\n <mt-icon [icon]=\"item.icon\"></mt-icon>\n }\n @if (item.label) {\n <span>{{ item.label }}</span>\n }\n </span>\n }\n </li>\n }\n </ol>\n</nav>\n" }]
19
19
  }] });
20
20
 
21
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components-breadcrumb.mjs","sources":["../../../../packages/masterteam/components/breadcrumb/breadcrumb.ts","../../../../packages/masterteam/components/breadcrumb/breadcrumb.html","../../../../packages/masterteam/components/breadcrumb/masterteam-components-breadcrumb.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { MenuItem } from 'primeng/api';\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\n\n@Component({\n selector: 'mt-breadcrumb',\n standalone: true,\n imports: [BreadcrumbModule],\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.scss'],\n host: {\n class: 'grid gap-1',\n '[class]': 'styleClass()',\n },\n})\nexport class Breadcrumb {\n readonly items = input<MenuItem[]>([]);\n readonly home = input<MenuItem>({ icon: 'pi pi-home' });\n readonly styleClass = input<string | undefined>(undefined);\n}\n","<p-breadcrumb [model]=\"items()\" [home]=\"home()\" />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAea,UAAU,CAAA;AACZ,IAAA,KAAK,GAAG,KAAK,CAAa,EAAE,iDAAC;IAC7B,IAAI,GAAG,KAAK,CAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC9C,IAAA,UAAU,GAAG,KAAK,CAAqB,SAAS,sDAAC;uGAH/C,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfvB,0DACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDMY,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAQf,UAAU,EAAA,UAAA,EAAA,CAAA;kBAXtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,OAAA,EACP,CAAC,gBAAgB,CAAC,EAAA,IAAA,EAGrB;AACJ,wBAAA,KAAK,EAAE,YAAY;AACnB,wBAAA,SAAS,EAAE,cAAc;AAC1B,qBAAA,EAAA,QAAA,EAAA,0DAAA,EAAA;;;AEbH;;AAEG;;;;"}
1
+ {"version":3,"file":"masterteam-components-breadcrumb.mjs","sources":["../../../../packages/masterteam/components/breadcrumb/breadcrumb.ts","../../../../packages/masterteam/components/breadcrumb/breadcrumb.html","../../../../packages/masterteam/components/breadcrumb/masterteam-components-breadcrumb.ts"],"sourcesContent":["import { Component, input, output } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { Icon } from '@masterteam/icons';\nexport interface BreadcrumbItem {\n label?: string;\n routerLink?: string;\n icon?: string;\n}\n\n@Component({\n selector: 'mt-breadcrumb',\n standalone: true,\n imports: [RouterModule, Icon],\n templateUrl: './breadcrumb.html',\n styleUrls: ['./breadcrumb.scss'],\n host: {\n '[class]': 'styleClass()',\n },\n})\nexport class Breadcrumb {\n readonly items = input<BreadcrumbItem[]>([]);\n readonly styleClass = input<string | undefined>(undefined);\n readonly onItemClick = output<BreadcrumbItem>();\n}\n","<nav aria-label=\"breadcrumb\">\n <ol class=\"flex items-center space-x-2\">\n @for (\n item of items();\n track item.label;\n let isFirst = $first;\n let isLast = $last\n ) {\n @if (!isFirst) {\n <li>\n <span class=\"text-gray-400 flex\">\n <mt-icon icon=\"arrow.chevron-right\"></mt-icon>\n </span>\n </li>\n }\n <li>\n @if (item.routerLink) {\n <a\n [routerLink]=\"item.routerLink\"\n class=\"text-gray-500 hover:text-gray-700 flex items-center gap-1 text-[.95rem]\"\n (click)=\"onItemClick.emit(item)\"\n >\n @if (item.icon) {\n <mt-icon [icon]=\"item.icon\"></mt-icon>\n }\n @if (item.label) {\n <span>{{ item.label }}</span>\n }\n </a>\n } @else {\n <span\n class=\"\n {{\n isLast\n ? 'bg-primary-50 text-primary-400 cursor-default flex items-center gap-1 rounded-md px-2 py-1 text-[.95rem]'\n : 'text-gray-500 hover:text-gray-700 flex items-center gap-1 text-[.95rem]'\n }}\"\n (click)=\"onItemClick.emit(item)\"\n >\n @if (item.icon) {\n <mt-icon [icon]=\"item.icon\"></mt-icon>\n }\n @if (item.label) {\n <span>{{ item.label }}</span>\n }\n </span>\n }\n </li>\n }\n </ol>\n</nav>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;MAmBa,UAAU,CAAA;AACZ,IAAA,KAAK,GAAG,KAAK,CAAmB,EAAE,iDAAC;AACnC,IAAA,UAAU,GAAG,KAAK,CAAqB,SAAS,sDAAC;IACjD,WAAW,GAAG,MAAM,EAAkB;uGAHpC,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBvB,s/CAmDA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvCY,YAAY,gRAAE,IAAI,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAOjB,UAAU,EAAA,UAAA,EAAA,CAAA;kBAVtB,SAAS;+BACE,eAAe,EAAA,UAAA,EACb,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,IAAI,CAAC,EAAA,IAAA,EAGvB;AACJ,wBAAA,SAAS,EAAE,cAAc;AAC1B,qBAAA,EAAA,QAAA,EAAA,s/CAAA,EAAA;;;AEjBH;;AAEG;;;;"}
@@ -1,57 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, computed, model, output, contentChild, TemplateRef, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, booleanAttribute, computed, model, output, contentChild, TemplateRef, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { Avatar } from '@masterteam/components/avatar';
4
4
  import { NgTemplateOutlet } from '@angular/common';
5
5
 
6
6
  class RadioCards {
7
7
  circle = input(false, ...(ngDevMode ? [{ debugName: "circle", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
8
- color = input('primary', ...(ngDevMode ? [{ debugName: "color", transform: (value) => {
9
- if (value) {
10
- return value;
11
- }
12
- return 'primary';
13
- } }] : [{
14
- transform: (value) => {
15
- if (value) {
16
- return value;
17
- }
18
- return 'primary';
19
- },
20
- }]));
21
- size = input('medium', ...(ngDevMode ? [{ debugName: "size", transform: (value) => {
22
- if (value) {
23
- switch (value) {
24
- case 'small':
25
- return 'xs';
26
- case 'medium':
27
- return 'base';
28
- case 'large':
29
- return '2xl';
30
- }
31
- }
32
- return 'base';
33
- } }] : [{
34
- transform: (value) => {
35
- if (value) {
36
- switch (value) {
37
- case 'small':
38
- return 'xs';
39
- case 'medium':
40
- return 'base';
41
- case 'large':
42
- return '2xl';
43
- }
44
- }
45
- return 'base';
46
- },
47
- }]));
8
+ color = input('primary', ...(ngDevMode ? [{ debugName: "color" }] : []));
9
+ size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : []));
48
10
  avatarSize = computed(() => {
49
11
  switch (this.size()) {
50
- case 'xs':
12
+ case 'small':
51
13
  return 'normal';
52
- case 'base':
14
+ case 'medium':
53
15
  return 'large';
54
- case '2xl':
16
+ case 'large':
55
17
  return 'xlarge';
56
18
  default:
57
19
  return 'normal';
@@ -62,51 +24,38 @@ class RadioCards {
62
24
  selectionChange = output();
63
25
  itemTemplate = input(null, ...(ngDevMode ? [{ debugName: "itemTemplate" }] : []));
64
26
  itemTemplateContent = contentChild('option', ...(ngDevMode ? [{ debugName: "itemTemplateContent", read: TemplateRef }] : [{ read: TemplateRef }]));
65
- /**
66
- * A computed signal that generates the dynamic Tailwind CSS classes
67
- * for the active state based on the color input.
68
- */
27
+ textSizeClass = computed(() => {
28
+ switch (this.size()) {
29
+ case 'small':
30
+ return 'text-xs';
31
+ case 'large':
32
+ return 'text-2xl';
33
+ default:
34
+ return 'text-base';
35
+ }
36
+ }, ...(ngDevMode ? [{ debugName: "textSizeClass" }] : []));
37
+ classes = computed(() => { }, ...(ngDevMode ? [{ debugName: "classes" }] : []));
69
38
  activeColorClasses = computed(() => {
70
- const color = this.color();
71
- return {
72
- [`bg-${color}-50`]: true,
73
- [`dark:bg-${color}-800`]: true,
74
- [`border-${color}-400`]: true,
75
- [`ring-${color}-200`]: true,
76
- };
39
+ return [
40
+ 'bg-primary-50',
41
+ 'dark:bg-primary-800',
42
+ 'border-primary-400',
43
+ 'ring-primary-200',
44
+ ];
77
45
  }, ...(ngDevMode ? [{ debugName: "activeColorClasses" }] : []));
78
- constructor() {
79
- effect(() => {
80
- const active = this.activeId();
81
- console.log('Active ID changed to:', active);
82
- this.options.update((options) => {
83
- return options.map((option) => {
84
- option.active = option.id === active;
85
- return option;
86
- });
87
- });
88
- });
89
- }
90
46
  selectItem(item) {
91
47
  if (this.activeId() !== item.id) {
92
48
  this.activeId.set(item.id);
93
49
  this.selectionChange.emit(item);
94
50
  }
95
- const options = this.options();
96
- options.map((option) => {
97
- const active = option.id === this.activeId();
98
- option.active = active;
99
- return option;
100
- });
101
- this.options.set(options);
102
51
  }
103
52
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: RadioCards, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: RadioCards, isStandalone: true, selector: "mt-radio-cards", inputs: { circle: { classPropertyName: "circle", publicName: "circle", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, activeId: { classPropertyName: "activeId", publicName: "activeId", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { options: "optionsChange", activeId: "activeIdChange", selectionChange: "selectionChange" }, queries: [{ propertyName: "itemTemplateContent", first: true, predicate: ["option"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of options(); track item.id) {\n <div\n (click)=\"selectItem(item)\"\n class=\"flex items-center space-x-4 p-4 rounded-lg cursor-pointer border-2 border-dashed transition-all ease-in-out duration-300\"\n [class]=\"\n item.active\n ? activeColorClasses()\n : 'border-gray-300 hover:border-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-600 dark:hover:text-gray-100 '\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || itemTemplateContent() || defaultTemplate;\n context: {\n $implicit: item,\n active: item.active,\n color: color(),\n size: size(),\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template\n #defaultTemplate\n let-template\n let-active=\"active\"\n let-color=\"color\"\n let-size=\"size\"\n>\n @if (template.icon) {\n <mt-avatar\n [shape]=\"circle() ? 'circle' : 'square'\"\n [size]=\"avatarSize()\"\n [icon]=\"template.icon\"\n ></mt-avatar>\n }\n @if (template.name) {\n <span\n class=\"font-semibold\"\n [class]=\"\n 'text-' +\n size +\n ' ' +\n (active\n ? 'text-' + color + '-500'\n : 'dark:text-gray-100 text-gray-600 ')\n \"\n >\n {{ template.name }}\n </span>\n }\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
53
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: RadioCards, isStandalone: true, selector: "mt-radio-cards", inputs: { circle: { classPropertyName: "circle", publicName: "circle", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, activeId: { classPropertyName: "activeId", publicName: "activeId", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { options: "optionsChange", activeId: "activeIdChange", selectionChange: "selectionChange" }, queries: [{ propertyName: "itemTemplateContent", first: true, predicate: ["option"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of options(); track item.id) {\n @let active = item.id === activeId();\n <div\n (click)=\"selectItem(item)\"\n class=\"flex items-center space-x-4 p-4 rounded-lg cursor-pointer border-2 border-dashed transition-all ease-in-out duration-300\"\n [class]=\"\n active\n ? 'bg-primary-50 dark:bg-primary-800 border-primary-400 ring-primary-200'\n : 'border-gray-300 hover:border-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-600 dark:hover:text-gray-100'\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || itemTemplateContent() || defaultTemplate;\n context: {\n $implicit: item,\n active: active,\n size: size(),\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template #defaultTemplate let-template let-active=\"active\" let-size=\"size\">\n @if (template.icon) {\n <mt-avatar\n [shape]=\"circle() ? 'circle' : 'square'\"\n [size]=\"avatarSize()\"\n [icon]=\"template.icon\"\n ></mt-avatar>\n }\n @if (template.name) {\n <span\n [class]=\"[\n 'font-semibold',\n textSizeClass(),\n 'dark:text-gray-100',\n 'text-gray-600',\n ]\"\n >\n {{ template.name }}\n </span>\n }\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
54
  }
106
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: RadioCards, decorators: [{
107
56
  type: Component,
108
- args: [{ selector: 'mt-radio-cards', standalone: true, imports: [NgTemplateOutlet, Avatar], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of options(); track item.id) {\n <div\n (click)=\"selectItem(item)\"\n class=\"flex items-center space-x-4 p-4 rounded-lg cursor-pointer border-2 border-dashed transition-all ease-in-out duration-300\"\n [class]=\"\n item.active\n ? activeColorClasses()\n : 'border-gray-300 hover:border-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-600 dark:hover:text-gray-100 '\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || itemTemplateContent() || defaultTemplate;\n context: {\n $implicit: item,\n active: item.active,\n color: color(),\n size: size(),\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template\n #defaultTemplate\n let-template\n let-active=\"active\"\n let-color=\"color\"\n let-size=\"size\"\n>\n @if (template.icon) {\n <mt-avatar\n [shape]=\"circle() ? 'circle' : 'square'\"\n [size]=\"avatarSize()\"\n [icon]=\"template.icon\"\n ></mt-avatar>\n }\n @if (template.name) {\n <span\n class=\"font-semibold\"\n [class]=\"\n 'text-' +\n size +\n ' ' +\n (active\n ? 'text-' + color + '-500'\n : 'dark:text-gray-100 text-gray-600 ')\n \"\n >\n {{ template.name }}\n </span>\n }\n</ng-template>\n", styles: [":host{display:block}\n"] }]
109
- }], ctorParameters: () => [] });
57
+ args: [{ selector: 'mt-radio-cards', standalone: true, imports: [NgTemplateOutlet, Avatar], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of options(); track item.id) {\n @let active = item.id === activeId();\n <div\n (click)=\"selectItem(item)\"\n class=\"flex items-center space-x-4 p-4 rounded-lg cursor-pointer border-2 border-dashed transition-all ease-in-out duration-300\"\n [class]=\"\n active\n ? 'bg-primary-50 dark:bg-primary-800 border-primary-400 ring-primary-200'\n : 'border-gray-300 hover:border-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-600 dark:hover:text-gray-100'\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || itemTemplateContent() || defaultTemplate;\n context: {\n $implicit: item,\n active: active,\n size: size(),\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template #defaultTemplate let-template let-active=\"active\" let-size=\"size\">\n @if (template.icon) {\n <mt-avatar\n [shape]=\"circle() ? 'circle' : 'square'\"\n [size]=\"avatarSize()\"\n [icon]=\"template.icon\"\n ></mt-avatar>\n }\n @if (template.name) {\n <span\n [class]=\"[\n 'font-semibold',\n textSizeClass(),\n 'dark:text-gray-100',\n 'text-gray-600',\n ]\"\n >\n {{ template.name }}\n </span>\n }\n</ng-template>\n", styles: [":host{display:block}\n"] }]
58
+ }] });
110
59
 
111
60
  /**
112
61
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components-radio-cards.mjs","sources":["../../../../packages/masterteam/components/radio-cards/radio-cards.ts","../../../../packages/masterteam/components/radio-cards/radio-cards.html","../../../../packages/masterteam/components/radio-cards/masterteam-components-radio-cards.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n input,\n output,\n TemplateRef,\n computed,\n model,\n effect,\n booleanAttribute,\n} from '@angular/core';\nimport { MTIcon } from '@masterteam/icons';\nimport { Avatar } from '@masterteam/components/avatar';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport interface RadioItem {\n id: string | number;\n name?: string;\n active?: boolean;\n icon?: MTIcon;\n [key: string]: any;\n}\n\n@Component({\n selector: 'mt-radio-cards',\n standalone: true,\n imports: [NgTemplateOutlet, Avatar],\n templateUrl: './radio-cards.html',\n styleUrl: './radio-cards.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioCards {\n circle = input<boolean, unknown>(false, { transform: booleanAttribute });\n color = input('primary', {\n transform: (value: string) => {\n if (value) {\n return value;\n }\n return 'primary';\n },\n });\n size = input('medium', {\n transform: (value: 'small' | 'medium' | 'large') => {\n if (value) {\n switch (value) {\n case 'small':\n return 'xs';\n case 'medium':\n return 'base';\n case 'large':\n return '2xl';\n }\n }\n return 'base';\n },\n });\n avatarSize = computed(() => {\n switch (this.size()) {\n case 'xs':\n return 'normal';\n case 'base':\n return 'large';\n case '2xl':\n return 'xlarge';\n default:\n return 'normal';\n }\n });\n options = model.required<RadioItem[]>();\n activeId = model<string | number>();\n selectionChange = output<RadioItem>();\n\n itemTemplate = input<TemplateRef<any> | null>(null);\n itemTemplateContent = contentChild('option', { read: TemplateRef });\n\n /**\n * A computed signal that generates the dynamic Tailwind CSS classes\n * for the active state based on the color input.\n */\n protected activeColorClasses = computed(() => {\n const color = this.color();\n return {\n [`bg-${color}-50`]: true,\n [`dark:bg-${color}-800`]: true,\n [`border-${color}-400`]: true,\n [`ring-${color}-200`]: true,\n };\n });\n\n constructor() {\n effect(() => {\n const active = this.activeId();\n console.log('Active ID changed to:', active);\n this.options.update((options) => {\n return options.map((option) => {\n option.active = option.id === active;\n return option;\n });\n });\n });\n }\n\n public selectItem(item: RadioItem): void {\n if (this.activeId() !== item.id) {\n this.activeId.set(item.id);\n this.selectionChange.emit(item);\n }\n const options = this.options();\n options.map((option) => {\n const active = option.id === this.activeId();\n option.active = active;\n return option;\n });\n this.options.set(options);\n }\n}\n","<div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of options(); track item.id) {\n <div\n (click)=\"selectItem(item)\"\n class=\"flex items-center space-x-4 p-4 rounded-lg cursor-pointer border-2 border-dashed transition-all ease-in-out duration-300\"\n [class]=\"\n item.active\n ? activeColorClasses()\n : 'border-gray-300 hover:border-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-600 dark:hover:text-gray-100 '\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || itemTemplateContent() || defaultTemplate;\n context: {\n $implicit: item,\n active: item.active,\n color: color(),\n size: size(),\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template\n #defaultTemplate\n let-template\n let-active=\"active\"\n let-color=\"color\"\n let-size=\"size\"\n>\n @if (template.icon) {\n <mt-avatar\n [shape]=\"circle() ? 'circle' : 'square'\"\n [size]=\"avatarSize()\"\n [icon]=\"template.icon\"\n ></mt-avatar>\n }\n @if (template.name) {\n <span\n class=\"font-semibold\"\n [class]=\"\n 'text-' +\n size +\n ' ' +\n (active\n ? 'text-' + color + '-500'\n : 'dark:text-gray-100 text-gray-600 ')\n \"\n >\n {{ template.name }}\n </span>\n }\n</ng-template>\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":"masterteam-components-radio-cards.mjs","sources":["../../../../packages/masterteam/components/radio-cards/radio-cards.ts","../../../../packages/masterteam/components/radio-cards/radio-cards.html","../../../../packages/masterteam/components/radio-cards/masterteam-components-radio-cards.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n contentChild,\n input,\n output,\n TemplateRef,\n computed,\n model,\n booleanAttribute,\n} from '@angular/core';\nimport { MTIcon } from '@masterteam/icons';\nimport { Avatar } from '@masterteam/components/avatar';\nimport { NgTemplateOutlet } from '@angular/common';\n\nexport interface RadioItem {\n id: string | number;\n name?: string;\n icon?: MTIcon;\n [key: string]: any;\n}\n\n@Component({\n selector: 'mt-radio-cards',\n standalone: true,\n imports: [NgTemplateOutlet, Avatar],\n templateUrl: './radio-cards.html',\n styleUrl: './radio-cards.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioCards {\n circle = input<boolean, unknown>(false, { transform: booleanAttribute });\n color = input<string>('primary');\n size = input<'small' | 'medium' | 'large'>('medium');\n avatarSize = computed(() => {\n switch (this.size()) {\n case 'small':\n return 'normal';\n case 'medium':\n return 'large';\n case 'large':\n return 'xlarge';\n default:\n return 'normal';\n }\n });\n options = model.required<RadioItem[]>();\n activeId = model<string | number>();\n selectionChange = output<RadioItem>();\n\n itemTemplate = input<TemplateRef<any> | null>(null);\n itemTemplateContent = contentChild('option', { read: TemplateRef });\n\n textSizeClass = computed(() => {\n switch (this.size()) {\n case 'small':\n return 'text-xs';\n\n case 'large':\n return 'text-2xl';\n\n default:\n return 'text-base';\n }\n });\n classes = computed(() => {});\n\n protected activeColorClasses = computed(() => {\n return [\n 'bg-primary-50',\n 'dark:bg-primary-800',\n 'border-primary-400',\n 'ring-primary-200',\n ];\n });\n\n public selectItem(item: RadioItem): void {\n if (this.activeId() !== item.id) {\n this.activeId.set(item.id);\n this.selectionChange.emit(item);\n }\n }\n}\n","<div>\n <div class=\"flex flex-wrap gap-3\">\n @for (item of options(); track item.id) {\n @let active = item.id === activeId();\n <div\n (click)=\"selectItem(item)\"\n class=\"flex items-center space-x-4 p-4 rounded-lg cursor-pointer border-2 border-dashed transition-all ease-in-out duration-300\"\n [class]=\"\n active\n ? 'bg-primary-50 dark:bg-primary-800 border-primary-400 ring-primary-200'\n : 'border-gray-300 hover:border-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-gray-600 dark:hover:text-gray-100'\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n itemTemplate() || itemTemplateContent() || defaultTemplate;\n context: {\n $implicit: item,\n active: active,\n size: size(),\n }\n \"\n >\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template #defaultTemplate let-template let-active=\"active\" let-size=\"size\">\n @if (template.icon) {\n <mt-avatar\n [shape]=\"circle() ? 'circle' : 'square'\"\n [size]=\"avatarSize()\"\n [icon]=\"template.icon\"\n ></mt-avatar>\n }\n @if (template.name) {\n <span\n [class]=\"[\n 'font-semibold',\n textSizeClass(),\n 'dark:text-gray-100',\n 'text-gray-600',\n ]\"\n >\n {{ template.name }}\n </span>\n }\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -225,39 +225,6 @@ const MTPreset = (primaryColor) => definePreset(Aura, {
225
225
  borderRadius: '{border.radius.lg}',
226
226
  },
227
227
  },
228
- breadcrumb: {
229
- root: {
230
- padding: '0.5rem 1rem',
231
- },
232
- item: {
233
- color: '{surface.700}',
234
- hoverColor: '{primary.600}',
235
- focusRing: {
236
- color: '{primary.700}',
237
- },
238
- borderRadius: '0',
239
- },
240
- separator: {
241
- color: '{surface.500}',
242
- },
243
- css: () => `
244
- .p-breadcrumb-list .p-breadcrumb-item-link {
245
- font-size: 0.9rem;
246
- }
247
-
248
- .p-breadcrumb-list .p-breadcrumb-separator {
249
- width: 12px
250
- }
251
-
252
- .p-breadcrumb-list .p-breadcrumb-item:last-child .p-breadcrumb-item-link {
253
- color: var(--p-primary-400);
254
- background: var(--p-primary-50);
255
- cursor: default;
256
- pointer-events: none;
257
- padding: 0 0.4rem
258
- }
259
- `,
260
- },
261
228
  paginator: {
262
229
  root: {
263
230
  borderRadius: '{border.radius.lg}',
@@ -1 +1 @@
1
- {"version":3,"file":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/lib/config/povide-messages.ts","../../../../packages/masterteam/components/src/lib/utils/inputs.ts","../../../../packages/masterteam/components/src/lib/config/dynamic-form.model.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\nexport function generateTailwindPalette(\n primaryColor500: string,\n): TailwindColorPalette {\n const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n\n const palette: TailwindColorPalette = {\n '500': primaryColor500,\n };\n\n // Define steps for lighter shades (50 - 400)\n const lightnessStepsLighter: { [key: string]: number } = {\n '50': 95,\n '100': 90,\n '200': 80,\n '300': 70,\n '400': 60,\n };\n\n const saturationReductionsLighter: { [key: string]: number } = {\n '50': 40, // More desaturated\n '100': 30,\n '200': 20,\n '300': 10,\n '400': 5, // Slightly desaturated\n };\n\n for (const shade in lightnessStepsLighter) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n const newL: number = lightnessStepsLighter[shade];\n // Ensure saturation doesn't go below 0\n const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Define steps for darker shades (600 - 950)\n const lightnessStepsDarker: { [key: string]: number } = {\n '600': 45,\n '700': 35,\n '800': 25,\n '900': 15,\n '950': 8, // More aggressive darkening for 950\n };\n\n const saturationIncreasesDarker: { [key: string]: number } = {\n '600': 5,\n '700': 10,\n '800': 15,\n '900': 20,\n '950': 25, // Can increase saturation for darker shades\n };\n\n for (const shade in lightnessStepsDarker) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n const newL: number = lightnessStepsDarker[shade];\n // Ensure saturation doesn't exceed 100\n const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Sort the keys numerically to ensure consistent order\n const sortedPalette: TailwindColorPalette = {};\n Object.keys(palette)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((key: string) => {\n sortedPalette[key] = palette[key];\n });\n\n return sortedPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeuix/themes/aura';\nimport { definePreset, updatePreset } from '@primeuix/themes';\nimport { ToastTokenSections } from '@primeuix/themes/types/toast';\nimport { EnvironmentProviders } from '@angular/core';\n\nconst toastStyle: ToastTokenSections.Success = {\n // borderColor: '{surface.300}',\n background: '{content.background}',\n // color: '{surface.600}',\n // closeButton: {\n // hoverBackground: '{surface.100}',\n // focusRing: {\n // color: '{surface.600}',\n // },\n // },\n};\n\nexport function changePrimaryColor(color: string): void {\n updatePreset({\n semantic: {\n primary: generateTailwindPalette(color || '#334dff'),\n },\n });\n}\n\nconst MTPreset = (primaryColor?: string) =>\n definePreset(Aura, {\n options: {\n prefix: 'mt',\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n primary: generateTailwindPalette(primaryColor || '#334dff'),\n content: {\n borderRadius: '{border.radius.lg}',\n },\n formField: {\n borderRadius: '{border.radius.lg}',\n },\n },\n components: {\n toast: {\n root: {\n borderRadius: '{border.radius.xl}',\n },\n colorScheme: {\n light: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n dark: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n },\n },\n togglebutton: {\n root: {\n padding: '1px',\n sm: {\n padding: '1px',\n },\n lg: {\n padding: '1px',\n },\n },\n colorScheme: {\n light: {\n root: {\n checkedColor: '{primary.500}',\n },\n },\n dark: {\n root: {\n checkedColor: '{primary.400}',\n },\n },\n },\n },\n selectbutton: {\n root: {\n borderRadius: '{border.radius.lg}',\n },\n },\n\n breadcrumb: {\n root: {\n padding: '0.5rem 1rem',\n },\n item: {\n color: '{surface.700}',\n hoverColor: '{primary.600}',\n focusRing: {\n color: '{primary.700}',\n },\n borderRadius: '0',\n },\n separator: {\n color: '{surface.500}',\n },\n css: () => `\n .p-breadcrumb-list .p-breadcrumb-item-link {\n font-size: 0.9rem;\n }\n\n .p-breadcrumb-list .p-breadcrumb-separator {\n width: 12px\n }\n\n .p-breadcrumb-list .p-breadcrumb-item:last-child .p-breadcrumb-item-link {\n color: var(--p-primary-400);\n background: var(--p-primary-50);\n cursor: default;\n pointer-events: none;\n padding: 0 0.4rem\n }\n `,\n },\n\n paginator: {\n root: {\n borderRadius: '{border.radius.lg}',\n padding: '0 .5rem',\n },\n navButton: {\n borderRadius: '0',\n },\n\n colorScheme: {\n light: {\n navButton: {\n color: '{surface.600}',\n hoverBackground: '#fff',\n selectedBackground: '{surface.200}',\n selectedColor: '{surface.600}',\n focusRing: {\n color: '{surface.200}',\n },\n },\n },\n dark: {\n navButton: {\n color: '{surface.200}',\n hoverBackground: 'transparent',\n selectedBackground: 'transparent',\n selectedColor: '#fff',\n focusRing: {\n color: '#fff',\n },\n },\n },\n },\n\n css: () => `\n .p-paginator {\n --p-paginator-gap: 0;\n --p-paginator-nav-button-width: 2.2rem;\n --p-paginator-nav-button-height: 2.2rem;\n width: fit-content;\n border: 1px solid var(--p-surface-200);\n overflow: hidden;\n font-size: .95rem;\n }\n\n .p-paginator-pages button,\n .p-paginator-prev,\n .p-paginator-next {\n border-color: var(--p-surface-200);\n }\n\n .p-paginator-pages button {\n border-style: solid;\n border-width: 0 0 0 1px;\n }\n\n .p-paginator-pages button:first-child {\n border-left: none;\n }\n\n .p-paginator-prev {\n border-right: 1px solid var(--p-surface-200);\n }\n\n .p-paginator-next {\n border-left: 1px solid var(--p-surface-200);\n }\n\n .p-paginator .p-select {\n border: 0;\n background: transparent;\n }\n\n .p-paginator .p-select .p-select-label {\n padding: 0;\n }\n\n /* Dark Mode Styles */\n .dark .p-paginator {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-pages button,\n .dark .p-paginator-prev,\n .dark .p-paginator-next {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-prev {\n border-right-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-next {\n border-left-color: var(--p-surface-500);\n }\n `,\n },\n // steps: {\n // item: {\n // link: {\n // gap: 'calc(50% + 0.25rem)',\n // },\n // number: {\n // font: {\n // size: '0.9rem',\n // },\n // active: {\n // color: 'white',\n // background: '{primary.500}',\n // border: {\n // color: '{primary.500}',\n // },\n // },\n // },\n // },\n // },\n },\n });\n\nexport function provideMTComponents(\n primaryColor?: string,\n): EnvironmentProviders {\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset(primaryColor),\n options: {\n darkModeSelector: '.dark',\n },\n },\n });\n}\n","import { MessageService } from 'primeng/api';\n\nexport function provideMTMessages() {\n return MessageService;\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function isInvalid(control: AbstractControl | null) {\n if (!control) return false;\n return control && control?.invalid && control?.touched;\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport type FieldType =\n | 'text'\n | 'textarea'\n | 'select'\n | 'date'\n | 'number'\n | 'slider'\n | 'multi-select'\n | 'checkbox'\n | 'icon-field'\n | 'color-picker'\n | string;\n\nexport type ValidatorType =\n | 'required'\n | 'email'\n | 'minLength'\n | 'maxLength'\n | 'min'\n | 'max'\n | 'pattern'\n | 'custom';\n\nexport class ValidatorConfig {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n\n constructor(config: {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n }) {\n this.type = config.type;\n this.value = config.value;\n this.message = config.message;\n this.customValidator = config.customValidator;\n }\n\n // Factory methods for common validators\n static required(message = 'This field is required'): ValidatorConfig {\n return new ValidatorConfig({ type: 'required', message });\n }\n\n static email(message = 'Please enter a valid email'): ValidatorConfig {\n return new ValidatorConfig({ type: 'email', message });\n }\n\n static minLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'minLength',\n value: length,\n message: message || `Minimum length is ${length} characters`,\n });\n }\n\n static maxLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'maxLength',\n value: length,\n message: message || `Maximum length is ${length} characters`,\n });\n }\n\n static min(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'min',\n value,\n message: message || `Minimum value is ${value}`,\n });\n }\n\n static max(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'max',\n value,\n message: message || `Maximum value is ${value}`,\n });\n }\n\n static pattern(pattern: string, message = 'Invalid format'): ValidatorConfig {\n return new ValidatorConfig({ type: 'pattern', value: pattern, message });\n }\n\n static custom(\n validator: (value: any) => boolean | Promise<boolean>,\n message = 'Invalid value',\n ): ValidatorConfig {\n return new ValidatorConfig({\n type: 'custom',\n customValidator: validator,\n message,\n });\n }\n}\n\nexport type BaseFieldConstructorConfig = ConstructorParameters<\n typeof BaseFieldConfig\n>[0];\n\nexport abstract class BaseFieldConfig {\n key: string;\n label: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n readonly: boolean;\n hidden: boolean;\n placeholder: string;\n hint: string;\n cssClass: string;\n validators: ValidatorConfig[];\n order: number;\n\n defaultValue?: any;\n\n customTemplate: string;\n\n constructor(config: {\n key?: string;\n label?: string;\n type: FieldType;\n required?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n placeholder?: string;\n hint?: string;\n cssClass?: string;\n validators?: ValidatorConfig[];\n order?: number;\n defaultValue?: any;\n }) {\n this.key = config.key || 'Key';\n this.label = config.label || '';\n this.type = config.type;\n this.required = config.required || false;\n this.disabled = config.disabled || false;\n this.readonly = config.readonly || false;\n this.hidden = config.hidden || false;\n this.placeholder = config.placeholder || '';\n this.hint = config.hint || '';\n this.cssClass = config.cssClass || '';\n this.validators = config.validators || [];\n this.order = config.order || 0;\n this.defaultValue = config.defaultValue;\n }\n}\n\n// Specific configurations for different field types\nexport class TextFieldConfig extends BaseFieldConfig {\n inputType: 'text' | 'email';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n inputType?: 'text' | 'email';\n },\n ) {\n super({ ...config, type: 'text' });\n this.inputType = config.inputType || 'text';\n }\n}\n\nexport class TextareaFieldConfig extends BaseFieldConfig {\n rows: number;\n autoResize: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n rows?: number;\n autoResize?: boolean;\n },\n ) {\n super({ ...config, type: 'textarea' });\n this.rows = config.rows || 3;\n this.autoResize = config.autoResize || false;\n }\n}\n\nexport class SelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n multiple: boolean;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n multiple?: boolean;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n },\n ) {\n super({ ...config, type: 'select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.multiple = config.multiple || false;\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n }\n}\n\nexport class DateFieldConfig extends BaseFieldConfig {\n dateFormat: string;\n showTime: boolean;\n showSeconds: boolean;\n hourFormat: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates: Date[];\n disabledDays: number[];\n yearRange: string;\n showIcon: boolean;\n icon: string;\n showButtonBar: boolean;\n showClear: boolean;\n inline: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n dateFormat?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n hourFormat?: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[];\n yearRange?: string;\n showIcon?: boolean;\n icon?: string;\n showButtonBar?: boolean;\n showClear?: boolean;\n inline?: boolean;\n },\n ) {\n super({ ...config, type: 'date' });\n this.dateFormat = config.dateFormat || 'yyyy-mm-dd';\n this.showTime = config.showTime || false;\n this.showSeconds = config.showSeconds || false;\n this.hourFormat = config.hourFormat || '24';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.disabledDates = config.disabledDates || [];\n this.disabledDays = config.disabledDays || [];\n this.yearRange = config.yearRange || '1900:2030';\n this.showIcon = config.showIcon || true;\n this.icon = config.icon || 'pi pi-calendar';\n this.showButtonBar = config.showButtonBar || false;\n this.showClear = config.showClear || true;\n this.inline = config.inline || false;\n }\n}\n\nexport class NumberFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n },\n ) {\n super({ ...config, type: 'number' });\n this.min = config.min;\n this.max = config.max;\n this.step = config.step || 1;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.currency = config.currency;\n this.locale = config.locale;\n this.minFractionDigits = config.minFractionDigits;\n this.maxFractionDigits = config.maxFractionDigits;\n this.useGrouping = config.useGrouping || false;\n this.showButtons = config.showButtons || false;\n this.buttonLayout = config.buttonLayout || 'stacked';\n this.incrementButtonClass = config.incrementButtonClass;\n this.decrementButtonClass = config.decrementButtonClass;\n this.incrementButtonIcon = config.incrementButtonIcon;\n this.decrementButtonIcon = config.decrementButtonIcon;\n }\n}\n\nexport class SliderFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n },\n ) {\n super({ ...config, type: 'slider' });\n this.min = config.min || 0;\n this.max = config.max || 100;\n this.step = config.step || 1;\n this.orientation = config.orientation || 'horizontal';\n this.range = config.range || false;\n this.animate = config.animate || false;\n }\n}\n\nexport class MultiSelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n },\n ) {\n super({ ...config, type: 'multi-select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.display = config.display || 'comma';\n this.maxSelectedLabels = config.maxSelectedLabels || 3;\n this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';\n this.showToggleAll = config.showToggleAll || true;\n this.resetFilterOnHide = config.resetFilterOnHide || false;\n }\n}\n\nexport class CheckboxFieldConfig extends BaseFieldConfig {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n },\n ) {\n super({ ...config, type: 'checkbox' });\n this.binary = config.binary !== false; // Default to true\n this.trueValue = config.trueValue !== undefined ? config.trueValue : true;\n this.falseValue =\n config.falseValue !== undefined ? config.falseValue : false;\n this.checkboxIcon = config.checkboxIcon;\n }\n}\n\nexport class ColorPickerFieldConfig extends BaseFieldConfig {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n },\n ) {\n super({ ...config, type: 'color-picker' });\n this.format = config.format || 'hex';\n this.inline = config.inline || false;\n this.appendTo = config.appendTo || 'body';\n }\n}\n\nexport class IconFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {}) {\n super({ ...config, type: 'icon-field' });\n }\n}\n\n// Union type for all field configurations\nexport type DynamicFieldConfig = {\n [K in keyof (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)]?: (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)[K];\n};\n\n// Layout configuration\nexport interface LayoutConfig {\n containerClass?: string;\n sectionClass?: string;\n fieldClass?: string;\n}\n\n// Simplified form configuration interface\nexport interface DynamicFormConfig {\n sections: SectionConfig[];\n layout?: LayoutConfig;\n}\nexport interface SectionConfig {\n key?: string;\n label?: string;\n type: 'none' | 'header';\n cssClass?: string;\n bodyClass?: string;\n headerClass?: string;\n\n order?: number;\n fields: DynamicFieldConfig[];\n}\n\nexport function createCustomValidator(\n customValidator: (value: any) => boolean | Promise<boolean>,\n message?: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = customValidator(control.value);\n\n if (result instanceof Promise) {\n // Handle async validation\n result.then((isValid) => {\n if (!isValid) {\n control.setErrors({\n custom: { message: message || 'Invalid value' },\n });\n }\n });\n return null; // For async, return null initially\n } else {\n // Handle sync validation\n return result\n ? null\n : { custom: { message: message || 'Invalid value' } };\n }\n };\n}\n\nexport function wrapValidatorWithMessage(\n validator: ValidatorFn,\n errorKey: string,\n message: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = validator(control);\n if (result) {\n // Replace the default error with custom message\n return { [errorKey]: { ...result[Object.keys(result)[0]], message } };\n }\n return null;\n };\n}\n// DynamicFieldConfig = input.required<any>({\n// transform: (value: any) => this.transformToDateFieldConfig(value)\n// });\n// transformToDateFieldConfig(value: any){\n// return new TextFieldConfig()\n// }\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/config/povide-messages';\nexport * from './lib/utils/theme';\nexport * from './lib/utils/inputs';\nexport * from './lib/config/dynamic-form.model';\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":"masterteam-components.mjs","sources":["../../../../packages/masterteam/components/src/lib/utils/theme.ts","../../../../packages/masterteam/components/src/lib/config/providemt.ts","../../../../packages/masterteam/components/src/lib/config/povide-messages.ts","../../../../packages/masterteam/components/src/lib/utils/inputs.ts","../../../../packages/masterteam/components/src/lib/config/dynamic-form.model.ts","../../../../packages/masterteam/components/src/public-api.ts","../../../../packages/masterteam/components/src/masterteam-components.ts"],"sourcesContent":["type HSLTuple = [number, number, number]; // [hue, saturation, lightness]\ntype TailwindColorPalette = {\n [key: string]: string; // e.g., '50': '#f0f9ff', '500': '#0284c7'\n};\n\n/**\n * Converts a hex color string to an HSL tuple.\n * @param hex - The hex color string (e.g., \"#RRGGBB\" or \"#RGB\").\n * @returns An HSL tuple [hue, saturation, lightness] where hue is in degrees (0-360),\n * and saturation/lightness are percentages (0-100).\n */\nfunction hexToHsl(hex: string): HSLTuple {\n let r: number = 0,\n g: number = 0,\n b: number = 0;\n\n // Handle shorthand hex codes\n if (hex.length === 4) {\n r = parseInt(hex[1] + hex[1], 16);\n g = parseInt(hex[2] + hex[2], 16);\n b = parseInt(hex[3] + hex[3], 16);\n } else if (hex.length === 7) {\n r = parseInt(hex.substring(1, 3), 16);\n g = parseInt(hex.substring(3, 5), 16);\n b = parseInt(hex.substring(5, 7), 16);\n } else {\n throw new Error('Invalid hex color format. Expected #RGB or #RRGGBB.');\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n\n const max: number = Math.max(r, g, b);\n const min: number = Math.min(r, g, b);\n let h: number = 0,\n s: number;\n const l: number = (max + min) / 2;\n\n if (max === min) {\n h = s = 0; // achromatic\n } else {\n const d: number = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n\n return [h * 360, s * 100, l * 100]; // HSL in degrees, percentage, percentage\n}\n\n/**\n * Converts HSL values to a hex color string.\n * @param h - Hue (0-360).\n * @param s - Saturation (0-100).\n * @param l - Lightness (0-100).\n * @returns The hex color string (e.g., \"#RRGGBB\").\n */\nfunction hslToHex(h: number, s: number, l: number): string {\n l /= 100;\n const a: number = (s * Math.min(l, 1 - l)) / 100;\n const f = (n: number): string => {\n const k: number = (n + h / 30) % 12;\n const color: number = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return Math.round(255 * color)\n .toString(16)\n .padStart(2, '0');\n };\n return `#${f(0)}${f(8)}${f(4)}`;\n}\n\n/**\n * Generates a Tailwind-like color palette (50-950) from a primary color (assumed to be 500).\n *\n * @param primaryColor500 - The hex string of the primary color (e.g., \"#0284c7\").\n * @returns An object representing the color palette, where keys are color numbers (e.g., \"50\", \"100\")\n * and values are hex color strings.\n */\nexport function generateTailwindPalette(\n primaryColor500: string,\n): TailwindColorPalette {\n const [h, s, _l]: HSLTuple = hexToHsl(primaryColor500);\n\n const palette: TailwindColorPalette = {\n '500': primaryColor500,\n };\n\n // Define steps for lighter shades (50 - 400)\n const lightnessStepsLighter: { [key: string]: number } = {\n '50': 95,\n '100': 90,\n '200': 80,\n '300': 70,\n '400': 60,\n };\n\n const saturationReductionsLighter: { [key: string]: number } = {\n '50': 40, // More desaturated\n '100': 30,\n '200': 20,\n '300': 10,\n '400': 5, // Slightly desaturated\n };\n\n for (const shade in lightnessStepsLighter) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsLighter, shade)) {\n const newL: number = lightnessStepsLighter[shade];\n // Ensure saturation doesn't go below 0\n const newS: number = Math.max(0, s - saturationReductionsLighter[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Define steps for darker shades (600 - 950)\n const lightnessStepsDarker: { [key: string]: number } = {\n '600': 45,\n '700': 35,\n '800': 25,\n '900': 15,\n '950': 8, // More aggressive darkening for 950\n };\n\n const saturationIncreasesDarker: { [key: string]: number } = {\n '600': 5,\n '700': 10,\n '800': 15,\n '900': 20,\n '950': 25, // Can increase saturation for darker shades\n };\n\n for (const shade in lightnessStepsDarker) {\n if (Object.prototype.hasOwnProperty.call(lightnessStepsDarker, shade)) {\n const newL: number = lightnessStepsDarker[shade];\n // Ensure saturation doesn't exceed 100\n const newS: number = Math.min(100, s + saturationIncreasesDarker[shade]);\n palette[shade] = hslToHex(h, newS, newL);\n }\n }\n\n // Sort the keys numerically to ensure consistent order\n const sortedPalette: TailwindColorPalette = {};\n Object.keys(palette)\n .sort((a, b) => parseInt(a) - parseInt(b))\n .forEach((key: string) => {\n sortedPalette[key] = palette[key];\n });\n\n return sortedPalette;\n}\n","import { providePrimeNG } from 'primeng/config';\nimport { generateTailwindPalette } from '../utils/theme';\nimport Aura from '@primeuix/themes/aura';\nimport { definePreset, updatePreset } from '@primeuix/themes';\nimport { ToastTokenSections } from '@primeuix/themes/types/toast';\nimport { EnvironmentProviders } from '@angular/core';\n\nconst toastStyle: ToastTokenSections.Success = {\n // borderColor: '{surface.300}',\n background: '{content.background}',\n // color: '{surface.600}',\n // closeButton: {\n // hoverBackground: '{surface.100}',\n // focusRing: {\n // color: '{surface.600}',\n // },\n // },\n};\n\nexport function changePrimaryColor(color: string): void {\n updatePreset({\n semantic: {\n primary: generateTailwindPalette(color || '#334dff'),\n },\n });\n}\n\nconst MTPreset = (primaryColor?: string) =>\n definePreset(Aura, {\n options: {\n prefix: 'mt',\n cssLayer: {\n name: 'primeng',\n order: 'theme, base, primeng',\n },\n },\n semantic: {\n primary: generateTailwindPalette(primaryColor || '#334dff'),\n content: {\n borderRadius: '{border.radius.lg}',\n },\n formField: {\n borderRadius: '{border.radius.lg}',\n },\n },\n components: {\n toast: {\n root: {\n borderRadius: '{border.radius.xl}',\n },\n colorScheme: {\n light: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n dark: {\n success: toastStyle,\n info: toastStyle,\n warn: toastStyle,\n error: toastStyle,\n secondary: toastStyle,\n },\n },\n },\n togglebutton: {\n root: {\n padding: '1px',\n sm: {\n padding: '1px',\n },\n lg: {\n padding: '1px',\n },\n },\n colorScheme: {\n light: {\n root: {\n checkedColor: '{primary.500}',\n },\n },\n dark: {\n root: {\n checkedColor: '{primary.400}',\n },\n },\n },\n },\n selectbutton: {\n root: {\n borderRadius: '{border.radius.lg}',\n },\n },\n\n paginator: {\n root: {\n borderRadius: '{border.radius.lg}',\n padding: '0 .5rem',\n },\n navButton: {\n borderRadius: '0',\n },\n\n colorScheme: {\n light: {\n navButton: {\n color: '{surface.600}',\n hoverBackground: '#fff',\n selectedBackground: '{surface.200}',\n selectedColor: '{surface.600}',\n focusRing: {\n color: '{surface.200}',\n },\n },\n },\n dark: {\n navButton: {\n color: '{surface.200}',\n hoverBackground: 'transparent',\n selectedBackground: 'transparent',\n selectedColor: '#fff',\n focusRing: {\n color: '#fff',\n },\n },\n },\n },\n\n css: () => `\n .p-paginator {\n --p-paginator-gap: 0;\n --p-paginator-nav-button-width: 2.2rem;\n --p-paginator-nav-button-height: 2.2rem;\n width: fit-content;\n border: 1px solid var(--p-surface-200);\n overflow: hidden;\n font-size: .95rem;\n }\n\n .p-paginator-pages button,\n .p-paginator-prev,\n .p-paginator-next {\n border-color: var(--p-surface-200);\n }\n\n .p-paginator-pages button {\n border-style: solid;\n border-width: 0 0 0 1px;\n }\n\n .p-paginator-pages button:first-child {\n border-left: none;\n }\n\n .p-paginator-prev {\n border-right: 1px solid var(--p-surface-200);\n }\n\n .p-paginator-next {\n border-left: 1px solid var(--p-surface-200);\n }\n\n .p-paginator .p-select {\n border: 0;\n background: transparent;\n }\n\n .p-paginator .p-select .p-select-label {\n padding: 0;\n }\n\n /* Dark Mode Styles */\n .dark .p-paginator {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-pages button,\n .dark .p-paginator-prev,\n .dark .p-paginator-next {\n border-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-prev {\n border-right-color: var(--p-surface-500);\n }\n\n .dark .p-paginator-next {\n border-left-color: var(--p-surface-500);\n }\n `,\n },\n // steps: {\n // item: {\n // link: {\n // gap: 'calc(50% + 0.25rem)',\n // },\n // number: {\n // font: {\n // size: '0.9rem',\n // },\n // active: {\n // color: 'white',\n // background: '{primary.500}',\n // border: {\n // color: '{primary.500}',\n // },\n // },\n // },\n // },\n // },\n },\n });\n\nexport function provideMTComponents(\n primaryColor?: string,\n): EnvironmentProviders {\n return providePrimeNG({\n zIndex: {\n modal: 1900,\n overlay: 1500,\n menu: 1500,\n tooltip: 1600,\n },\n theme: {\n preset: MTPreset(primaryColor),\n options: {\n darkModeSelector: '.dark',\n },\n },\n });\n}\n","import { MessageService } from 'primeng/api';\n\nexport function provideMTMessages() {\n return MessageService;\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function isInvalid(control: AbstractControl | null) {\n if (!control) return false;\n return control && control?.invalid && control?.touched;\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport type FieldType =\n | 'text'\n | 'textarea'\n | 'select'\n | 'date'\n | 'number'\n | 'slider'\n | 'multi-select'\n | 'checkbox'\n | 'icon-field'\n | 'color-picker'\n | string;\n\nexport type ValidatorType =\n | 'required'\n | 'email'\n | 'minLength'\n | 'maxLength'\n | 'min'\n | 'max'\n | 'pattern'\n | 'custom';\n\nexport class ValidatorConfig {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n\n constructor(config: {\n type: ValidatorType;\n value?: any;\n message?: string;\n customValidator?: (value: any) => boolean | Promise<boolean>;\n }) {\n this.type = config.type;\n this.value = config.value;\n this.message = config.message;\n this.customValidator = config.customValidator;\n }\n\n // Factory methods for common validators\n static required(message = 'This field is required'): ValidatorConfig {\n return new ValidatorConfig({ type: 'required', message });\n }\n\n static email(message = 'Please enter a valid email'): ValidatorConfig {\n return new ValidatorConfig({ type: 'email', message });\n }\n\n static minLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'minLength',\n value: length,\n message: message || `Minimum length is ${length} characters`,\n });\n }\n\n static maxLength(length: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'maxLength',\n value: length,\n message: message || `Maximum length is ${length} characters`,\n });\n }\n\n static min(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'min',\n value,\n message: message || `Minimum value is ${value}`,\n });\n }\n\n static max(value: number, message?: string): ValidatorConfig {\n return new ValidatorConfig({\n type: 'max',\n value,\n message: message || `Maximum value is ${value}`,\n });\n }\n\n static pattern(pattern: string, message = 'Invalid format'): ValidatorConfig {\n return new ValidatorConfig({ type: 'pattern', value: pattern, message });\n }\n\n static custom(\n validator: (value: any) => boolean | Promise<boolean>,\n message = 'Invalid value',\n ): ValidatorConfig {\n return new ValidatorConfig({\n type: 'custom',\n customValidator: validator,\n message,\n });\n }\n}\n\nexport type BaseFieldConstructorConfig = ConstructorParameters<\n typeof BaseFieldConfig\n>[0];\n\nexport abstract class BaseFieldConfig {\n key: string;\n label: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n readonly: boolean;\n hidden: boolean;\n placeholder: string;\n hint: string;\n cssClass: string;\n validators: ValidatorConfig[];\n order: number;\n\n defaultValue?: any;\n\n customTemplate: string;\n\n constructor(config: {\n key?: string;\n label?: string;\n type: FieldType;\n required?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n hidden?: boolean;\n placeholder?: string;\n hint?: string;\n cssClass?: string;\n validators?: ValidatorConfig[];\n order?: number;\n defaultValue?: any;\n }) {\n this.key = config.key || 'Key';\n this.label = config.label || '';\n this.type = config.type;\n this.required = config.required || false;\n this.disabled = config.disabled || false;\n this.readonly = config.readonly || false;\n this.hidden = config.hidden || false;\n this.placeholder = config.placeholder || '';\n this.hint = config.hint || '';\n this.cssClass = config.cssClass || '';\n this.validators = config.validators || [];\n this.order = config.order || 0;\n this.defaultValue = config.defaultValue;\n }\n}\n\n// Specific configurations for different field types\nexport class TextFieldConfig extends BaseFieldConfig {\n inputType: 'text' | 'email';\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n inputType?: 'text' | 'email';\n },\n ) {\n super({ ...config, type: 'text' });\n this.inputType = config.inputType || 'text';\n }\n}\n\nexport class TextareaFieldConfig extends BaseFieldConfig {\n rows: number;\n autoResize: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n rows?: number;\n autoResize?: boolean;\n },\n ) {\n super({ ...config, type: 'textarea' });\n this.rows = config.rows || 3;\n this.autoResize = config.autoResize || false;\n }\n}\n\nexport class SelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n multiple: boolean;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n multiple?: boolean;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n },\n ) {\n super({ ...config, type: 'select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.multiple = config.multiple || false;\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n }\n}\n\nexport class DateFieldConfig extends BaseFieldConfig {\n dateFormat: string;\n showTime: boolean;\n showSeconds: boolean;\n hourFormat: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates: Date[];\n disabledDays: number[];\n yearRange: string;\n showIcon: boolean;\n icon: string;\n showButtonBar: boolean;\n showClear: boolean;\n inline: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n dateFormat?: string;\n showTime?: boolean;\n showSeconds?: boolean;\n hourFormat?: '12' | '24';\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[];\n yearRange?: string;\n showIcon?: boolean;\n icon?: string;\n showButtonBar?: boolean;\n showClear?: boolean;\n inline?: boolean;\n },\n ) {\n super({ ...config, type: 'date' });\n this.dateFormat = config.dateFormat || 'yyyy-mm-dd';\n this.showTime = config.showTime || false;\n this.showSeconds = config.showSeconds || false;\n this.hourFormat = config.hourFormat || '24';\n this.minDate = config.minDate;\n this.maxDate = config.maxDate;\n this.disabledDates = config.disabledDates || [];\n this.disabledDays = config.disabledDays || [];\n this.yearRange = config.yearRange || '1900:2030';\n this.showIcon = config.showIcon || true;\n this.icon = config.icon || 'pi pi-calendar';\n this.showButtonBar = config.showButtonBar || false;\n this.showClear = config.showClear || true;\n this.inline = config.inline || false;\n }\n}\n\nexport class NumberFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n prefix?: string;\n suffix?: string;\n currency?: string;\n locale?: string;\n minFractionDigits?: number;\n maxFractionDigits?: number;\n useGrouping?: boolean;\n showButtons?: boolean;\n buttonLayout?: 'stacked' | 'horizontal';\n incrementButtonClass?: string;\n decrementButtonClass?: string;\n incrementButtonIcon?: string;\n decrementButtonIcon?: string;\n },\n ) {\n super({ ...config, type: 'number' });\n this.min = config.min;\n this.max = config.max;\n this.step = config.step || 1;\n this.prefix = config.prefix;\n this.suffix = config.suffix;\n this.currency = config.currency;\n this.locale = config.locale;\n this.minFractionDigits = config.minFractionDigits;\n this.maxFractionDigits = config.maxFractionDigits;\n this.useGrouping = config.useGrouping || false;\n this.showButtons = config.showButtons || false;\n this.buttonLayout = config.buttonLayout || 'stacked';\n this.incrementButtonClass = config.incrementButtonClass;\n this.decrementButtonClass = config.decrementButtonClass;\n this.incrementButtonIcon = config.incrementButtonIcon;\n this.decrementButtonIcon = config.decrementButtonIcon;\n }\n}\n\nexport class SliderFieldConfig extends BaseFieldConfig {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n min?: number;\n max?: number;\n step?: number;\n orientation?: 'horizontal' | 'vertical';\n range?: boolean;\n animate?: boolean;\n },\n ) {\n super({ ...config, type: 'slider' });\n this.min = config.min || 0;\n this.max = config.max || 100;\n this.step = config.step || 1;\n this.orientation = config.orientation || 'horizontal';\n this.range = config.range || false;\n this.animate = config.animate || false;\n }\n}\n\nexport class MultiSelectFieldConfig extends BaseFieldConfig {\n options: any[];\n optionLabel: string;\n optionValue: string;\n filter: boolean;\n filterBy: string;\n filterPlaceholder: string;\n showClear: boolean;\n emptyMessage: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n options: any[];\n optionLabel?: string;\n optionValue?: string;\n filter?: boolean;\n filterBy?: string;\n filterPlaceholder?: string;\n showClear?: boolean;\n emptyMessage?: string;\n display?: 'comma' | 'chip';\n maxSelectedLabels?: number;\n selectedItemsLabel?: string;\n showToggleAll?: boolean;\n resetFilterOnHide?: boolean;\n },\n ) {\n super({ ...config, type: 'multi-select' });\n this.options = config.options;\n this.optionLabel = config.optionLabel || 'label';\n this.optionValue = config.optionValue || 'value';\n this.filter = config.filter || false;\n this.filterBy = config.filterBy || '';\n this.filterPlaceholder = config.filterPlaceholder || 'Search...';\n this.showClear = config.showClear || false;\n this.emptyMessage = config.emptyMessage || 'No options available';\n this.display = config.display || 'comma';\n this.maxSelectedLabels = config.maxSelectedLabels || 3;\n this.selectedItemsLabel = config.selectedItemsLabel || '{0} items selected';\n this.showToggleAll = config.showToggleAll || true;\n this.resetFilterOnHide = config.resetFilterOnHide || false;\n }\n}\n\nexport class CheckboxFieldConfig extends BaseFieldConfig {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n binary?: boolean;\n trueValue?: any;\n falseValue?: any;\n checkboxIcon?: string;\n },\n ) {\n super({ ...config, type: 'checkbox' });\n this.binary = config.binary !== false; // Default to true\n this.trueValue = config.trueValue !== undefined ? config.trueValue : true;\n this.falseValue =\n config.falseValue !== undefined ? config.falseValue : false;\n this.checkboxIcon = config.checkboxIcon;\n }\n}\n\nexport class ColorPickerFieldConfig extends BaseFieldConfig {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n\n constructor(\n config: Omit<BaseFieldConstructorConfig, 'type'> & {\n format?: 'hex' | 'rgb' | 'hsb';\n inline?: boolean;\n appendTo?: any;\n },\n ) {\n super({ ...config, type: 'color-picker' });\n this.format = config.format || 'hex';\n this.inline = config.inline || false;\n this.appendTo = config.appendTo || 'body';\n }\n}\n\nexport class IconFieldConfig extends BaseFieldConfig {\n constructor(config: Omit<BaseFieldConstructorConfig, 'type'> & {}) {\n super({ ...config, type: 'icon-field' });\n }\n}\n\n// Union type for all field configurations\nexport type DynamicFieldConfig = {\n [K in keyof (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)]?: (TextFieldConfig &\n TextareaFieldConfig &\n SelectFieldConfig &\n DateFieldConfig &\n NumberFieldConfig &\n SliderFieldConfig &\n MultiSelectFieldConfig &\n CheckboxFieldConfig &\n ColorPickerFieldConfig &\n IconFieldConfig &\n BaseFieldConfig)[K];\n};\n\n// Layout configuration\nexport interface LayoutConfig {\n containerClass?: string;\n sectionClass?: string;\n fieldClass?: string;\n}\n\n// Simplified form configuration interface\nexport interface DynamicFormConfig {\n sections: SectionConfig[];\n layout?: LayoutConfig;\n}\nexport interface SectionConfig {\n key?: string;\n label?: string;\n type: 'none' | 'header';\n cssClass?: string;\n bodyClass?: string;\n headerClass?: string;\n\n order?: number;\n fields: DynamicFieldConfig[];\n}\n\nexport function createCustomValidator(\n customValidator: (value: any) => boolean | Promise<boolean>,\n message?: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = customValidator(control.value);\n\n if (result instanceof Promise) {\n // Handle async validation\n result.then((isValid) => {\n if (!isValid) {\n control.setErrors({\n custom: { message: message || 'Invalid value' },\n });\n }\n });\n return null; // For async, return null initially\n } else {\n // Handle sync validation\n return result\n ? null\n : { custom: { message: message || 'Invalid value' } };\n }\n };\n}\n\nexport function wrapValidatorWithMessage(\n validator: ValidatorFn,\n errorKey: string,\n message: string,\n): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const result = validator(control);\n if (result) {\n // Replace the default error with custom message\n return { [errorKey]: { ...result[Object.keys(result)[0]], message } };\n }\n return null;\n };\n}\n// DynamicFieldConfig = input.required<any>({\n// transform: (value: any) => this.transformToDateFieldConfig(value)\n// });\n// transformToDateFieldConfig(value: any){\n// return new TextFieldConfig()\n// }\n","/*\n * Public API Surface of components\n */\n\nexport * from './lib/config/providemt';\nexport * from './lib/config/povide-messages';\nexport * from './lib/utils/theme';\nexport * from './lib/utils/inputs';\nexport * from './lib/config/dynamic-form.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/components",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "publishConfig": {
5
5
  "directory": ".",
6
6
  "linkDirectory": false,
@@ -38,13 +38,17 @@
38
38
  "types": "./index.d.ts",
39
39
  "default": "./fesm2022/masterteam-components.mjs"
40
40
  },
41
+ "./avatar": {
42
+ "types": "./avatar/index.d.ts",
43
+ "default": "./fesm2022/masterteam-components-avatar.mjs"
44
+ },
41
45
  "./avatar-text": {
42
46
  "types": "./avatar-text/index.d.ts",
43
47
  "default": "./fesm2022/masterteam-components-avatar-text.mjs"
44
48
  },
45
- "./avatar": {
46
- "types": "./avatar/index.d.ts",
47
- "default": "./fesm2022/masterteam-components-avatar.mjs"
49
+ "./button": {
50
+ "types": "./button/index.d.ts",
51
+ "default": "./fesm2022/masterteam-components-button.mjs"
48
52
  },
49
53
  "./button-group": {
50
54
  "types": "./button-group/index.d.ts",
@@ -54,10 +58,6 @@
54
58
  "types": "./card/index.d.ts",
55
59
  "default": "./fesm2022/masterteam-components-card.mjs"
56
60
  },
57
- "./button": {
58
- "types": "./button/index.d.ts",
59
- "default": "./fesm2022/masterteam-components-button.mjs"
60
- },
61
61
  "./checkbox-field": {
62
62
  "types": "./checkbox-field/index.d.ts",
63
63
  "default": "./fesm2022/masterteam-components-checkbox-field.mjs"
@@ -66,25 +66,21 @@
66
66
  "types": "./chip/index.d.ts",
67
67
  "default": "./fesm2022/masterteam-components-chip.mjs"
68
68
  },
69
- "./color-picker-field": {
70
- "types": "./color-picker-field/index.d.ts",
71
- "default": "./fesm2022/masterteam-components-color-picker-field.mjs"
72
- },
73
69
  "./breadcrumb": {
74
70
  "types": "./breadcrumb/index.d.ts",
75
71
  "default": "./fesm2022/masterteam-components-breadcrumb.mjs"
76
72
  },
77
- "./editor-field": {
78
- "types": "./editor-field/index.d.ts",
79
- "default": "./fesm2022/masterteam-components-editor-field.mjs"
73
+ "./color-picker-field": {
74
+ "types": "./color-picker-field/index.d.ts",
75
+ "default": "./fesm2022/masterteam-components-color-picker-field.mjs"
80
76
  },
81
77
  "./date-field": {
82
78
  "types": "./date-field/index.d.ts",
83
79
  "default": "./fesm2022/masterteam-components-date-field.mjs"
84
80
  },
85
- "./field-validation": {
86
- "types": "./field-validation/index.d.ts",
87
- "default": "./fesm2022/masterteam-components-field-validation.mjs"
81
+ "./editor-field": {
82
+ "types": "./editor-field/index.d.ts",
83
+ "default": "./fesm2022/masterteam-components-editor-field.mjs"
88
84
  },
89
85
  "./list": {
90
86
  "types": "./list/index.d.ts",
@@ -94,14 +90,18 @@
94
90
  "types": "./icon-field/index.d.ts",
95
91
  "default": "./fesm2022/masterteam-components-icon-field.mjs"
96
92
  },
97
- "./multi-select-field": {
98
- "types": "./multi-select-field/index.d.ts",
99
- "default": "./fesm2022/masterteam-components-multi-select-field.mjs"
100
- },
101
93
  "./formula-builder": {
102
94
  "types": "./formula-builder/index.d.ts",
103
95
  "default": "./fesm2022/masterteam-components-formula-builder.mjs"
104
96
  },
97
+ "./field-validation": {
98
+ "types": "./field-validation/index.d.ts",
99
+ "default": "./fesm2022/masterteam-components-field-validation.mjs"
100
+ },
101
+ "./multi-select-field": {
102
+ "types": "./multi-select-field/index.d.ts",
103
+ "default": "./fesm2022/masterteam-components-multi-select-field.mjs"
104
+ },
105
105
  "./number-field": {
106
106
  "types": "./number-field/index.d.ts",
107
107
  "default": "./fesm2022/masterteam-components-number-field.mjs"
@@ -110,33 +110,33 @@
110
110
  "types": "./paginator/index.d.ts",
111
111
  "default": "./fesm2022/masterteam-components-paginator.mjs"
112
112
  },
113
- "./radio-button-field": {
114
- "types": "./radio-button-field/index.d.ts",
115
- "default": "./fesm2022/masterteam-components-radio-button-field.mjs"
116
- },
117
113
  "./radio-cards": {
118
114
  "types": "./radio-cards/index.d.ts",
119
115
  "default": "./fesm2022/masterteam-components-radio-cards.mjs"
120
116
  },
121
- "./slider-field": {
122
- "types": "./slider-field/index.d.ts",
123
- "default": "./fesm2022/masterteam-components-slider-field.mjs"
124
- },
125
117
  "./radio-cards-field": {
126
118
  "types": "./radio-cards-field/index.d.ts",
127
119
  "default": "./fesm2022/masterteam-components-radio-cards-field.mjs"
128
120
  },
121
+ "./radio-button-field": {
122
+ "types": "./radio-button-field/index.d.ts",
123
+ "default": "./fesm2022/masterteam-components-radio-button-field.mjs"
124
+ },
129
125
  "./select-field": {
130
126
  "types": "./select-field/index.d.ts",
131
127
  "default": "./fesm2022/masterteam-components-select-field.mjs"
132
128
  },
129
+ "./tabs": {
130
+ "types": "./tabs/index.d.ts",
131
+ "default": "./fesm2022/masterteam-components-tabs.mjs"
132
+ },
133
133
  "./text-field": {
134
134
  "types": "./text-field/index.d.ts",
135
135
  "default": "./fesm2022/masterteam-components-text-field.mjs"
136
136
  },
137
- "./tabs": {
138
- "types": "./tabs/index.d.ts",
139
- "default": "./fesm2022/masterteam-components-tabs.mjs"
137
+ "./slider-field": {
138
+ "types": "./slider-field/index.d.ts",
139
+ "default": "./fesm2022/masterteam-components-slider-field.mjs"
140
140
  },
141
141
  "./textarea-field": {
142
142
  "types": "./textarea-field/index.d.ts",
@@ -5,28 +5,22 @@ import { MTIcon } from '@masterteam/icons';
5
5
  interface RadioItem {
6
6
  id: string | number;
7
7
  name?: string;
8
- active?: boolean;
9
8
  icon?: MTIcon;
10
9
  [key: string]: any;
11
10
  }
12
11
  declare class RadioCards {
13
12
  circle: _angular_core.InputSignalWithTransform<boolean, unknown>;
14
- color: _angular_core.InputSignalWithTransform<string, string>;
15
- size: _angular_core.InputSignalWithTransform<"medium" | "xs" | "base" | "2xl", "medium" | "small" | "large">;
13
+ color: _angular_core.InputSignal<string>;
14
+ size: _angular_core.InputSignal<"small" | "medium" | "large">;
16
15
  avatarSize: _angular_core.Signal<"large" | "normal" | "xlarge">;
17
16
  options: _angular_core.ModelSignal<RadioItem[]>;
18
17
  activeId: _angular_core.ModelSignal<string | number | undefined>;
19
18
  selectionChange: _angular_core.OutputEmitterRef<RadioItem>;
20
19
  itemTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
21
20
  itemTemplateContent: _angular_core.Signal<TemplateRef<any> | undefined>;
22
- /**
23
- * A computed signal that generates the dynamic Tailwind CSS classes
24
- * for the active state based on the color input.
25
- */
26
- protected activeColorClasses: _angular_core.Signal<{
27
- [x: string]: boolean;
28
- }>;
29
- constructor();
21
+ textSizeClass: _angular_core.Signal<"text-xs" | "text-2xl" | "text-base">;
22
+ classes: _angular_core.Signal<void>;
23
+ protected activeColorClasses: _angular_core.Signal<string[]>;
30
24
  selectItem(item: RadioItem): void;
31
25
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioCards, never>;
32
26
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioCards, "mt-radio-cards", never, { "circle": { "alias": "circle"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "activeId": { "alias": "activeId"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; }, { "options": "optionsChange"; "activeId": "activeIdChange"; "selectionChange": "selectionChange"; }, ["itemTemplateContent"], never, true, never>;