@ngbase/adk 0.1.6 → 0.1.7

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.
Files changed (61) hide show
  1. package/breadcrumb/breadcrumb-separator.d.ts +1 -5
  2. package/breadcrumb/breadcrumb.d.ts +1 -0
  3. package/breadcrumb/breadcrumbs.d.ts +3 -1
  4. package/breadcrumb/public-api.d.ts +1 -1
  5. package/fesm2022/ngbase-adk-breadcrumb.mjs +32 -34
  6. package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
  7. package/package.json +13 -13
  8. package/schematics/components/files/accordion/accordion-llm.md.template +35 -0
  9. package/schematics/components/files/alert/alert-llm.md.template +34 -0
  10. package/schematics/components/files/autocomplete/autocomplete-llm.md.template +76 -0
  11. package/schematics/components/files/avatar/avatar-llm.md.template +37 -0
  12. package/schematics/components/files/avatar/avatar.ts.template +5 -2
  13. package/schematics/components/files/badge/badge-llm.md.template +21 -0
  14. package/schematics/components/files/badge/badge.ts.template +1 -1
  15. package/schematics/components/files/breadcrumb/breadcrumb-llm.md.template +26 -0
  16. package/schematics/components/files/breadcrumb/breadcrumb.ts.template +9 -18
  17. package/schematics/components/files/button/button-llm.md.template +22 -0
  18. package/schematics/components/files/card/card-llm.md.template +16 -0
  19. package/schematics/components/files/carousel/carousel-llm.md.template +38 -0
  20. package/schematics/components/files/checkbox/checkbox-llm.md.template +27 -0
  21. package/schematics/components/files/chip/chip-llm.md.template +29 -0
  22. package/schematics/components/files/color-picker/color-picker-llm.md.template +27 -0
  23. package/schematics/components/files/datepicker/datepicker-llm.md.template +43 -0
  24. package/schematics/components/files/dialog/dialog-llm.md.template +69 -0
  25. package/schematics/components/files/drawer/drawer-llm.md.template +54 -0
  26. package/schematics/components/files/form-field/form-field-llm.md.template +56 -0
  27. package/schematics/components/files/form-field/form-field.ts.template +1 -1
  28. package/schematics/components/files/hover-card/hover-card-llm.md.template +26 -0
  29. package/schematics/components/files/icon/icon-llm.md.template +19 -0
  30. package/schematics/components/files/inline-edit/inline-edit-llm.md.template +22 -0
  31. package/schematics/components/files/list/list-llm.md.template +23 -0
  32. package/schematics/components/files/mask/mask-llm.md.template +19 -0
  33. package/schematics/components/files/menu/context-menu-llm.md.template +28 -0
  34. package/schematics/components/files/menu/menu-llm.md.template +37 -0
  35. package/schematics/components/files/otp/otp-llm.md.template +21 -0
  36. package/schematics/components/files/pagination/pagination-llm.md.template +29 -0
  37. package/schematics/components/files/popover/popover-llm.md.template +59 -0
  38. package/schematics/components/files/progress/progress-llm.md.template +19 -0
  39. package/schematics/components/files/radio/radio-llm.md.template +36 -0
  40. package/schematics/components/files/resizable/resizable-llm.md.template +31 -0
  41. package/schematics/components/files/select/select-llm.md.template +87 -0
  42. package/schematics/components/files/selectable/selectable-llm.md.template +31 -0
  43. package/schematics/components/files/sheet/sheet-llm.md.template +54 -0
  44. package/schematics/components/files/sidenav/sidenav-llm.md.template +37 -0
  45. package/schematics/components/files/skeleton/skeleton-llm.md.template +22 -0
  46. package/schematics/components/files/slider/slider-llm.md.template +35 -0
  47. package/schematics/components/files/sonner/sonner-llm.md.template +34 -0
  48. package/schematics/components/files/spinner/spinner-llm.md.template +29 -0
  49. package/schematics/components/files/stepper/stepper-llm.md.template +32 -0
  50. package/schematics/components/files/switch/switch-llm.md.template +23 -0
  51. package/schematics/components/files/table/table-llm.md.template +31 -0
  52. package/schematics/components/files/tabs/tab.ts.template +1 -1
  53. package/schematics/components/files/tabs/tabs-llm.md.template +48 -0
  54. package/schematics/components/files/theme/index.ts.template +1 -1
  55. package/schematics/components/files/theme/theme-button.ts.template +27 -0
  56. package/schematics/components/files/theme/theme-llm.md.template +23 -0
  57. package/schematics/components/files/theme/theme.service.ts.template +1 -3
  58. package/schematics/components/files/toggle/toggle-llm.md.template +19 -0
  59. package/schematics/components/files/toggle-group/toggle-group-llm.md.template +32 -0
  60. package/schematics/components/files/tooltip/tooltip-llm.md.template +37 -0
  61. package/schematics/components/schema.json +2 -0
