@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.
- package/breadcrumb/breadcrumb-separator.d.ts +1 -5
- package/breadcrumb/breadcrumb.d.ts +1 -0
- package/breadcrumb/breadcrumbs.d.ts +3 -1
- package/breadcrumb/public-api.d.ts +1 -1
- package/fesm2022/ngbase-adk-breadcrumb.mjs +32 -34
- package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
- package/package.json +13 -13
- package/schematics/components/files/accordion/accordion-llm.md.template +35 -0
- package/schematics/components/files/alert/alert-llm.md.template +34 -0
- package/schematics/components/files/autocomplete/autocomplete-llm.md.template +76 -0
- package/schematics/components/files/avatar/avatar-llm.md.template +37 -0
- package/schematics/components/files/avatar/avatar.ts.template +5 -2
- package/schematics/components/files/badge/badge-llm.md.template +21 -0
- package/schematics/components/files/badge/badge.ts.template +1 -1
- package/schematics/components/files/breadcrumb/breadcrumb-llm.md.template +26 -0
- package/schematics/components/files/breadcrumb/breadcrumb.ts.template +9 -18
- package/schematics/components/files/button/button-llm.md.template +22 -0
- package/schematics/components/files/card/card-llm.md.template +16 -0
- package/schematics/components/files/carousel/carousel-llm.md.template +38 -0
- package/schematics/components/files/checkbox/checkbox-llm.md.template +27 -0
- package/schematics/components/files/chip/chip-llm.md.template +29 -0
- package/schematics/components/files/color-picker/color-picker-llm.md.template +27 -0
- package/schematics/components/files/datepicker/datepicker-llm.md.template +43 -0
- package/schematics/components/files/dialog/dialog-llm.md.template +69 -0
- package/schematics/components/files/drawer/drawer-llm.md.template +54 -0
- package/schematics/components/files/form-field/form-field-llm.md.template +56 -0
- package/schematics/components/files/form-field/form-field.ts.template +1 -1
- package/schematics/components/files/hover-card/hover-card-llm.md.template +26 -0
- package/schematics/components/files/icon/icon-llm.md.template +19 -0
- package/schematics/components/files/inline-edit/inline-edit-llm.md.template +22 -0
- package/schematics/components/files/list/list-llm.md.template +23 -0
- package/schematics/components/files/mask/mask-llm.md.template +19 -0
- package/schematics/components/files/menu/context-menu-llm.md.template +28 -0
- package/schematics/components/files/menu/menu-llm.md.template +37 -0
- package/schematics/components/files/otp/otp-llm.md.template +21 -0
- package/schematics/components/files/pagination/pagination-llm.md.template +29 -0
- package/schematics/components/files/popover/popover-llm.md.template +59 -0
- package/schematics/components/files/progress/progress-llm.md.template +19 -0
- package/schematics/components/files/radio/radio-llm.md.template +36 -0
- package/schematics/components/files/resizable/resizable-llm.md.template +31 -0
- package/schematics/components/files/select/select-llm.md.template +87 -0
- package/schematics/components/files/selectable/selectable-llm.md.template +31 -0
- package/schematics/components/files/sheet/sheet-llm.md.template +54 -0
- package/schematics/components/files/sidenav/sidenav-llm.md.template +37 -0
- package/schematics/components/files/skeleton/skeleton-llm.md.template +22 -0
- package/schematics/components/files/slider/slider-llm.md.template +35 -0
- package/schematics/components/files/sonner/sonner-llm.md.template +34 -0
- package/schematics/components/files/spinner/spinner-llm.md.template +29 -0
- package/schematics/components/files/stepper/stepper-llm.md.template +32 -0
- package/schematics/components/files/switch/switch-llm.md.template +23 -0
- package/schematics/components/files/table/table-llm.md.template +31 -0
- package/schematics/components/files/tabs/tab.ts.template +1 -1
- package/schematics/components/files/tabs/tabs-llm.md.template +48 -0
- package/schematics/components/files/theme/index.ts.template +1 -1
- package/schematics/components/files/theme/theme-button.ts.template +27 -0
- package/schematics/components/files/theme/theme-llm.md.template +23 -0
- package/schematics/components/files/theme/theme.service.ts.template +1 -3
- package/schematics/components/files/toggle/toggle-llm.md.template +19 -0
- package/schematics/components/files/toggle-group/toggle-group-llm.md.template +32 -0
- package/schematics/components/files/tooltip/tooltip-llm.md.template +37 -0
- 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 {
|
|
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,
|
|
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/
|
|
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.
|
|
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: '
|
|
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
|
-
|
|
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
|
-
|
|
30
|
-
|
|
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:
|
|
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
|
+
```
|