@ngbase/adk 0.1.0 → 0.1.1
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/README.md +1 -1
- package/fesm2022/ngbase-adk-autocomplete.mjs +2 -2
- package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
- package/fesm2022/ngbase-adk-datepicker.mjs +18 -18
- package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
- package/fesm2022/ngbase-adk-dialog.mjs +6 -6
- package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
- package/fesm2022/ngbase-adk-pagination.mjs +18 -18
- package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
- package/fesm2022/ngbase-adk-popover.mjs +2 -2
- package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
- package/fesm2022/ngbase-adk-radio.mjs +2 -2
- package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
- package/fesm2022/ngbase-adk-resizable.mjs +4 -4
- package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
- package/fesm2022/ngbase-adk-select.mjs +4 -4
- package/fesm2022/ngbase-adk-select.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sonner.mjs +4 -4
- package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
- package/fesm2022/ngbase-adk-stepper.mjs +2 -2
- package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
- package/package.json +26 -25
- package/schematics/collection.json +15 -0
- package/schematics/components/files/accordion/accordion.ts.template +55 -0
- package/schematics/components/files/accordion/index.ts.template +5 -0
- package/schematics/components/files/alert/alert.ts.template +62 -0
- package/schematics/components/files/alert/index.ts.template +1 -0
- package/schematics/components/files/autocomplete/autocomplete.ts.template +48 -0
- package/schematics/components/files/autocomplete/index.ts.template +5 -0
- package/schematics/components/files/avatar/avatar.ts.template +31 -0
- package/schematics/components/files/avatar/index.ts.template +1 -0
- package/schematics/components/files/badge/badge.ts.template +11 -0
- package/schematics/components/files/badge/index.ts.template +1 -0
- package/schematics/components/files/breadcrumb/breadcrumb.ts.template +49 -0
- package/schematics/components/files/breadcrumb/index.ts.template +1 -0
- package/schematics/components/files/button/button.ts.template +29 -0
- package/schematics/components/files/button/index.ts.template +5 -0
- package/schematics/components/files/card/card.ts.template +11 -0
- package/schematics/components/files/card/index.ts.template +5 -0
- package/schematics/components/files/carousel/carousel.ts.template +44 -0
- package/schematics/components/files/carousel/index.ts.template +1 -0
- package/schematics/components/files/checkbox/checkbox.ts.template +46 -0
- package/schematics/components/files/checkbox/focus-style.directive.ts.template +12 -0
- package/schematics/components/files/checkbox/index.ts.template +6 -0
- package/schematics/components/files/chip/chip.ts.template +36 -0
- package/schematics/components/files/chip/index.ts.template +1 -0
- package/schematics/components/files/color-picker/color-picker.ts.template +104 -0
- package/schematics/components/files/color-picker/index.ts.template +5 -0
- package/schematics/components/files/command/command.ts.template +82 -0
- package/schematics/components/files/command/index.ts.template +1 -0
- package/schematics/components/files/datepicker/calendar.ts.template +117 -0
- package/schematics/components/files/datepicker/datepicker-trigger.ts.template +27 -0
- package/schematics/components/files/datepicker/datepicker.ts.template +28 -0
- package/schematics/components/files/datepicker/index.ts.template +3 -0
- package/schematics/components/files/datepicker/time.ts.template +46 -0
- package/schematics/components/files/dialog/dialog.ts.template +89 -0
- package/schematics/components/files/dialog/index.ts.template +5 -0
- package/schematics/components/files/drawer/drawer.ts.template +104 -0
- package/schematics/components/files/drawer/index.ts.template +5 -0
- package/schematics/components/files/form-field/index.ts.template +7 -0
- package/schematics/components/files/form-field/input-style.directive.ts.template +11 -0
- package/schematics/components/files/form-field/input.ts.template +100 -0
- package/schematics/components/files/form-field/otp.ts.template +37 -0
- package/schematics/components/files/hover-card/hover-card.ts.template +13 -0
- package/schematics/components/files/hover-card/index.ts.template +5 -0
- package/schematics/components/files/icon/icon.ts.template +16 -0
- package/schematics/components/files/icon/index.ts.template +1 -0
- package/schematics/components/files/inline-edit/index.ts.template +1 -0
- package/schematics/components/files/inline-edit/inline-edit.ts.template +24 -0
- package/schematics/components/files/keys/index.ts.template +5 -0
- package/schematics/components/files/keys/key.ts.template +35 -0
- package/schematics/components/files/list/index.ts.template +5 -0
- package/schematics/components/files/list/list.ts.template +28 -0
- package/schematics/components/files/mask/index.ts.template +1 -0
- package/schematics/components/files/mask/mask.ts.template +8 -0
- package/schematics/components/files/menu/context-menu.ts.template +14 -0
- package/schematics/components/files/menu/index.ts.template +8 -0
- package/schematics/components/files/menu/mention.ts.template +14 -0
- package/schematics/components/files/menu/menu.ts.template +37 -0
- package/schematics/components/files/menu/navigation-menu.ts.template +8 -0
- package/schematics/components/files/pagination/index.ts.template +1 -0
- package/schematics/components/files/pagination/pagination.ts.template +71 -0
- package/schematics/components/files/picasa/index.ts.template +1 -0
- package/schematics/components/files/picasa/picasa-base.component.ts.template +80 -0
- package/schematics/components/files/picasa/picasa.component.ts.template +57 -0
- package/schematics/components/files/picasa/picasa.directive.ts.template +41 -0
- package/schematics/components/files/picasa/picase.service.ts.template +24 -0
- package/schematics/components/files/popover/index.ts.template +1 -0
- package/schematics/components/files/popover/popover.ts.template +87 -0
- package/schematics/components/files/progress/index.ts.template +5 -0
- package/schematics/components/files/progress/progress.ts.template +14 -0
- package/schematics/components/files/radio/index.ts.template +5 -0
- package/schematics/components/files/radio/radio.ts.template +40 -0
- package/schematics/components/files/resizable/index.ts.template +5 -0
- package/schematics/components/files/resizable/resizable.ts.template +56 -0
- package/schematics/components/files/scroll-area/index.ts.template +1 -0
- package/schematics/components/files/scroll-area/scroll-area.ts.template +40 -0
- package/schematics/components/files/select/index.ts.template +8 -0
- package/schematics/components/files/select/list-selection.ts.template +15 -0
- package/schematics/components/files/select/option.ts.template +34 -0
- package/schematics/components/files/select/select-input.ts.template +21 -0
- package/schematics/components/files/select/select.ts.template +96 -0
- package/schematics/components/files/selectable/index.ts.template +1 -0
- package/schematics/components/files/selectable/selectable.ts.template +34 -0
- package/schematics/components/files/separator/index.ts.template +5 -0
- package/schematics/components/files/separator/separator.ts.template +19 -0
- package/schematics/components/files/sheet/index.ts.template +5 -0
- package/schematics/components/files/sheet/sheet.ts.template +134 -0
- package/schematics/components/files/sidenav/index.ts.template +1 -0
- package/schematics/components/files/sidenav/sidenav.ts.template +48 -0
- package/schematics/components/files/skeleton/index.ts.template +1 -0
- package/schematics/components/files/skeleton/skeleton.ts.template +15 -0
- package/schematics/components/files/slider/index.ts.template +5 -0
- package/schematics/components/files/slider/slider.ts.template +42 -0
- package/schematics/components/files/sonner/index.ts.template +5 -0
- package/schematics/components/files/sonner/sonner.ts.template +58 -0
- package/schematics/components/files/spinner/index.ts.template +1 -0
- package/schematics/components/files/spinner/spinner.ts.template +79 -0
- package/schematics/components/files/stepper/index.ts.template +1 -0
- package/schematics/components/files/stepper/stepper.ts.template +88 -0
- package/schematics/components/files/switch/index.ts.template +5 -0
- package/schematics/components/files/switch/switch.ts.template +29 -0
- package/schematics/components/files/table/body-cell.ts.template +19 -0
- package/schematics/components/files/table/body-row.ts.template +21 -0
- package/schematics/components/files/table/column.ts.template +8 -0
- package/schematics/components/files/table/head-cell.ts.template +19 -0
- package/schematics/components/files/table/head-row.ts.template +27 -0
- package/schematics/components/files/table/index.ts.template +26 -0
- package/schematics/components/files/table/table.ts.template +20 -0
- package/schematics/components/files/tabs/index.ts.template +5 -0
- package/schematics/components/files/tabs/tab.ts.template +89 -0
- package/schematics/components/files/theme/index.ts.template +2 -0
- package/schematics/components/files/theme/theme-button.component.ts.template +26 -0
- package/schematics/components/files/theme/theme.component.ts.template +165 -0
- package/schematics/components/files/theme/theme.service.ts.template +44 -0
- package/schematics/components/files/toggle/index.ts.template +5 -0
- package/schematics/components/files/toggle/toggle.ts.template +13 -0
- package/schematics/components/files/toggle-group/index.ts.template +5 -0
- package/schematics/components/files/toggle-group/toggle-group.ts.template +25 -0
- package/schematics/components/files/tooltip/index.ts.template +5 -0
- package/schematics/components/files/tooltip/tooltip.ts.template +40 -0
- package/schematics/components/files/tour/index.ts.template +3 -0
- package/schematics/components/files/tour/tour-step.ts.template +8 -0
- package/schematics/components/files/tour/tour.service.ts.template +7 -0
- package/schematics/components/files/tour/tour.ts.template +8 -0
- package/schematics/components/files/tree/index.ts.template +1 -0
- package/schematics/components/files/tree/tree.ts.template +66 -0
- package/schematics/components/index.d.ts +3 -0
- package/schematics/components/index.js +17 -0
- package/schematics/components/index.js.map +1 -0
- package/schematics/components/index.ts +29 -0
- package/schematics/components/schema.d.ts +6 -0
- package/schematics/components/schema.js +3 -0
- package/schematics/components/schema.js.map +1 -0
- package/schematics/components/schema.json +137 -0
- package/schematics/components/schema.ts +6 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngbase/adk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/ng-base/ngbase.git"
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"tslib": "^2.3.0"
|
|
22
22
|
},
|
|
23
|
+
"schematics": "./schematics/collection.json",
|
|
23
24
|
"sideEffects": false,
|
|
24
25
|
"module": "fesm2022/ngbase-adk.mjs",
|
|
25
26
|
"typings": "index.d.ts",
|
|
@@ -39,14 +40,14 @@
|
|
|
39
40
|
"types": "./accordion/index.d.ts",
|
|
40
41
|
"default": "./fesm2022/ngbase-adk-accordion.mjs"
|
|
41
42
|
},
|
|
42
|
-
"./autocomplete": {
|
|
43
|
-
"types": "./autocomplete/index.d.ts",
|
|
44
|
-
"default": "./fesm2022/ngbase-adk-autocomplete.mjs"
|
|
45
|
-
},
|
|
46
43
|
"./avatar": {
|
|
47
44
|
"types": "./avatar/index.d.ts",
|
|
48
45
|
"default": "./fesm2022/ngbase-adk-avatar.mjs"
|
|
49
46
|
},
|
|
47
|
+
"./autocomplete": {
|
|
48
|
+
"types": "./autocomplete/index.d.ts",
|
|
49
|
+
"default": "./fesm2022/ngbase-adk-autocomplete.mjs"
|
|
50
|
+
},
|
|
50
51
|
"./bidi": {
|
|
51
52
|
"types": "./bidi/index.d.ts",
|
|
52
53
|
"default": "./fesm2022/ngbase-adk-bidi.mjs"
|
|
@@ -55,14 +56,14 @@
|
|
|
55
56
|
"types": "./breadcrumb/index.d.ts",
|
|
56
57
|
"default": "./fesm2022/ngbase-adk-breadcrumb.mjs"
|
|
57
58
|
},
|
|
58
|
-
"./cache": {
|
|
59
|
-
"types": "./cache/index.d.ts",
|
|
60
|
-
"default": "./fesm2022/ngbase-adk-cache.mjs"
|
|
61
|
-
},
|
|
62
59
|
"./carousel": {
|
|
63
60
|
"types": "./carousel/index.d.ts",
|
|
64
61
|
"default": "./fesm2022/ngbase-adk-carousel.mjs"
|
|
65
62
|
},
|
|
63
|
+
"./cache": {
|
|
64
|
+
"types": "./cache/index.d.ts",
|
|
65
|
+
"default": "./fesm2022/ngbase-adk-cache.mjs"
|
|
66
|
+
},
|
|
66
67
|
"./checkbox": {
|
|
67
68
|
"types": "./checkbox/index.d.ts",
|
|
68
69
|
"default": "./fesm2022/ngbase-adk-checkbox.mjs"
|
|
@@ -99,14 +100,14 @@
|
|
|
99
100
|
"types": "./drag/index.d.ts",
|
|
100
101
|
"default": "./fesm2022/ngbase-adk-drag.mjs"
|
|
101
102
|
},
|
|
102
|
-
"./form-field": {
|
|
103
|
-
"types": "./form-field/index.d.ts",
|
|
104
|
-
"default": "./fesm2022/ngbase-adk-form-field.mjs"
|
|
105
|
-
},
|
|
106
103
|
"./hover-card": {
|
|
107
104
|
"types": "./hover-card/index.d.ts",
|
|
108
105
|
"default": "./fesm2022/ngbase-adk-hover-card.mjs"
|
|
109
106
|
},
|
|
107
|
+
"./form-field": {
|
|
108
|
+
"types": "./form-field/index.d.ts",
|
|
109
|
+
"default": "./fesm2022/ngbase-adk-form-field.mjs"
|
|
110
|
+
},
|
|
110
111
|
"./icon": {
|
|
111
112
|
"types": "./icon/index.d.ts",
|
|
112
113
|
"default": "./fesm2022/ngbase-adk-icon.mjs"
|
|
@@ -191,26 +192,26 @@
|
|
|
191
192
|
"types": "./sonner/index.d.ts",
|
|
192
193
|
"default": "./fesm2022/ngbase-adk-sonner.mjs"
|
|
193
194
|
},
|
|
194
|
-
"./switch": {
|
|
195
|
-
"types": "./switch/index.d.ts",
|
|
196
|
-
"default": "./fesm2022/ngbase-adk-switch.mjs"
|
|
197
|
-
},
|
|
198
195
|
"./stepper": {
|
|
199
196
|
"types": "./stepper/index.d.ts",
|
|
200
197
|
"default": "./fesm2022/ngbase-adk-stepper.mjs"
|
|
201
198
|
},
|
|
199
|
+
"./switch": {
|
|
200
|
+
"types": "./switch/index.d.ts",
|
|
201
|
+
"default": "./fesm2022/ngbase-adk-switch.mjs"
|
|
202
|
+
},
|
|
202
203
|
"./table": {
|
|
203
204
|
"types": "./table/index.d.ts",
|
|
204
205
|
"default": "./fesm2022/ngbase-adk-table.mjs"
|
|
205
206
|
},
|
|
206
|
-
"./tabs": {
|
|
207
|
-
"types": "./tabs/index.d.ts",
|
|
208
|
-
"default": "./fesm2022/ngbase-adk-tabs.mjs"
|
|
209
|
-
},
|
|
210
207
|
"./test": {
|
|
211
208
|
"types": "./test/index.d.ts",
|
|
212
209
|
"default": "./fesm2022/ngbase-adk-test.mjs"
|
|
213
210
|
},
|
|
211
|
+
"./tabs": {
|
|
212
|
+
"types": "./tabs/index.d.ts",
|
|
213
|
+
"default": "./fesm2022/ngbase-adk-tabs.mjs"
|
|
214
|
+
},
|
|
214
215
|
"./toggle": {
|
|
215
216
|
"types": "./toggle/index.d.ts",
|
|
216
217
|
"default": "./fesm2022/ngbase-adk-toggle.mjs"
|
|
@@ -227,14 +228,14 @@
|
|
|
227
228
|
"types": "./tour/index.d.ts",
|
|
228
229
|
"default": "./fesm2022/ngbase-adk-tour.mjs"
|
|
229
230
|
},
|
|
230
|
-
"./translate": {
|
|
231
|
-
"types": "./translate/index.d.ts",
|
|
232
|
-
"default": "./fesm2022/ngbase-adk-translate.mjs"
|
|
233
|
-
},
|
|
234
231
|
"./tree": {
|
|
235
232
|
"types": "./tree/index.d.ts",
|
|
236
233
|
"default": "./fesm2022/ngbase-adk-tree.mjs"
|
|
237
234
|
},
|
|
235
|
+
"./translate": {
|
|
236
|
+
"types": "./translate/index.d.ts",
|
|
237
|
+
"default": "./fesm2022/ngbase-adk-translate.mjs"
|
|
238
|
+
},
|
|
238
239
|
"./utils": {
|
|
239
240
|
"types": "./utils/index.d.ts",
|
|
240
241
|
"default": "./fesm2022/ngbase-adk-utils.mjs"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
|
|
3
|
+
"schematics": {
|
|
4
|
+
"ng-add": {
|
|
5
|
+
"description": "Add my library to the project.",
|
|
6
|
+
"factory": "./ng-add/index#ngAdd",
|
|
7
|
+
"schema": "./ng-add/schema.json"
|
|
8
|
+
},
|
|
9
|
+
"ui": {
|
|
10
|
+
"description": "Add an component to the project.",
|
|
11
|
+
"factory": "./components/index#myGenerator",
|
|
12
|
+
"schema": "./components/schema.json"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Directive, inject } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
NgbAccordion,
|
|
4
|
+
NgbAccordionContent,
|
|
5
|
+
NgbAccordionGroup,
|
|
6
|
+
NgbAccordionHeader,
|
|
7
|
+
slideAnimation,
|
|
8
|
+
} from '@ngbase/adk/accordion';
|
|
9
|
+
|
|
10
|
+
@Component({
|
|
11
|
+
selector: '<%= name %>-accordion-group',
|
|
12
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13
|
+
hostDirectives: [{ directive: NgbAccordionGroup, inputs: ['multiple'] }],
|
|
14
|
+
template: `<ng-content />`,
|
|
15
|
+
host: {
|
|
16
|
+
class: 'block rounded-lg border bg-foreground',
|
|
17
|
+
},
|
|
18
|
+
})
|
|
19
|
+
export class AccordionGroup {}
|
|
20
|
+
|
|
21
|
+
@Component({
|
|
22
|
+
selector: '<%= name %>-accordion',
|
|
23
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
24
|
+
hostDirectives: [
|
|
25
|
+
{ directive: NgbAccordion, inputs: ['expanded', 'disabled'], outputs: ['expandedChange'] },
|
|
26
|
+
],
|
|
27
|
+
imports: [NgbAccordionContent],
|
|
28
|
+
template: `
|
|
29
|
+
<ng-content select="[<%= name %>AccordionHeader]" />
|
|
30
|
+
@if (accordion.expanded()) {
|
|
31
|
+
<div ngbAccordionContent [@slide] class="overflow-hidden">
|
|
32
|
+
<div class="px-3 pb-4 text-muted">
|
|
33
|
+
<ng-content />
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
}
|
|
37
|
+
`,
|
|
38
|
+
host: {
|
|
39
|
+
class: 'block will-change-auto [&:not(:last-child)]:border-b',
|
|
40
|
+
},
|
|
41
|
+
animations: [slideAnimation],
|
|
42
|
+
})
|
|
43
|
+
export class Accordion {
|
|
44
|
+
readonly accordion = inject(NgbAccordion);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Directive({
|
|
48
|
+
selector: '[<%= name %>AccordionHeader]',
|
|
49
|
+
hostDirectives: [NgbAccordionHeader],
|
|
50
|
+
host: {
|
|
51
|
+
class:
|
|
52
|
+
'flex items-center w-full py-3 px-3 aria-disabled:cursor-not-allowed aria-disabled:opacity-50',
|
|
53
|
+
},
|
|
54
|
+
})
|
|
55
|
+
export class AccordionHeader {}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
2
|
+
import { DialogInput, DialogOptions, DialogRef } from '@ngbase/adk/portal';
|
|
3
|
+
import { Button, ButtonVariant } from '<%= basepath %>/button';
|
|
4
|
+
import { dialogPortal } from '<%= basepath %>/dialog';
|
|
5
|
+
|
|
6
|
+
export interface AlertOptions {
|
|
7
|
+
title?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
actions?: {
|
|
10
|
+
text: string;
|
|
11
|
+
type?: ButtonVariant;
|
|
12
|
+
handler: (fn: VoidFunction) => any;
|
|
13
|
+
}[];
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function alertPortal() {
|
|
17
|
+
const base = dialogPortal();
|
|
18
|
+
|
|
19
|
+
function open<T>(opt: AlertOptions, comp?: DialogInput<T>) {
|
|
20
|
+
const options: DialogOptions = {
|
|
21
|
+
...new DialogOptions(),
|
|
22
|
+
data: opt,
|
|
23
|
+
title: opt.title,
|
|
24
|
+
width: '32rem',
|
|
25
|
+
maxWidth: '95vw',
|
|
26
|
+
disableClose: true,
|
|
27
|
+
header: true,
|
|
28
|
+
focusTrap: true,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const diaRef = base.open(comp || Alert, options);
|
|
32
|
+
|
|
33
|
+
return diaRef;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function closeAll() {
|
|
37
|
+
base.closeAll();
|
|
38
|
+
}
|
|
39
|
+
return { open, closeAll };
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@Component({
|
|
43
|
+
selector: '<%= name %>-alert',
|
|
44
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
45
|
+
imports: [Button],
|
|
46
|
+
template: `
|
|
47
|
+
<h4 class="mb-2 text-base font-bold">{{ data?.title }}</h4>
|
|
48
|
+
<p class="text-muted-foreground pb-3">{{ data?.description }}</p>
|
|
49
|
+
<div class="flex justify-end gap-4 pt-1">
|
|
50
|
+
@for (action of data?.actions; track action) {
|
|
51
|
+
<button [<%= name %>Button]="action.type || 'primary'" (click)="action.handler(diaRef.close)">
|
|
52
|
+
{{ action.text }}
|
|
53
|
+
</button>
|
|
54
|
+
}
|
|
55
|
+
</div>
|
|
56
|
+
`,
|
|
57
|
+
})
|
|
58
|
+
export class Alert {
|
|
59
|
+
diaRef = inject<DialogRef<AlertOptions>>(DialogRef);
|
|
60
|
+
|
|
61
|
+
data = this.diaRef.options?.data;
|
|
62
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './alert';
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
NgbAutocomplete,
|
|
4
|
+
NgbAutocompleteInput,
|
|
5
|
+
provideAutocomplete,
|
|
6
|
+
} from '@ngbase/adk/autocomplete';
|
|
7
|
+
import { NgbSelectOptionGroup } from '@ngbase/adk/select';
|
|
8
|
+
|
|
9
|
+
@Component({
|
|
10
|
+
selector: '<%= name %>-autocomplete',
|
|
11
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12
|
+
providers: [provideAutocomplete(Autocomplete)],
|
|
13
|
+
imports: [NgbSelectOptionGroup],
|
|
14
|
+
template: `
|
|
15
|
+
<ul #container class="readonly !flex w-full flex-wrap gap-2" (click)="prevent($event)">
|
|
16
|
+
<ng-content select="<%= name %>-chip, <%= name %>-chip-group" />
|
|
17
|
+
|
|
18
|
+
<li class="flex min-w-8 flex-1 items-center" (click)="open()">
|
|
19
|
+
<ng-content select="input" />
|
|
20
|
+
</li>
|
|
21
|
+
</ul>
|
|
22
|
+
<ng-template #optionsTemplate>
|
|
23
|
+
<div #optionsGroup ngbSelectOptionGroup class="p-1">
|
|
24
|
+
<ng-content />
|
|
25
|
+
</div>
|
|
26
|
+
</ng-template>
|
|
27
|
+
`,
|
|
28
|
+
host: {
|
|
29
|
+
class: 'inline-flex',
|
|
30
|
+
},
|
|
31
|
+
})
|
|
32
|
+
export class Autocomplete<T> extends NgbAutocomplete<T> {}
|
|
33
|
+
|
|
34
|
+
@Directive({
|
|
35
|
+
selector: '[<%= name %>AutocompleteInput]',
|
|
36
|
+
exportAs: '<%= name %>AutocompleteInput',
|
|
37
|
+
hostDirectives: [
|
|
38
|
+
{
|
|
39
|
+
directive: NgbAutocompleteInput,
|
|
40
|
+
inputs: ['options', 'filterFn'],
|
|
41
|
+
outputs: ['ngbAutocompleteInput: <%= name %>AutocompleteInput'],
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
host: {
|
|
45
|
+
class: 'w-full bg-transparent shadow-none outline-none',
|
|
46
|
+
},
|
|
47
|
+
})
|
|
48
|
+
export class AutocompleteInput<T> {}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { NgbAvatar, NgbAvatarGroup, provideAvatar } from '@ngbase/adk/avatar';
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: '<%= name %>-avatar-group',
|
|
6
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7
|
+
hostDirectives: [{ directive: NgbAvatarGroup, inputs: ['reverse', 'left'] }],
|
|
8
|
+
template: `<ng-content select="<%= name %>-avatar,[<%= name %>Avatar]" />`,
|
|
9
|
+
host: {
|
|
10
|
+
class: 'flex flex-row',
|
|
11
|
+
},
|
|
12
|
+
})
|
|
13
|
+
export class AvatarGroup {}
|
|
14
|
+
|
|
15
|
+
@Component({
|
|
16
|
+
selector: '<%= name %>-avatar, [<%= name %>Avatar]',
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
|
+
providers: [provideAvatar(Avatar)],
|
|
19
|
+
template: `
|
|
20
|
+
@if (src(); as img) {
|
|
21
|
+
<img [src]="img" alt="avatar" class="h-full max-h-full max-w-full" />
|
|
22
|
+
} @else {
|
|
23
|
+
<ng-content>{{ nameChar() }}</ng-content>
|
|
24
|
+
}
|
|
25
|
+
`,
|
|
26
|
+
host: {
|
|
27
|
+
class:
|
|
28
|
+
'inline-flex aspect-square rounded-full overflow-hidden border-2 border-foreground relative bg-background text-muted items-center justify-center',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
31
|
+
export class Avatar extends NgbAvatar {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './avatar';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: '<%= name %>-badge, [<%= name %>Badge]',
|
|
5
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6
|
+
template: `<ng-content />`,
|
|
7
|
+
host: {
|
|
8
|
+
class: 'inline-block bg-muted-background rounded-full px-2 py-1 text-xs font-semibold',
|
|
9
|
+
},
|
|
10
|
+
})
|
|
11
|
+
export class Badge {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './badge';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
NgbBreadcrumb,
|
|
4
|
+
NgbBreadcrumbLink,
|
|
5
|
+
NgbBreadcrumbs,
|
|
6
|
+
NgbBreadcrumbSeparator,
|
|
7
|
+
NgbBreadcrumbSeparatorAria,
|
|
8
|
+
provideBreadcrumb,
|
|
9
|
+
} from '@ngbase/adk/breadcrumb';
|
|
10
|
+
import { Icon } from '<%= basepath %>/icon';
|
|
11
|
+
import { provideIcons } from '@ng-icons/core';
|
|
12
|
+
import { lucideChevronRight } from '@ng-icons/lucide';
|
|
13
|
+
|
|
14
|
+
@Component({
|
|
15
|
+
selector: '<%= name %>-breadcrumbs',
|
|
16
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
|
+
hostDirectives: [NgbBreadcrumbs],
|
|
18
|
+
template: `<ng-content />`,
|
|
19
|
+
host: {
|
|
20
|
+
class: 'flex items-center gap-2',
|
|
21
|
+
},
|
|
22
|
+
})
|
|
23
|
+
export class Breadcrumbs {}
|
|
24
|
+
|
|
25
|
+
@Component({
|
|
26
|
+
selector: '<%= name %>-breadcrumb',
|
|
27
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
28
|
+
providers: [provideBreadcrumb(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 ngbBreadcrumbSeparatorAria name="lucideChevronRight" class="text-muted" />
|
|
37
|
+
}
|
|
38
|
+
`,
|
|
39
|
+
host: {
|
|
40
|
+
class: 'flex items-center gap-2 text-muted',
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
export class Breadcrumb extends NgbBreadcrumb {}
|
|
44
|
+
|
|
45
|
+
@Directive({
|
|
46
|
+
selector: '[<%= name %>BreadcrumbsSeparator]',
|
|
47
|
+
hostDirectives: [NgbBreadcrumbSeparator],
|
|
48
|
+
})
|
|
49
|
+
export class BreadcrumbsSeparator {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Breadcrumbs, BreadcrumbsSeparator, Breadcrumb } from './breadcrumb';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
import { ɵFocusStyle as FocusStyle } from '<%= basepath %>/checkbox';
|
|
3
|
+
|
|
4
|
+
export type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'outline' | 'icon';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: '[<%= name %>Button]',
|
|
8
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
9
|
+
hostDirectives: [FocusStyle],
|
|
10
|
+
template: `<ng-content />`,
|
|
11
|
+
host: {
|
|
12
|
+
type: 'button',
|
|
13
|
+
class:
|
|
14
|
+
'inline-flex items-center justify-center rounded-lg px-4 py-2 border disabled:text-muted disabled:cursor-not-allowed',
|
|
15
|
+
'[class]': `variant() === 'primary'
|
|
16
|
+
? 'bg-primary text-foreground disabled:bg-background disabled:border-background border-primary'
|
|
17
|
+
: variant() === 'secondary'
|
|
18
|
+
? 'bg-muted-background disabled:bg-muted-background border-muted-background'
|
|
19
|
+
: variant() === 'ghost' || variant() === 'icon'
|
|
20
|
+
? '[&:not(:disabled)]:hover:bg-muted-background [&:not(:disabled)]:active:bg-muted-background/50 border-transparent'
|
|
21
|
+
: ' text-primary [&:not(:disabled)]:hover:bg-background [&:not(:disabled)]:active:bg-background/50'`,
|
|
22
|
+
},
|
|
23
|
+
})
|
|
24
|
+
export class Button {
|
|
25
|
+
variant = input('primary', {
|
|
26
|
+
alias: '<%= name %>Button',
|
|
27
|
+
transform: (value: ButtonVariant | '') => value || 'primary',
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: '<%= name %>-card, [<%= name %>Card]',
|
|
5
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6
|
+
template: `<ng-content />`,
|
|
7
|
+
host: {
|
|
8
|
+
class: 'block rounded-lg border bg-foreground p-4',
|
|
9
|
+
},
|
|
10
|
+
})
|
|
11
|
+
export class Card {}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Directive } from '@angular/core';
|
|
2
|
+
import {
|
|
3
|
+
NgbCarousel,
|
|
4
|
+
NgbCarouselButton,
|
|
5
|
+
NgbCarouselContainer,
|
|
6
|
+
NgbCarouselItem,
|
|
7
|
+
NgbCarouselSubContainer,
|
|
8
|
+
provideCarousel,
|
|
9
|
+
} from '@ngbase/adk/carousel';
|
|
10
|
+
|
|
11
|
+
@Component({
|
|
12
|
+
selector: '<%= name %>-carousel',
|
|
13
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14
|
+
providers: [provideCarousel(Carousel)],
|
|
15
|
+
imports: [NgbCarouselContainer, NgbCarouselSubContainer],
|
|
16
|
+
template: `
|
|
17
|
+
<div class="touch-none overflow-hidden" ngbCarouselContainer>
|
|
18
|
+
<div ngbCarouselSubContainer class="relative -ml-4 flex">
|
|
19
|
+
<ng-content select="[<%= name %>CarouselItem]" />
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
<div>
|
|
23
|
+
<ng-content />
|
|
24
|
+
</div>
|
|
25
|
+
`,
|
|
26
|
+
host: {
|
|
27
|
+
class: 'flex flex-col gap-4 relative',
|
|
28
|
+
},
|
|
29
|
+
})
|
|
30
|
+
export class Carousel extends NgbCarousel {}
|
|
31
|
+
|
|
32
|
+
@Directive({
|
|
33
|
+
selector: '[<%= name %>CarouselItem]',
|
|
34
|
+
hostDirectives: [NgbCarouselItem],
|
|
35
|
+
})
|
|
36
|
+
export class CarouselItem {}
|
|
37
|
+
|
|
38
|
+
@Directive({
|
|
39
|
+
selector: '[<%= name %>CarouselButton]',
|
|
40
|
+
hostDirectives: [
|
|
41
|
+
{ directive: NgbCarouselButton, inputs: ['ngbCarouselButton: <%= name %>CarouselButton'] },
|
|
42
|
+
],
|
|
43
|
+
})
|
|
44
|
+
export class CarouselButton {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './carousel';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { FocusStyle } from './focus-style.directive';
|
|
4
|
+
import { CheckboxButton, NgbCheckbox } from '@ngbase/adk/checkbox';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: '<%= name %>-checkbox',
|
|
8
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
9
|
+
hostDirectives: [
|
|
10
|
+
{
|
|
11
|
+
directive: NgbCheckbox,
|
|
12
|
+
inputs: ['disabled', 'checked', 'indeterminate'],
|
|
13
|
+
outputs: ['checkedChange', 'change'],
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
imports: [FormsModule, FocusStyle, CheckboxButton],
|
|
17
|
+
template: `
|
|
18
|
+
<button
|
|
19
|
+
<%= name %>FocusStyle
|
|
20
|
+
ngbCheckboxButton
|
|
21
|
+
class="custom-checkbox relative flex h-4 w-4 flex-none items-center justify-center rounded border border-primary transition-colors"
|
|
22
|
+
[class]="checkbox.disabled() ? '!border-muted bg-muted' : path() ? 'bg-primary' : ''"
|
|
23
|
+
>
|
|
24
|
+
@if (path(); as d) {
|
|
25
|
+
<svg class="h-full w-full text-foreground" viewBox="0 0 24 24" aria-hidden="true">
|
|
26
|
+
<path [attr.d]="d" stroke="currentColor" stroke-width="2" fill="none" />
|
|
27
|
+
</svg>
|
|
28
|
+
}
|
|
29
|
+
</button>
|
|
30
|
+
<ng-content />
|
|
31
|
+
`,
|
|
32
|
+
host: {
|
|
33
|
+
class: 'inline-flex items-center gap-2 py-1 disabled:opacity-60 disabled:cursor-not-allowed',
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
export class Checkbox {
|
|
37
|
+
readonly checkbox = inject(NgbCheckbox);
|
|
38
|
+
|
|
39
|
+
readonly path = computed(() =>
|
|
40
|
+
this.checkbox.indeterminate()
|
|
41
|
+
? 'M6 12L18 12'
|
|
42
|
+
: this.checkbox.checked()
|
|
43
|
+
? 'M20 6L9 17L4 12'
|
|
44
|
+
: '',
|
|
45
|
+
);
|
|
46
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { booleanAttribute, Directive, input } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
@Directive({
|
|
4
|
+
selector: '[<%= name %>FocusStyle]',
|
|
5
|
+
host: {
|
|
6
|
+
class: 'outline-none',
|
|
7
|
+
'[class]': `!unfocus() ? 'focus-visible:ring-2 focus:ring-2 focus:ring-offset-2 ring-primary focus-visible:ring-offset-2 ring-offset-background data-[focus]:ring-2 data-[focus]:ring-offset-2 data-[focus]:ring-offset-background data-[focus]:ring-primary' : ''`,
|
|
8
|
+
},
|
|
9
|
+
})
|
|
10
|
+
export class FocusStyle {
|
|
11
|
+
unfocus = input(false, { transform: booleanAttribute });
|
|
12
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
2
|
+
import { NgbChip, NgbChipGroup, NgbChipRemove, provideChip } from '@ngbase/adk/chip';
|
|
3
|
+
import { Button } from '<%= basepath %>/button';
|
|
4
|
+
import { Icon } from '<%= basepath %>/icon';
|
|
5
|
+
import { provideIcons } from '@ng-icons/core';
|
|
6
|
+
import { lucideX } from '@ng-icons/lucide';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
selector: '<%= name %>-chip-group',
|
|
10
|
+
hostDirectives: [NgbChipGroup],
|
|
11
|
+
template: `<ng-content />`,
|
|
12
|
+
})
|
|
13
|
+
export class ChipGroup<T> {}
|
|
14
|
+
|
|
15
|
+
@Component({
|
|
16
|
+
selector: '<%= name %>-chip, [<%= name %>Chip]',
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
|
+
providers: [provideChip(Chip)],
|
|
19
|
+
viewProviders: [provideIcons({ lucideX })],
|
|
20
|
+
imports: [Button, Icon, NgbChipRemove],
|
|
21
|
+
template: `<ng-content />
|
|
22
|
+
@if (removable()) {
|
|
23
|
+
<button
|
|
24
|
+
<%= name %>Button="ghost"
|
|
25
|
+
ngbChipRemove
|
|
26
|
+
class="small -my-2 data-[dir=ltr]:-mr-4 data-[dir=rtl]:-ml-4"
|
|
27
|
+
>
|
|
28
|
+
<<%= name %>-icon name="lucideX" />
|
|
29
|
+
</button>
|
|
30
|
+
}`,
|
|
31
|
+
host: {
|
|
32
|
+
class:
|
|
33
|
+
'inline-flex items-center bg-muted-background rounded-lg px-2 py-1 text-xs font-medium',
|
|
34
|
+
},
|
|
35
|
+
})
|
|
36
|
+
export class Chip<T = any> extends NgbChip<T> {}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './chip';
|