@@ -1,10 +1,6 @@
1
1
  import * as i0 from "@angular/core";
2
- export declare class NgbBreadcrumbSeparatorAria {
3
- readonly dir: import("@ngbase/adk/bidi").Directionality;
4
- static ɵfac: i0.ɵɵFactoryDeclaration<NgbBreadcrumbSeparatorAria, never>;
5
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBreadcrumbSeparatorAria, "[ngbBreadcrumbSeparatorAria]", never, {}, {}, never, never, true, never>;
6
- }
7
2
  export declare class NgbBreadcrumbSeparator {
3
+ readonly dir: import("@ngbase/adk/bidi").Directionality;
8
4
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbBreadcrumbSeparator, never>;
9
5
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBreadcrumbSeparator, "[ngbBreadcrumbsSeparator]", never, {}, {}, never, never, true, never>;
10
6
  }
@@ -2,6 +2,7 @@ import * as i0 from "@angular/core";
2
2
  export declare class NgbBreadcrumb {
3
3
  private breadcrumbs;
4
4
  readonly active: import("@angular/core").Signal<boolean>;
5
+ constructor();
5
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbBreadcrumb, never>;
6
7
  static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBreadcrumb, "[ngbBreadcrumb]", never, {}, {}, never, never, true, never>;
7
8
  }
@@ -1,7 +1,9 @@
1
+ import { TemplateRef } from '@angular/core';
1
2
  import { NgbBreadcrumb } from './breadcrumb';
2
3
  import * as i0 from "@angular/core";
3
4
  export declare class NgbBreadcrumbs {
4
5
  readonly items: import("@angular/core").Signal<readonly NgbBreadcrumb[]>;
6
+ readonly separator: import("@angular/core").Signal<TemplateRef<any> | undefined>;
5
7
  static ɵfac: i0.ɵɵFactoryDeclaration<NgbBreadcrumbs, never>;
6
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBreadcrumbs, "[ngbBreadcrumbs]", never, {}, {}, ["items"], never, true, never>;
8
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgbBreadcrumbs, "[ngbBreadcrumbs]", never, {}, {}, ["items", "separator"], never, true, never>;
7
9
  }
@@ -1,4 +1,4 @@
1
1
  export { NgbBreadcrumbs } from './breadcrumbs';
2
2
  export { NgbBreadcrumb, aliasBreadcrumb } from './breadcrumb';
3
3
  export { NgbBreadcrumbLink } from './breadcrumb-link';
4
- export { NgbBreadcrumbSeparatorAria, NgbBreadcrumbSeparator } from './breadcrumb-separator';
4
+ export { NgbBreadcrumbSeparator } from './breadcrumb-separator';
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, computed, Directive, contentChildren } from '@angular/core';
2
+ import { inject, computed, ViewContainerRef, effect, Directive, contentChildren, contentChild, TemplateRef } from '@angular/core';
3
3
  import { injectDirectionality } from '@ngbase/adk/bidi';
4
4
 
5
5
  class NgbBreadcrumb {
@@ -9,6 +9,14 @@ class NgbBreadcrumb {
9
9
  const items = this.breadcrumbs.items();
10
10
  return items.indexOf(this) === items.length - 1;
11
11
  });
12
+ const vcRef = inject(ViewContainerRef);
13
+ effect(cleanup => {
14
+ const separator = this.breadcrumbs.separator();
15
+ if (separator && !this.active()) {
16
+ vcRef.createEmbeddedView(separator);
17
+ cleanup(() => vcRef.clear());
18
+ }
19
+ });
12
20
  }
13
21
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumb, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
22
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbBreadcrumb, isStandalone: true, selector: "[ngbBreadcrumb]", host: { attributes: { "role": "link" }, properties: { "attr.aria-current": "active() ? 'page' : null", "attr.aria-disabled": "active()" } }, ngImport: i0 }); }
@@ -23,17 +31,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
23
31
  role: 'link',
24
32
  },
25
33
  }]
26
- }] });
34
+ }], ctorParameters: () => [] });
27
35
  function aliasBreadcrumb(breadcrumb) {
28
36
  return { provide: NgbBreadcrumb, useExisting: breadcrumb };
29
37
  }
30
38
 
