@ng-brutalism/ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/LICENSE +21 -0
- package/README.md +109 -0
- package/fesm2022/ng-brutalism-ui.mjs +1336 -0
- package/fesm2022/ng-brutalism-ui.mjs.map +1 -0
- package/package.json +81 -0
- package/schematics/collection.json +10 -0
- package/schematics/index.d.ts +1 -0
- package/schematics/index.js +7 -0
- package/schematics/index.js.map +1 -0
- package/schematics/ng-add/index.d.ts +3 -0
- package/schematics/ng-add/index.js +233 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/schema.d.ts +3 -0
- package/schematics/ng-add/schema.js +3 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/package.json +3 -0
- package/styles.css +162 -0
- package/theme.css +70 -0
- package/types/ng-brutalism-ui.d.ts +387 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../libs/schematics/src/ng-add/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
|
3
|
+
"title": "@ng-brutalism/ui ng-add",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"project": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "The Angular CLI application project to configure.",
|
|
9
|
+
"$default": {
|
|
10
|
+
"$source": "projectName"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"additionalProperties": false
|
|
15
|
+
}
|
package/styles.css
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/* styles.css - full theme + base reset */
|
|
2
|
+
@import './theme.css';
|
|
3
|
+
|
|
4
|
+
*,
|
|
5
|
+
*::before,
|
|
6
|
+
*::after {
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
body {
|
|
11
|
+
background-color: var(--nb-background);
|
|
12
|
+
color: var(--nb-foreground);
|
|
13
|
+
font-family: var(--nb-font-sans);
|
|
14
|
+
font-weight: var(--nb-font-weight-normal);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* Zero-specificity defaults: any consumer Tailwind utility on the element wins
|
|
18
|
+
without needing the `!` (important) suffix. Tokens are exposed for theming.
|
|
19
|
+
Wrapped in @layer base so Tailwind v4 utilities (in @layer utilities) win
|
|
20
|
+
over these unlayered defaults — without this, the cascade-layer rule
|
|
21
|
+
"unlayered author > layered author" makes the :where() rule beat any
|
|
22
|
+
utility regardless of specificity. */
|
|
23
|
+
|
|
24
|
+
@layer base {
|
|
25
|
+
:where([data-slot="dialog-title"]) {
|
|
26
|
+
display: block;
|
|
27
|
+
padding: 1.5rem 1.5rem 0.5rem;
|
|
28
|
+
font-size: 1.125rem;
|
|
29
|
+
font-weight: 700;
|
|
30
|
+
line-height: 1;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
:where([data-nb-title])::after {
|
|
34
|
+
content: "";
|
|
35
|
+
display: block;
|
|
36
|
+
width: var(--nb-title-wave-width, min(18rem, 100%));
|
|
37
|
+
height: var(--nb-title-wave-height, 0.625rem);
|
|
38
|
+
margin-top: var(--nb-title-wave-gap, 0);
|
|
39
|
+
background-color: var(--nb-title-wave-color, #a78bfa);
|
|
40
|
+
-webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 220 12' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,6 Q10,0 20,6 T40,6 T60,6 T80,6 T100,6 T120,6 T140,6 T160,6 T180,6 T200,6 T220,6' fill='none' stroke='black' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E")
|
|
41
|
+
center / 100% 100% no-repeat;
|
|
42
|
+
mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 220 12' preserveAspectRatio='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,6 Q10,0 20,6 T40,6 T60,6 T80,6 T100,6 T120,6 T140,6 T160,6 T180,6 T200,6 T220,6' fill='none' stroke='black' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E")
|
|
43
|
+
center / 100% 100% no-repeat;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
:where([data-slot="dialog-description"]) {
|
|
47
|
+
display: block;
|
|
48
|
+
padding: 0 1.5rem 1rem;
|
|
49
|
+
font-size: 0.875rem;
|
|
50
|
+
font-weight: 500;
|
|
51
|
+
color: var(--nb-dialog-description-fg);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
:where([data-slot="dialog-content"]) {
|
|
55
|
+
flex: 1 1 0%;
|
|
56
|
+
overflow-y: auto;
|
|
57
|
+
padding: 1rem 1.5rem;
|
|
58
|
+
border-top: 2px solid var(--nb-border);
|
|
59
|
+
border-bottom: 2px solid var(--nb-border);
|
|
60
|
+
background-color: var(--nb-dialog-content-bg);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:where([data-slot="dialog-actions"]) {
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
justify-content: flex-end;
|
|
67
|
+
gap: 0.75rem;
|
|
68
|
+
padding: 1rem 1.5rem;
|
|
69
|
+
background-color: var(--nb-dialog-actions-bg);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:where(input[nbInput], textarea[nbTextarea]) {
|
|
73
|
+
background-color: var(--nb-input-bg, var(--nb-field-bg));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:where(input[nbInput]) {
|
|
77
|
+
height: 2.5rem;
|
|
78
|
+
padding: 0.5rem 0.75rem;
|
|
79
|
+
font-size: 0.875rem;
|
|
80
|
+
}
|
|
81
|
+
:where(input[nbInput][data-size="sm"]) {
|
|
82
|
+
height: 2.25rem;
|
|
83
|
+
padding: 0 0.75rem;
|
|
84
|
+
}
|
|
85
|
+
:where(input[nbInput][data-size="lg"]) {
|
|
86
|
+
height: 2.75rem;
|
|
87
|
+
padding: 0 1rem;
|
|
88
|
+
font-size: 1rem;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:where(input[nbInput][type="file"]) {
|
|
92
|
+
padding-block: 0;
|
|
93
|
+
padding-inline-start: 0;
|
|
94
|
+
align-items: center;
|
|
95
|
+
}
|
|
96
|
+
:where(input[nbInput][type="file"])::file-selector-button {
|
|
97
|
+
font-family: inherit;
|
|
98
|
+
background-color: var(--nb-main);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:where([nbInputPrefix]:has(svg)) {
|
|
102
|
+
--nb-input-group-prefix-bg: #ffd24a;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
:where(select[nbSelect]) {
|
|
106
|
+
height: 3.5rem;
|
|
107
|
+
padding: 0.875rem 1.25rem;
|
|
108
|
+
font-family: var(--nb-font-mono, monospace);
|
|
109
|
+
font-size: 1rem;
|
|
110
|
+
font-weight: 700;
|
|
111
|
+
background-color: var(
|
|
112
|
+
--nb-select-bg,
|
|
113
|
+
var(--nb-input-bg, var(--nb-field-bg))
|
|
114
|
+
);
|
|
115
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
|
|
116
|
+
background-repeat: no-repeat;
|
|
117
|
+
background-position: right 1rem center;
|
|
118
|
+
background-size: 1.5rem 1.5rem;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
:where(textarea[nbTextarea]) {
|
|
122
|
+
min-height: 5rem;
|
|
123
|
+
padding: 0.5rem 0.75rem;
|
|
124
|
+
font-size: 0.875rem;
|
|
125
|
+
}
|
|
126
|
+
:where(textarea[nbTextarea][data-size="sm"]) {
|
|
127
|
+
min-height: 4rem;
|
|
128
|
+
padding: 0.375rem 0.75rem;
|
|
129
|
+
}
|
|
130
|
+
:where(textarea[nbTextarea][data-size="lg"]) {
|
|
131
|
+
min-height: 6rem;
|
|
132
|
+
padding: 0.75rem 1rem;
|
|
133
|
+
font-size: 1rem;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
:where(label[nbLabel]) {
|
|
137
|
+
font-size: 0.875rem;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Focus visible utility class */
|
|
142
|
+
.nb-focus-visible:focus-visible {
|
|
143
|
+
outline: var(--nb-focus-ring);
|
|
144
|
+
outline-offset: var(--nb-focus-ring-offset);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.focus-visible\:outline-\[var\(--nb-focus-ring\)\]:focus-visible {
|
|
148
|
+
outline: var(--nb-focus-ring);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/* Dialog backdrop */
|
|
152
|
+
dialog[data-nb-dialog]::backdrop {
|
|
153
|
+
background: rgba(0, 0, 0, 0.45);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/* Checkbox: check icon shown over the checked background */
|
|
157
|
+
input[nbCheckbox]:checked {
|
|
158
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
|
|
159
|
+
background-repeat: no-repeat;
|
|
160
|
+
background-position: center;
|
|
161
|
+
background-size: 100%;
|
|
162
|
+
}
|
package/theme.css
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/* theme.css - CSS variables only, no selectors beyond :root and .dark */
|
|
2
|
+
:root {
|
|
3
|
+
/* Colors */
|
|
4
|
+
--nb-background: #ffffff;
|
|
5
|
+
--nb-foreground: #000000;
|
|
6
|
+
--nb-border: #000000;
|
|
7
|
+
--nb-shadow: #000000;
|
|
8
|
+
--nb-main: oklch(90% 0.15 95);
|
|
9
|
+
--nb-main-foreground: oklch(10% 0 0);
|
|
10
|
+
--nb-surface: #ffffff;
|
|
11
|
+
--nb-surface-foreground: #000000;
|
|
12
|
+
--nb-secondary-background: oklch(96% 0 0);
|
|
13
|
+
--nb-field-bg: #faf3d6;
|
|
14
|
+
|
|
15
|
+
--nb-primary: #ff90e8;
|
|
16
|
+
--nb-primary-foreground: #000000;
|
|
17
|
+
--nb-secondary: #c8a2ff;
|
|
18
|
+
--nb-secondary-foreground: #000000;
|
|
19
|
+
--nb-accent: #8ae9ff;
|
|
20
|
+
--nb-accent-foreground: #000000;
|
|
21
|
+
--nb-danger: #ff4f8a;
|
|
22
|
+
--nb-danger-foreground: #000000;
|
|
23
|
+
--nb-success: #63e6be;
|
|
24
|
+
--nb-success-foreground: #000000;
|
|
25
|
+
--nb-warning: #ff9c42;
|
|
26
|
+
--nb-warning-foreground: #000000;
|
|
27
|
+
|
|
28
|
+
/* Shape */
|
|
29
|
+
--nb-radius: 0rem;
|
|
30
|
+
--nb-border-width: 2px;
|
|
31
|
+
--nb-shadow-offset-x: 4px;
|
|
32
|
+
--nb-shadow-offset-y: 4px;
|
|
33
|
+
--nb-reverse-shadow-offset-x: -4px;
|
|
34
|
+
--nb-reverse-shadow-offset-y: -4px;
|
|
35
|
+
|
|
36
|
+
/* Size scale */
|
|
37
|
+
--nb-size-sm: 2rem;
|
|
38
|
+
--nb-size-md: 2.5rem;
|
|
39
|
+
--nb-size-lg: 3rem;
|
|
40
|
+
|
|
41
|
+
/* Typography */
|
|
42
|
+
--nb-font-sans: system-ui, sans-serif;
|
|
43
|
+
--nb-font-mono: monospace;
|
|
44
|
+
--nb-font-weight-normal: 500;
|
|
45
|
+
--nb-font-weight-bold: 700;
|
|
46
|
+
|
|
47
|
+
/* Focus */
|
|
48
|
+
--nb-focus-ring: 3px solid var(--nb-foreground);
|
|
49
|
+
--nb-focus-ring-offset: 2px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Dark mode */
|
|
53
|
+
.dark {
|
|
54
|
+
--nb-background: #0a0a0a;
|
|
55
|
+
--nb-foreground: #ffffff;
|
|
56
|
+
--nb-border: #ffffff;
|
|
57
|
+
--nb-shadow: #ffffff;
|
|
58
|
+
--nb-surface: #1a1a1a;
|
|
59
|
+
--nb-surface-foreground: #ffffff;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Reduced motion */
|
|
63
|
+
@media (prefers-reduced-motion: reduce) {
|
|
64
|
+
:root {
|
|
65
|
+
--nb-shadow-offset-x: 0px;
|
|
66
|
+
--nb-shadow-offset-y: 0px;
|
|
67
|
+
--nb-reverse-shadow-offset-x: 0px;
|
|
68
|
+
--nb-reverse-shadow-offset-y: 0px;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, EnvironmentProviders, Signal } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Merges class names with Tailwind conflict resolution.
|
|
7
|
+
* Publicly exported for consumers extending library components.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* nbClass('px-2 px-4') // -> 'px-4'
|
|
11
|
+
* nbClass('flex', condition && 'w-full') // -> 'flex w-full' or 'flex'
|
|
12
|
+
*/
|
|
13
|
+
declare function nbClass(...inputs: ClassValue[]): string;
|
|
14
|
+
|
|
15
|
+
interface NbThemeConfig {
|
|
16
|
+
primary?: string;
|
|
17
|
+
secondary?: string;
|
|
18
|
+
accent?: string;
|
|
19
|
+
danger?: string;
|
|
20
|
+
success?: string;
|
|
21
|
+
warning?: string;
|
|
22
|
+
radius?: string;
|
|
23
|
+
borderWidth?: string;
|
|
24
|
+
shadowOffsetX?: string;
|
|
25
|
+
shadowOffsetY?: string;
|
|
26
|
+
fontSans?: string;
|
|
27
|
+
fontMono?: string;
|
|
28
|
+
}
|
|
29
|
+
declare const NB_THEME_CONFIG: InjectionToken<NbThemeConfig>;
|
|
30
|
+
|
|
31
|
+
interface NbConfig {
|
|
32
|
+
theme?: NbThemeConfig;
|
|
33
|
+
}
|
|
34
|
+
declare function provideNgBrutalism(config?: NbConfig): EnvironmentProviders;
|
|
35
|
+
|
|
36
|
+
type NbCheckboxSize = 'default' | 'sm' | 'lg';
|
|
37
|
+
|
|
38
|
+
declare class NbCheckbox {
|
|
39
|
+
readonly size: i0.InputSignal<NbCheckboxSize>;
|
|
40
|
+
protected readonly classes: i0.Signal<string>;
|
|
41
|
+
private sizeClass;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCheckbox, never>;
|
|
43
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbCheckbox, "input[nbCheckbox]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class NbAccordionItem {
|
|
47
|
+
private readonly id;
|
|
48
|
+
readonly value: i0.InputSignal<string>;
|
|
49
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
50
|
+
private readonly accordion;
|
|
51
|
+
readonly triggerId: string;
|
|
52
|
+
readonly contentId: string;
|
|
53
|
+
readonly open: i0.Signal<boolean>;
|
|
54
|
+
protected readonly classes: i0.Signal<string>;
|
|
55
|
+
toggle(): void;
|
|
56
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbAccordionItem, never>;
|
|
57
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbAccordionItem, "nb-accordion-item", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
type NbAccordionType = 'single' | 'multiple';
|
|
61
|
+
type NbAccordionValue = string | string[] | null;
|
|
62
|
+
interface NbAccordionController {
|
|
63
|
+
isItemOpen(value: string): boolean;
|
|
64
|
+
toggleItem(value: string): void;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
declare class NbAccordion implements NbAccordionController {
|
|
68
|
+
readonly type: i0.InputSignal<NbAccordionType>;
|
|
69
|
+
readonly collapsible: i0.InputSignalWithTransform<boolean, unknown>;
|
|
70
|
+
readonly value: i0.ModelSignal<NbAccordionValue>;
|
|
71
|
+
readonly items: i0.Signal<readonly NbAccordionItem[]>;
|
|
72
|
+
isItemOpen(value: string): boolean;
|
|
73
|
+
toggleItem(value: string): void;
|
|
74
|
+
private toggleMultipleItem;
|
|
75
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbAccordion, never>;
|
|
76
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbAccordion, "nb-accordion", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, ["items"], ["*"], true, never>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
declare class NbAccordionContent {
|
|
80
|
+
protected readonly item: NbAccordionItem;
|
|
81
|
+
protected readonly classes: i0.Signal<string>;
|
|
82
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbAccordionContent, never>;
|
|
83
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbAccordionContent, "nb-accordion-content", never, {}, {}, never, ["*"], true, never>;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
declare class NbAccordionTrigger {
|
|
87
|
+
protected readonly item: NbAccordionItem;
|
|
88
|
+
protected readonly triggerClasses: i0.Signal<string>;
|
|
89
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbAccordionTrigger, never>;
|
|
90
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbAccordionTrigger, "nb-accordion-trigger", never, {}, {}, never, ["*"], true, never>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
type NbButtonVariant = 'default' | 'neutral' | 'primary' | 'secondary' | 'accent' | 'danger' | 'success' | 'warning';
|
|
94
|
+
type NbButtonShadow = 'default' | 'none' | 'reverse';
|
|
95
|
+
type NbButtonSize = 'default' | 'sm' | 'lg' | 'icon';
|
|
96
|
+
|
|
97
|
+
declare class NbButton {
|
|
98
|
+
readonly variant: i0.InputSignal<NbButtonVariant>;
|
|
99
|
+
readonly shadow: i0.InputSignal<NbButtonShadow>;
|
|
100
|
+
readonly size: i0.InputSignal<NbButtonSize>;
|
|
101
|
+
readonly fullWidth: i0.InputSignal<boolean>;
|
|
102
|
+
protected readonly classes: i0.Signal<string>;
|
|
103
|
+
private variantClass;
|
|
104
|
+
private shadowClass;
|
|
105
|
+
private sizeClass;
|
|
106
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbButton, never>;
|
|
107
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbButton, "button[nbButton], a[nbButton]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
type NbCardActionsAlign = 'start' | 'end';
|
|
111
|
+
declare class NbCard {
|
|
112
|
+
protected readonly classes: string;
|
|
113
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCard, never>;
|
|
114
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbCard, "nb-card", never, {}, {}, never, ["*"], true, never>;
|
|
115
|
+
}
|
|
116
|
+
declare class NbCardHeader {
|
|
117
|
+
protected readonly classes: string;
|
|
118
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCardHeader, never>;
|
|
119
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbCardHeader, "nb-card-header", never, {}, {}, never, ["*"], true, never>;
|
|
120
|
+
}
|
|
121
|
+
declare class NbCardTitle {
|
|
122
|
+
protected readonly classes: string;
|
|
123
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCardTitle, never>;
|
|
124
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbCardTitle, "nb-card-title", never, {}, {}, never, ["*"], true, never>;
|
|
125
|
+
}
|
|
126
|
+
declare class NbCardDescription {
|
|
127
|
+
protected readonly classes: string;
|
|
128
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCardDescription, never>;
|
|
129
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbCardDescription, "nb-card-description", never, {}, {}, never, ["*"], true, never>;
|
|
130
|
+
}
|
|
131
|
+
declare class NbCardActions {
|
|
132
|
+
readonly align: i0.InputSignal<NbCardActionsAlign>;
|
|
133
|
+
protected readonly classes: i0.Signal<string>;
|
|
134
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCardActions, never>;
|
|
135
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbCardActions, "nb-card-actions", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
136
|
+
}
|
|
137
|
+
declare class NbCardContent {
|
|
138
|
+
protected readonly classes: string;
|
|
139
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCardContent, never>;
|
|
140
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbCardContent, "nb-card-content", never, {}, {}, never, ["*"], true, never>;
|
|
141
|
+
}
|
|
142
|
+
declare class NbCardFooter {
|
|
143
|
+
protected readonly classes: string;
|
|
144
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbCardFooter, never>;
|
|
145
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbCardFooter, "nb-card-footer", never, {}, {}, never, ["*"], true, never>;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
declare class NbImageCard {
|
|
149
|
+
readonly image: i0.InputSignal<string>;
|
|
150
|
+
readonly alt: i0.InputSignal<string>;
|
|
151
|
+
protected readonly classes: string;
|
|
152
|
+
protected readonly imageClasses: string;
|
|
153
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbImageCard, never>;
|
|
154
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbImageCard, "nb-image-card", never, { "image": { "alias": "image"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": true; "isSignal": true; }; }, {}, never, ["nb-image-card-caption"], true, never>;
|
|
155
|
+
}
|
|
156
|
+
declare class NbImageCardCaption {
|
|
157
|
+
protected readonly classes: string;
|
|
158
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbImageCardCaption, never>;
|
|
159
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbImageCardCaption, "nb-image-card-caption", never, {}, {}, never, ["*"], true, never>;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
declare class NbMarquee {
|
|
163
|
+
readonly duration: i0.InputSignal<string>;
|
|
164
|
+
readonly reverse: i0.InputSignalWithTransform<boolean, unknown>;
|
|
165
|
+
readonly pauseOnHover: i0.InputSignalWithTransform<boolean, unknown>;
|
|
166
|
+
private readonly wrapper;
|
|
167
|
+
private readonly strip1;
|
|
168
|
+
private readonly strip2;
|
|
169
|
+
private readonly destroyRef;
|
|
170
|
+
private readonly isBrowser;
|
|
171
|
+
private readonly widthScale;
|
|
172
|
+
protected readonly wrapperClass: i0.Signal<string>;
|
|
173
|
+
protected readonly wrapperStyle: i0.Signal<{
|
|
174
|
+
'--nb-marquee-duration': string;
|
|
175
|
+
}>;
|
|
176
|
+
private readonly scaledDuration;
|
|
177
|
+
protected readonly strip1Class: i0.Signal<string>;
|
|
178
|
+
protected readonly strip2Class: i0.Signal<string>;
|
|
179
|
+
constructor();
|
|
180
|
+
private syncSecondStrip;
|
|
181
|
+
private updateAnimationScale;
|
|
182
|
+
private durationToMs;
|
|
183
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbMarquee, never>;
|
|
184
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbMarquee, "nb-marquee", never, { "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "reverse": { "alias": "reverse"; "required": false; "isSignal": true; }; "pauseOnHover": { "alias": "pauseOnHover"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
declare class NbMarqueeItem {
|
|
188
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbMarqueeItem, never>;
|
|
189
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbMarqueeItem, "nb-marquee-item", never, {}, {}, never, ["*"], true, never>;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
type NbInputSize = 'default' | 'sm' | 'lg';
|
|
193
|
+
|
|
194
|
+
declare class NbInput {
|
|
195
|
+
readonly size: i0.InputSignal<NbInputSize>;
|
|
196
|
+
private readonly group;
|
|
197
|
+
protected readonly classes: i0.Signal<string>;
|
|
198
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbInput, never>;
|
|
199
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbInput, "input[nbInput]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
declare class NbLabel {
|
|
203
|
+
protected readonly classes: string;
|
|
204
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbLabel, never>;
|
|
205
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbLabel, "label[nbLabel]", never, {}, {}, never, never, true, never>;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
declare class NbTitle {
|
|
209
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbTitle, never>;
|
|
210
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbTitle, "[nbTitle]", never, {}, {}, never, never, true, never>;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
type NbTextareaSize = 'default' | 'sm' | 'lg';
|
|
214
|
+
|
|
215
|
+
declare class NbTextarea {
|
|
216
|
+
readonly size: i0.InputSignal<NbTextareaSize>;
|
|
217
|
+
private readonly group;
|
|
218
|
+
protected readonly classes: i0.Signal<string>;
|
|
219
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbTextarea, never>;
|
|
220
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbTextarea, "textarea[nbTextarea]", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
interface NbInputGroupContext {
|
|
224
|
+
readonly hasPrefix: Signal<boolean>;
|
|
225
|
+
readonly hasSuffix: Signal<boolean>;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
declare class NbInputGroup implements NbInputGroupContext {
|
|
229
|
+
private readonly prefixes;
|
|
230
|
+
private readonly suffixes;
|
|
231
|
+
readonly hasPrefix: i0.Signal<boolean>;
|
|
232
|
+
readonly hasSuffix: i0.Signal<boolean>;
|
|
233
|
+
protected readonly classes: i0.Signal<string>;
|
|
234
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbInputGroup, never>;
|
|
235
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbInputGroup, "nb-input-group", never, {}, {}, ["prefixes", "suffixes"], ["*"], true, never>;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
type NbInputPrefixAlign = 'center' | 'stretch';
|
|
239
|
+
declare class NbInputPrefix {
|
|
240
|
+
readonly align: i0.InputSignal<NbInputPrefixAlign>;
|
|
241
|
+
protected readonly classes: i0.Signal<string>;
|
|
242
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbInputPrefix, never>;
|
|
243
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbInputPrefix, "[nbInputPrefix]", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
type NbInputSuffixAlign = 'center' | 'stretch';
|
|
247
|
+
declare class NbInputSuffix {
|
|
248
|
+
readonly align: i0.InputSignal<NbInputSuffixAlign>;
|
|
249
|
+
protected readonly classes: i0.Signal<string>;
|
|
250
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbInputSuffix, never>;
|
|
251
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbInputSuffix, "[nbInputSuffix]", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
declare class NbNativeSelect {
|
|
255
|
+
private readonly group;
|
|
256
|
+
protected readonly classes: i0.Signal<string>;
|
|
257
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbNativeSelect, never>;
|
|
258
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbNativeSelect, "select[nbSelect]", never, {}, {}, never, never, true, never>;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
type NbSelectValue = string | number;
|
|
262
|
+
interface NbSelectController {
|
|
263
|
+
readonly disabled: () => boolean;
|
|
264
|
+
readonly listboxId: string;
|
|
265
|
+
isSelected(value: NbSelectValue | null): boolean;
|
|
266
|
+
selectOption(option: NbSelectOption): void;
|
|
267
|
+
focusPreviousOption(current: NbSelectOption): void;
|
|
268
|
+
focusNextOption(current: NbSelectOption): void;
|
|
269
|
+
closeAndFocusTrigger(): void;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
declare class NbSelectOption {
|
|
273
|
+
private readonly element;
|
|
274
|
+
protected readonly select: NbSelectController;
|
|
275
|
+
readonly id: string;
|
|
276
|
+
readonly value: i0.InputSignal<NbSelectValue | null>;
|
|
277
|
+
readonly label: i0.InputSignal<string>;
|
|
278
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
279
|
+
protected readonly selected: i0.Signal<boolean>;
|
|
280
|
+
protected readonly showIndicator: i0.Signal<boolean>;
|
|
281
|
+
protected readonly classes: i0.Signal<string>;
|
|
282
|
+
focus(): void;
|
|
283
|
+
selectOptionOnKey(event: KeyboardEvent): void;
|
|
284
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbSelectOption, never>;
|
|
285
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbSelectOption, "nb-select-option", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
declare class NbSelect implements NbSelectController {
|
|
289
|
+
private readonly element;
|
|
290
|
+
private readonly group;
|
|
291
|
+
readonly placeholder: i0.InputSignal<string>;
|
|
292
|
+
readonly value: i0.ModelSignal<NbSelectValue | null>;
|
|
293
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, unknown>;
|
|
294
|
+
readonly ariaLabel: i0.InputSignal<string | null>;
|
|
295
|
+
readonly ariaLabelledby: i0.InputSignal<string | null>;
|
|
296
|
+
readonly options: i0.Signal<readonly NbSelectOption[]>;
|
|
297
|
+
private readonly trigger;
|
|
298
|
+
readonly open: i0.ModelSignal<boolean>;
|
|
299
|
+
readonly id: number;
|
|
300
|
+
readonly triggerId: string;
|
|
301
|
+
readonly listboxId: string;
|
|
302
|
+
protected readonly selectedOption: i0.Signal<NbSelectOption | undefined>;
|
|
303
|
+
protected readonly selectedLabel: i0.Signal<string>;
|
|
304
|
+
protected readonly hostClasses: i0.Signal<string>;
|
|
305
|
+
protected readonly triggerClasses: i0.Signal<string>;
|
|
306
|
+
protected readonly valueClasses: i0.Signal<string>;
|
|
307
|
+
protected readonly listboxClasses: string;
|
|
308
|
+
isSelected(value: NbSelectValue | null): boolean;
|
|
309
|
+
selectOption(option: NbSelectOption): void;
|
|
310
|
+
toggle(): void;
|
|
311
|
+
openAndFocusOption(): void;
|
|
312
|
+
closeAndFocusTrigger(): void;
|
|
313
|
+
focusPreviousOption(current: NbSelectOption): void;
|
|
314
|
+
focusNextOption(current: NbSelectOption): void;
|
|
315
|
+
openListboxOnKey(event: KeyboardEvent): void;
|
|
316
|
+
closeOnOutsideClick(event: MouseEvent): void;
|
|
317
|
+
private firstEnabledOption;
|
|
318
|
+
private focusRelativeOption;
|
|
319
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbSelect, never>;
|
|
320
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbSelect, "nb-select", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "open": "openChange"; }, ["options"], ["*"], true, never>;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
type NbBadgeVariant = 'default' | 'secondary' | 'success' | 'warning' | 'danger';
|
|
324
|
+
|
|
325
|
+
declare class NbBadge {
|
|
326
|
+
readonly variant: i0.InputSignal<NbBadgeVariant>;
|
|
327
|
+
protected readonly classes: i0.Signal<string>;
|
|
328
|
+
private variantClass;
|
|
329
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbBadge, never>;
|
|
330
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbBadge, "span[nbBadge]", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
declare class NbAvatar {
|
|
334
|
+
readonly src: i0.InputSignal<string | undefined>;
|
|
335
|
+
readonly alt: i0.InputSignal<string>;
|
|
336
|
+
protected readonly classes: string;
|
|
337
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbAvatar, never>;
|
|
338
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbAvatar, "nb-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
interface NbDialogController {
|
|
342
|
+
open(): void;
|
|
343
|
+
close(): void;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
declare class NbDialog implements NbDialogController {
|
|
347
|
+
private readonly isBrowser;
|
|
348
|
+
private readonly dialogEl;
|
|
349
|
+
protected readonly classes: string;
|
|
350
|
+
open(): void;
|
|
351
|
+
close(): void;
|
|
352
|
+
protected dismissOnBackdrop(event: MouseEvent): void;
|
|
353
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbDialog, never>;
|
|
354
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbDialog, "nb-dialog", never, {}, {}, never, ["*"], true, never>;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
declare class NbDialogTitle {
|
|
358
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbDialogTitle, never>;
|
|
359
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbDialogTitle, "[nbDialogTitle]", never, {}, {}, never, never, true, never>;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
declare class NbDialogDescription {
|
|
363
|
+
protected readonly classes: string;
|
|
364
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbDialogDescription, never>;
|
|
365
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbDialogDescription, "[nbDialogDescription]", never, {}, {}, never, never, true, never>;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
declare class NbDialogContent {
|
|
369
|
+
protected readonly classes: string;
|
|
370
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbDialogContent, never>;
|
|
371
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbDialogContent, "nb-dialog-content", never, {}, {}, never, ["*"], true, never>;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
declare class NbDialogActions {
|
|
375
|
+
protected readonly classes: string;
|
|
376
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbDialogActions, never>;
|
|
377
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NbDialogActions, "nb-dialog-actions", never, {}, {}, never, ["*"], true, never>;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
declare class NbDialogClose {
|
|
381
|
+
protected readonly controller: NbDialogController;
|
|
382
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NbDialogClose, never>;
|
|
383
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NbDialogClose, "[nbDialogClose]", never, {}, {}, never, never, true, never>;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
export { NB_THEME_CONFIG, NbAccordion, NbAccordionContent, NbAccordionItem, NbAccordionTrigger, NbAvatar, NbBadge, NbButton, NbCard, NbCardActions, NbCardContent, NbCardDescription, NbCardFooter, NbCardHeader, NbCardTitle, NbCheckbox, NbDialog, NbDialogActions, NbDialogClose, NbDialogContent, NbDialogDescription, NbDialogTitle, NbImageCard, NbImageCardCaption, NbInput, NbInputGroup, NbInputPrefix, NbInputSuffix, NbLabel, NbMarquee, NbMarqueeItem, NbNativeSelect, NbSelect, NbSelectOption, NbTextarea, NbTitle, nbClass, provideNgBrutalism };
|
|
387
|
+
export type { NbAccordionType, NbAccordionValue, NbBadgeVariant, NbButtonShadow, NbButtonSize, NbButtonVariant, NbCardActionsAlign, NbCheckboxSize, NbConfig, NbInputPrefixAlign, NbInputSize, NbInputSuffixAlign, NbSelectValue, NbTextareaSize, NbThemeConfig };
|