39
+ class NgbBreadcrumbSeparator {
40
+ constructor() {
41
+ this.dir = injectDirectionality();
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbBreadcrumbSeparator, isStandalone: true, selector: "[ngbBreadcrumbsSeparator]", host: { attributes: { "tabindex": "-1", "aria-hidden": "true", "role": "presentation" } }, ngImport: i0 }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbSeparator, decorators: [{
47
+ type: Directive,
48
+ args: [{
49
+ selector: '[ngbBreadcrumbsSeparator]',
50
+ host: {
51
+ tabindex: '-1',
52
+ 'aria-hidden': 'true',
53
+ role: 'presentation',
54
+ },
55
+ }]
56
+ }] });
57
+
31
58
  class NgbBreadcrumbs {
32
59
  constructor() {
33
60
  this.items = contentChildren(NgbBreadcrumb);
61
+ this.separator = contentChild(NgbBreadcrumbSeparator, { read: TemplateRef });
34
62
  }
35
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbBreadcrumbs, isStandalone: true, selector: "[ngbBreadcrumbs]", host: { attributes: { "aria-label": "breadcrumb" } }, queries: [{ propertyName: "items", predicate: NgbBreadcrumb, isSignal: true }], ngImport: i0 }); }
64
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.0", type: NgbBreadcrumbs, isStandalone: true, selector: "[ngbBreadcrumbs]", host: { attributes: { "aria-label": "breadcrumb" } }, queries: [{ propertyName: "items", predicate: NgbBreadcrumb, isSignal: true }, { propertyName: "separator", first: true, predicate: NgbBreadcrumbSeparator, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0 }); }
37
65
  }
38
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbs, decorators: [{
39
67
  type: Directive,
@@ -65,39 +93,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
65
93
  }]
66
94
  }] });
67
95
 
68
- class NgbBreadcrumbSeparatorAria {
69
- constructor() {
70
- this.dir = injectDirectionality();
71
- }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbSeparatorAria, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
73
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbBreadcrumbSeparatorAria, isStandalone: true, selector: "[ngbBreadcrumbSeparatorAria]", host: { attributes: { "tabindex": "-1", "aria-hidden": "true", "role": "presentation" }, properties: { "style.transform": "dir.isRtl() ? \"rotate(180deg)\" : \"\"" } }, ngImport: i0 }); }
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbSeparatorAria, decorators: [{
76
- type: Directive,
77
- args: [{
78
- selector: '[ngbBreadcrumbSeparatorAria]',
79
- host: {
80
- tabindex: '-1',
81
- 'aria-hidden': 'true',
82
- role: 'presentation',
83
- '[style.transform]': 'dir.isRtl() ? "rotate(180deg)" : ""',
84
- },
85
- }]
86
- }] });
87
- class NgbBreadcrumbSeparator {
88
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
89
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0", type: NgbBreadcrumbSeparator, isStandalone: true, selector: "[ngbBreadcrumbsSeparator]", ngImport: i0 }); }
90
- }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: NgbBreadcrumbSeparator, decorators: [{
92
- type: Directive,
93
- args: [{
94
- selector: '[ngbBreadcrumbsSeparator]',
95
- }]
96
- }] });
97
-
98
96
  /**
99
97
  * Generated bundle index. Do not edit.
100
98
  */
101
99
 
102
- export { NgbBreadcrumb, NgbBreadcrumbLink, NgbBreadcrumbSeparator, NgbBreadcrumbSeparatorAria, NgbBreadcrumbs, aliasBreadcrumb };
100
+ export { NgbBreadcrumb, NgbBreadcrumbLink, NgbBreadcrumbSeparator, NgbBreadcrumbs, aliasBreadcrumb };
103
101
  //# sourceMappingURL=ngbase-adk-breadcrumb.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngbase-adk-breadcrumb.mjs","sources":["../../../projects/adk/breadcrumb/breadcrumb.ts","../../../projects/adk/breadcrumb/breadcrumbs.ts","../../../projects/adk/breadcrumb/breadcrumb-link.ts","../../../projects/adk/breadcrumb/breadcrumb-separator.ts","../../../projects/adk/breadcrumb/ngbase-adk-breadcrumb.ts"],"sourcesContent":["import { computed, Directive, inject } from '@angular/core';\nimport { NgbBreadcrumbs } from './breadcrumbs';\n\n@Directive({\n selector: '[ngbBreadcrumb]',\n host: {\n '[attr.aria-current]': \"active() ? 'page' : null\",\n '[attr.aria-disabled]': 'active()',\n role: 'link',\n },\n})\nexport class NgbBreadcrumb {\n private breadcrumbs = inject(NgbBreadcrumbs);\n readonly active = computed(() => {\n const items = this.breadcrumbs.items();\n return items.indexOf(this) === items.length - 1;\n });\n}\n\nexport function aliasBreadcrumb(breadcrumb: typeof NgbBreadcrumb) {\n return { provide: NgbBreadcrumb, useExisting: breadcrumb };\n}\n","import { contentChildren, Directive } from '@angular/core';\nimport { NgbBreadcrumb } from './breadcrumb';\n\n@Directive({\n selector: '[ngbBreadcrumbs]',\n host: {\n 'aria-label': 'breadcrumb',\n },\n})\nexport class NgbBreadcrumbs {\n readonly items = contentChildren(NgbBreadcrumb);\n}\n","import { Directive, inject } from '@angular/core';\nimport { NgbBreadcrumb } from './public-api';\n\n@Directive({\n selector: '[ngbBreadcrumbLink]',\n host: {\n '[tabIndex]': 'breadcrumb.active() ? -1 : 0',\n '[attr.aria-current]': \"breadcrumb.active() ? 'page' : null\",\n '[attr.aria-disabled]': 'breadcrumb.active() || null',\n role: 'link',\n },\n})\nexport class NgbBreadcrumbLink {\n readonly breadcrumb = inject(NgbBreadcrumb);\n}\n","import { Directive } from '@angular/core';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\n\n@Directive({\n selector: '[ngbBreadcrumbSeparatorAria]',\n host: {\n tabindex: '-1',\n 'aria-hidden': 'true',\n role: 'presentation',\n '[style.transform]': 'dir.isRtl() ? \"rotate(180deg)\" : \"\"',\n },\n})\nexport class NgbBreadcrumbSeparatorAria {\n readonly dir = injectDirectionality();\n}\n\n@Directive({\n selector: '[ngbBreadcrumbsSeparator]',\n})\nexport class NgbBreadcrumbSeparator {}\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":"ngbase-adk-breadcrumb.mjs","sources":["../../../projects/adk/breadcrumb/breadcrumb.ts","../../../projects/adk/breadcrumb/breadcrumb-separator.ts","../../../projects/adk/breadcrumb/breadcrumbs.ts","../../../projects/adk/breadcrumb/breadcrumb-link.ts","../../../projects/adk/breadcrumb/ngbase-adk-breadcrumb.ts"],"sourcesContent":["import { computed, Directive, effect, inject, ViewContainerRef } from '@angular/core';\nimport { NgbBreadcrumbs } from './breadcrumbs';\n\n@Directive({\n selector: '[ngbBreadcrumb]',\n host: {\n '[attr.aria-current]': \"active() ? 'page' : null\",\n '[attr.aria-disabled]': 'active()',\n role: 'link',\n },\n})\nexport class NgbBreadcrumb {\n private breadcrumbs = inject(NgbBreadcrumbs);\n readonly active = computed(() => {\n const items = this.breadcrumbs.items();\n return items.indexOf(this) === items.length - 1;\n });\n\n constructor() {\n const vcRef = inject(ViewContainerRef);\n effect(cleanup => {\n const separator = this.breadcrumbs.separator();\n if (separator && !this.active()) {\n vcRef.createEmbeddedView(separator);\n cleanup(() => vcRef.clear());\n }\n });\n }\n}\n\nexport function aliasBreadcrumb(breadcrumb: typeof NgbBreadcrumb) {\n return { provide: NgbBreadcrumb, useExisting: breadcrumb };\n}\n","import { Directive } from '@angular/core';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\n\n@Directive({\n selector: '[ngbBreadcrumbsSeparator]',\n host: {\n tabindex: '-1',\n 'aria-hidden': 'true',\n role: 'presentation',\n },\n})\nexport class NgbBreadcrumbSeparator {\n readonly dir = injectDirectionality();\n}\n","import { contentChild, contentChildren, Directive, TemplateRef } from '@angular/core';\nimport { NgbBreadcrumb } from './breadcrumb';\nimport { NgbBreadcrumbSeparator } from './breadcrumb-separator';\n\n@Directive({\n selector: '[ngbBreadcrumbs]',\n host: {\n 'aria-label': 'breadcrumb',\n },\n})\nexport class NgbBreadcrumbs {\n readonly items = contentChildren(NgbBreadcrumb);\n readonly separator = contentChild(NgbBreadcrumbSeparator, { read: TemplateRef });\n}\n","import { Directive, inject } from '@angular/core';\nimport { NgbBreadcrumb } from './public-api';\n\n@Directive({\n selector: '[ngbBreadcrumbLink]',\n host: {\n '[tabIndex]': 'breadcrumb.active() ? -1 : 0',\n '[attr.aria-current]': \"breadcrumb.active() ? 'page' : null\",\n '[attr.aria-disabled]': 'breadcrumb.active() || null',\n role: 'link',\n },\n})\nexport class NgbBreadcrumbLink {\n readonly breadcrumb = inject(NgbBreadcrumb);\n}\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": "@ngbase/adk",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/ng-base/ngbase.git"
@@ -44,10 +44,6 @@
44
44
  "types": "./avatar/index.d.ts",
45
45
  "default": "./fesm2022/ngbase-adk-avatar.mjs"
46
46
  },
47
- "./bidi": {
48
- "types": "./bidi/index.d.ts",
49
- "default": "./fesm2022/ngbase-adk-bidi.mjs"
50
- },
51
47
  "./autocomplete": {
52
48
  "types": "./autocomplete/index.d.ts",
53
49
  "default": "./fesm2022/ngbase-adk-autocomplete.mjs"
@@ -60,6 +56,10 @@
60
56
  "types": "./cache/index.d.ts",
61
57
  "default": "./fesm2022/ngbase-adk-cache.mjs"
62
58
  },
59
+ "./bidi": {
60
+ "types": "./bidi/index.d.ts",
61
+ "default": "./fesm2022/ngbase-adk-bidi.mjs"
62
+ },
63
63
  "./carousel": {
64
64
  "types": "./carousel/index.d.ts",
65
65
  "default": "./fesm2022/ngbase-adk-carousel.mjs"
@@ -96,6 +96,10 @@
96
96
  "types": "./dialog/index.d.ts",
97
97
  "default": "./fesm2022/ngbase-adk-dialog.mjs"
98
98
  },
99
+ "./drag": {
100
+ "types": "./drag/index.d.ts",
101
+ "default": "./fesm2022/ngbase-adk-drag.mjs"
102
+ },
99
103
  "./form-field": {
100
104
  "types": "./form-field/index.d.ts",
101
105
  "default": "./fesm2022/ngbase-adk-form-field.mjs"
@@ -104,10 +108,6 @@
104
108
  "types": "./hover-card/index.d.ts",
105
109
  "default": "./fesm2022/ngbase-adk-hover-card.mjs"
106
110
  },
107
- "./drag": {
108
- "types": "./drag/index.d.ts",
109
- "default": "./fesm2022/ngbase-adk-drag.mjs"
110
- },
111
111
  "./icon": {
112
112
  "types": "./icon/index.d.ts",
113
113
  "default": "./fesm2022/ngbase-adk-icon.mjs"
@@ -220,14 +220,14 @@
220
220
  "types": "./test/index.d.ts",
221
221
  "default": "./fesm2022/ngbase-adk-test.mjs"
222
222
  },
223
- "./toggle-group": {
224
- "types": "./toggle-group/index.d.ts",
225
- "default": "./fesm2022/ngbase-adk-toggle-group.mjs"
226
- },
227
223
  "./toggle": {
228
224
  "types": "./toggle/index.d.ts",
229
225
  "default": "./fesm2022/ngbase-adk-toggle.mjs"
230
226
  },
227
+ "./toggle-group": {
228
+ "types": "./toggle-group/index.d.ts",
229
+ "default": "./fesm2022/ngbase-adk-toggle-group.mjs"
230
+ },
231
231
  "./tooltip": {
232
232
  "types": "./tooltip/index.d.ts",
233
233
  "default": "./fesm2022/ngbase-adk-tooltip.mjs"
@@ -0,0 +1,35 @@
1
+ # MEE Accordion
2
+
3
+ ```typescript
4
+ import { Accordion, AccordionGroup, AccordionHeader } from '@/ui/accordion';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<<%= name %>-accordion-group>`
10
+
11
+ - **Input:** `[multiple]`: boolean = false - Allow multiple open items
12
+
13
+ ### `<<%= name %>-accordion>`
14
+
15
+ - **Inputs:**
16
+ - `[expanded]`: boolean = false - Item expanded state (2way)
17
+ - `[disabled]`: boolean = false - Disable interaction
18
+ - **Output:** `(expandedChange)`: EventEmitter<boolean> - On state change
19
+ - **Method:** `toggle()` - Toggle expanded state
20
+ - **Export:** `#accordion="<%= name %>Accordion"` - Template reference
21
+
22
+ ### `[<%= name %>AccordionHeader]`
23
+
24
+ - Directive for header element
25
+
26
+ ## Examples
27
+
28
+ ```html
29
+ <<%= name %>-accordion-group>
30
+ <<%= name %>-accordion>
31
+ <div <%= name %>AccordionHeader>Title</div>
32
+ <p>Content</p>
33
+ </<%= name %>-accordion>
34
+ </<%= name %>-accordion-group>
35
+ ```
@@ -0,0 +1,34 @@
1
+ # MEE Alert
2
+
3
+ ```typescript
4
+ import { alertPortal } from '@/ui/alert';
5
+ ```
6
+
7
+ ## Usage
8
+
9
+ ```ts
10
+ const alert = alertPortal();
11
+ alert.open({
12
+ title: 'Alert',
13
+ description: 'This is an alert',
14
+ actions: [
15
+ {
16
+ text: 'Cancel',
17
+ type: 'secondary', // ButtonVariant
18
+ handler: close => close(),
19
+ },
20
+ {
21
+ text: 'OK',
22
+ type: 'primary', // ButtonVariant
23
+ handler: close => {
24
+ okHandler();
25
+ close();
26
+ },
27
+ },
28
+ ],
29
+ });
30
+
31
+ function okHandler() {
32
+ console.log('OK');
33
+ }
34
+ ```
@@ -0,0 +1,76 @@
1
+ # MEE Autocomplete
2
+
3
+ ```typescript
4
+ import { FormField, Label } from '@/ui/form-field';
5
+ import { Autocomplete, AutocompleteInput } from '@/ui/autocomplete';
6
+ import { Option } from '@/ui/select';
7
+ ```
8
+
9
+ ## Components
10
+
11
+ ### `<<%= name %>-autocomplete>`
12
+
13
+ - **Inputs:**
14
+
15
+ - `value`: any[] | any - Selected value (2way)
16
+ - `disabled`: boolean = false - Disable the autocomplete (2way)
17
+ - `multiple`: boolean = false - Allow multiple selection
18
+ - `noAutoClose`: boolean = false - Prevent auto close
19
+ - `options`: any[] - Options
20
+ - `placeholder`: string = ' ' - Placeholder text
21
+ - `size`: 'target' | 'free' = 'free' - Size of the autocomplete
22
+ - `filterFn`: (option: any) => boolean = (option: any) => true - Filter function
23
+ - `queryFn`: (query: string, option: any) => boolean = (query: string, option: any) => true - Query function
24
+ - `filterOptions`: FilterOptions<any> - Filter options
25
+
26
+ - **Outputs:**
27
+
28
+ - `opened`: boolean - Open state
29
+ - `closed`: boolean - Close state
30
+
31
+ - **Methods:**
32
+
33
+ - `open()`: void - Open the autocomplete
34
+ - `close()`: void - Close the autocomplete
35
+
36
+ - **Export:** `#autocomplete="<%= name %>Autocomplete"` - Template reference
37
+
38
+ ### `[<%= name %>AutocompleteInput]`
39
+
40
+ - **Inputs:**
41
+
42
+ - `isChip`: boolean = false - Use chip style
43
+ - `placeholder`: string = ' ' - Placeholder text
44
+ - `value`: string = '' - Value (2way)
45
+
46
+ - **Outputs:**
47
+
48
+ - `ngbAutocompleteInput: <%= name %>AutocompleteInput` - Autocomplete input event (2way)
49
+
50
+ - **Export:** `#autocompleteInput="<%= name %>AutocompleteInput"` - Template reference
51
+
52
+ ### `<<%= name %>-option>`
53
+
54
+ - **Inputs:**
55
+
56
+ - `value`: any - Option value
57
+
58
+ - **Export:** `#option="<%= name %>Option"` - Template reference
59
+
60
+ ## Usage
61
+
62
+ ```html
63
+ <<%= name %>-form-field class="w-72 md:w-96">
64
+ <label <%= name %>Label>Autocomplete</label>
65
+ <<%= name %>-autocomplete [(ngModel)]="selectValue2.value" class="w-72 md:w-96">
66
+ <input
67
+ placeholder="Search options"
68
+ [(ngModel)]="selectValue2.optionsFilter.search"
69
+ <%= name %>AutocompleteInput
70
+ />
71
+ @for (item of selectValue2.optionsFilter.filteredList(); track item) {
72
+ <<%= name %>-option [value]="item">{{ item }}</<%= name %>-option>
73
+ }
74
+ </<%= name %>-autocomplete>
75
+ </<%= name %>-form-field>
76
+ ```
@@ -0,0 +1,37 @@
1
+ # MEE Avatar
2
+
3
+ ```typescript
4
+ import { Avatar, AvatarGroup } from '@/ui/avatar';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<<%= name %>-avatar-group>`
10
+
11
+ - **Inputs:**
12
+
13
+ - `reverse`: boolean = false - Reverse the avatar group
14
+ - `left`: boolean = false - Left the avatar group
15
+
16
+ - **Export:** `#avatarGroup="<%= name %>AvatarGroup"` - Template reference
17
+
18
+ ### `<<%= name %>-avatar>, [<%= name %>Avatar]`
19
+
20
+ - **Inputs:**
21
+
22
+ - `src`: string = '' - Avatar image source
23
+ - `name`: string = '' - Avatar name
24
+ - `text`: string = '' - Avatar text
25
+ - `size`: 'sm' | 'md' | 'lg' = 'md' - Avatar size
26
+
27
+ - **Export:** `#avatar="<%= name %>Avatar"` - Template reference
28
+
29
+ ## Usage
30
+
31
+ ```html
32
+ <<%= name %>-avatar name="John Doe" src="https://x.me/0.jpg" />
33
+ <<%= name %>-avatar-group>
34
+ <<%= name %>-avatar src="https://x.me/0.jpg" size="lg" />
35
+ <button <%= name %>Avatar src="https://x.me/1.jpg" size="lg" />
36
+ </<%= name %>-avatar-group>
37
+ ```
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
2
  import { NgbAvatar, NgbAvatarGroup, aliasAvatar } from '@ngbase/adk/avatar';
3
3
 
4
4
  @Component({
@@ -26,6 +26,9 @@ export class AvatarGroup {}
26
26
  host: {
27
27
  class:
28
28
  'inline-flex aspect-square rounded-full overflow-hidden border-2 border-muted relative bg-background text-muted-foreground items-center justify-center',
29
+ '[class]': `size() === 'sm' ? 'h-6 w-6' : size() === 'md' ? 'h-8 w-8' : size() === 'lg' ? 'h-10 w-10' : ''`,
29
30
  },
30
31
  })
31
- export class Avatar extends NgbAvatar {}
32
+ export class Avatar extends NgbAvatar {
33
+ readonly size = input<'sm' | 'md' | 'lg'>('md');
34
+ }
@@ -0,0 +1,21 @@
1
+ # MEE Badge
2
+
3
+ ```typescript
4
+ import { Badge } from '@/ui/badge';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<<%= name %>-badge>, [<%= name %>Badge]`
10
+
11
+ - **Inputs:**
12
+
13
+ - `variant`: 'info' | 'success' | 'warning' | 'danger' = 'info' - Badge variant
14
+
15
+ - **Export:** `<%= name %>Badge`
16
+
17
+ ## Usage
18
+
19
+ ```html
20
+ <<%= name %>-badge>Badge</<%= name %>-badge> <button <%= name %>Badge variant="success">Badge</button>
21
+ ```
@@ -5,7 +5,7 @@ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
5
5
  changeDetection: ChangeDetectionStrategy.OnPush,
6
6
  template: `<ng-content />`,
7
7
  host: {
8
- class: 'inline-block rounded-full px-2 py-1 text-xs font-semibold',
8
+ class: 'flex items-center gap-1 rounded-full px-2 py-1 text-xs font-semibold',
9
9
  '[class]': `variant() === 'success' ? 'bg-green-100 text-green-700' : variant() === 'warning' ? 'bg-yellow-100 text-yellow-700' : variant() === 'danger' ? 'bg-red-100 text-red-700' : 'bg-muted'`,
10
10
  },
11
11
  })
@@ -0,0 +1,26 @@
1
+ # MEE Breadcrumb
2
+
3
+ ```typescript
4
+ import { Breadcrumb, Breadcrumbs, BreadcrumbsSeparator } from '@/ui/breadcrumb';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<<%= name %>-breadcrumbs>`
10
+
11
+ ### `<<%= name %>-breadcrumb>`
12
+
13
+ ### `<<%= name %>-breadcrumbs-separator>` - Optional
14
+
15
+ ## Usage
16
+
17
+ ```html
18
+ <<%= name %>-breadcrumbs>
19
+ <ng-template <%= name %>BreadcrumbsSeparator>
20
+ <<%= name %>-icon name="lucideChevronRight"></<%= name %>-icon>
21
+ </ng-template>
22
+
23
+ <a <%= name %>Breadcrumb routerLink="/home">Home</a>
24
+ <<%= name %>-breadcrumb>Contact</<%= name %>-breadcrumb>
25
+ </<%= name %>-breadcrumbs>
26
+ ```
@@ -8,14 +8,16 @@ import {
8
8
  NgbBreadcrumbLink,
9
9
  NgbBreadcrumbs,
10
10
  NgbBreadcrumbSeparator,
11
- NgbBreadcrumbSeparatorAria,
12
11
  } from '@ngbase/adk/breadcrumb';
13
12
 
14
13
  @Component({
15
14
  selector: '<%= name %>-breadcrumbs',
16
15
  changeDetection: ChangeDetectionStrategy.OnPush,
16
+ viewProviders: [provideIcons({ lucideChevronRight })],
17
17
  hostDirectives: [NgbBreadcrumbs],
18
- template: `<ng-content />`,
18
+ imports: [Icon, NgbBreadcrumbSeparator],
19
+ template: `<ng-content />
20
+ <<%= name %>-icon *ngbBreadcrumbsSeparator name="lucideChevronRight" class="text-muted-foreground" /> `,
19
21
  host: {
20
22
  class: 'flex items-center gap-2',
21
23
  },
@@ -23,25 +25,14 @@ import {
23
25
  export class Breadcrumbs {}
24
26
 
25
27
  @Component({
26
- selector: '<%= name %>-breadcrumb',
28
+ selector: '<%= name %>-breadcrumb, [<%= name %>Breadcrumb]',
27
29
  changeDetection: ChangeDetectionStrategy.OnPush,
28
30
  providers: [aliasBreadcrumb(Breadcrumb)],
29
- viewProviders: [provideIcons({ lucideChevronRight })],
30
- imports: [Icon, NgbBreadcrumbLink, NgbBreadcrumbSeparatorAria],
31
- template: `
32
- <a class='hover:text-primary aria-[current="page"]:text-primary' ngbBreadcrumbLink>
33
- <ng-content />
34
- </a>
35
- @if (!active()) {
36
- <<%= name %>-icon
37
- ngbBreadcrumbSeparatorAria
38
- name="lucideChevronRight"
39
- class="text-muted-foreground"
40
- />
41
- }
42
- `,
31
+ hostDirectives: [NgbBreadcrumbLink],
32
+ template: `<ng-content />`,
43
33
  host: {
44
- class: 'flex items-center gap-2 text-muted-foreground',
34
+ class:
35
+ 'flex items-center gap-2 text-muted-foreground aria-[current="page"]:text-primary hover:text-primary cursor-pointer',
45
36
  },
46
37
  })
47
38
  export class Breadcrumb extends NgbBreadcrumb {}
@@ -0,0 +1,22 @@
1
+ # MEE Button
2
+
3
+ ```typescript
4
+ import { Button } from '@/ui/button';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `[<%= name %>Button]`
10
+
11
+ - ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'outline' | 'icon'
12
+ - **Inputs:**
13
+
14
+ - `variant`: ButtonVariant = 'primary'
15
+
16
+ - **Export:** `#button="<%= name %>Button"` - Template reference
17
+
18
+ ## Usage
19
+
20
+ ```html
21
+ <button <%= name %>Button>Button</button> <button <%= name %>Button variant="ghost">Button</button>
22
+ ```
@@ -0,0 +1,16 @@
1
+ # MEE Card
2
+
3
+ ```typescript
4
+ import { Card } from '@/ui/card';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<<%= name %>-card>, [<%= name %>Card]`
10
+
11
+ ## Usage
12
+
13
+ ```html
14
+ <<%= name %>-card>Card</<%= name %>-card>
15
+ <div <%= name %>Card>Card</div>
16
+ ```
@@ -0,0 +1,38 @@
1
+ # MEE Carousel
2
+
3
+ ```typescript
4
+ import { Carousel, CarouselItem, CarouselButton } from '@/ui/carousel';
5
+ ```
6
+
7
+ ## Components
8
+
9
+ ### `<<%= name %>-carousel>, [<%= name %>Carousel]`
10
+
11
+ - **Export:** `#carousel="<%= name %>Carousel"` - Template reference
12
+
13
+ ### `[<%= name %>CarouselItem]`
14
+
15
+ - **Export:** `#carouselItem="<%= name %>CarouselItem"` - Template reference
16
+
17
+ ### `<<%= name %>-carousel-button>, [<%= name %>CarouselButton]`
18
+
19
+ - **Inputs:**
20
+
21
+ - `<%= name %>CarouselButton`: 'next' | 'prev' | number - Carousel button
22
+
23
+ - **Export:** `#carouselButton="<%= name %>CarouselButton"` - Template reference
24
+
25
+ ## Usage
26
+
27
+ ```html
28
+ <<%= name %>-carousel>
29
+ <div <%= name %>CarouselItem class="pl-4lg:basis-1/3 aspect-square shrink-0 grow-0 basis-full">
30
+ Item 1
31
+ </div>
32
+ <div <%= name %>CarouselItem class="pl-4lg:basis-1/3 aspect-square shrink-0 grow-0 basis-full">
33
+ Item 2
34
+ </div>
35
+ <button <%= name %>CarouselButton="next">Next</button>
36
+ <button <%= name %>CarouselButton="prev">Prev</button>
37
+ </<%= name %>-carousel>
38
+ ```