@ng-brutalism/ui 0.1.2 → 0.2.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 +48 -0
- package/README.md +52 -28
- package/fesm2022/ng-brutalism-ui.mjs +2687 -70
- package/fesm2022/ng-brutalism-ui.mjs.map +1 -1
- package/package.json +5 -2
- package/styles.css +106 -2
- package/theme.css +11 -0
- package/types/ng-brutalism-ui.d.ts +919 -145
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, makeEnvironmentProviders, provideAppInitializer, inject, DOCUMENT, PLATFORM_ID, input, computed, Directive, booleanAttribute, ChangeDetectionStrategy, Component, model, contentChildren, viewChild, DestroyRef, signal, afterNextRender,
|
|
4
|
+
import { InjectionToken, makeEnvironmentProviders, provideAppInitializer, inject, DOCUMENT, PLATFORM_ID, input, computed, Directive, ElementRef, effect, booleanAttribute, ChangeDetectionStrategy, Component, model, contentChildren, isDevMode, viewChild, DestroyRef, signal, afterNextRender, numberAttribute } from '@angular/core';
|
|
5
5
|
import { isPlatformBrowser } from '@angular/common';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -24,6 +24,12 @@ function applyThemeVars(doc, config) {
|
|
|
24
24
|
primary: '--nb-primary',
|
|
25
25
|
secondary: '--nb-secondary',
|
|
26
26
|
accent: '--nb-accent',
|
|
27
|
+
yellow: '--nb-yellow',
|
|
28
|
+
pink: '--nb-pink',
|
|
29
|
+
mint: '--nb-mint',
|
|
30
|
+
lavender: '--nb-lavender',
|
|
31
|
+
blue: '--nb-blue',
|
|
32
|
+
cream: '--nb-cream',
|
|
27
33
|
danger: '--nb-danger',
|
|
28
34
|
success: '--nb-success',
|
|
29
35
|
warning: '--nb-warning',
|
|
@@ -63,12 +69,522 @@ function provideNgBrutalism(config = {}) {
|
|
|
63
69
|
]);
|
|
64
70
|
}
|
|
65
71
|
|
|
72
|
+
const NB_TONE_TOKENS = {
|
|
73
|
+
default: {
|
|
74
|
+
bg: 'var(--nb-surface)',
|
|
75
|
+
fg: 'var(--nb-surface-foreground)',
|
|
76
|
+
},
|
|
77
|
+
cream: {
|
|
78
|
+
bg: 'var(--nb-cream)',
|
|
79
|
+
fg: '#000000',
|
|
80
|
+
},
|
|
81
|
+
white: {
|
|
82
|
+
bg: '#ffffff',
|
|
83
|
+
fg: '#000000',
|
|
84
|
+
},
|
|
85
|
+
black: {
|
|
86
|
+
bg: '#000000',
|
|
87
|
+
fg: '#ffffff',
|
|
88
|
+
},
|
|
89
|
+
yellow: {
|
|
90
|
+
bg: 'var(--nb-yellow)',
|
|
91
|
+
fg: '#000000',
|
|
92
|
+
},
|
|
93
|
+
pink: {
|
|
94
|
+
bg: 'var(--nb-pink)',
|
|
95
|
+
fg: '#000000',
|
|
96
|
+
},
|
|
97
|
+
mint: {
|
|
98
|
+
bg: 'var(--nb-mint)',
|
|
99
|
+
fg: '#000000',
|
|
100
|
+
},
|
|
101
|
+
lavender: {
|
|
102
|
+
bg: 'var(--nb-lavender)',
|
|
103
|
+
fg: '#000000',
|
|
104
|
+
},
|
|
105
|
+
blue: {
|
|
106
|
+
bg: 'var(--nb-blue)',
|
|
107
|
+
fg: '#000000',
|
|
108
|
+
},
|
|
109
|
+
primary: {
|
|
110
|
+
bg: 'var(--nb-primary)',
|
|
111
|
+
fg: 'var(--nb-primary-foreground)',
|
|
112
|
+
},
|
|
113
|
+
secondary: {
|
|
114
|
+
bg: 'var(--nb-secondary)',
|
|
115
|
+
fg: 'var(--nb-secondary-foreground)',
|
|
116
|
+
},
|
|
117
|
+
accent: {
|
|
118
|
+
bg: 'var(--nb-accent)',
|
|
119
|
+
fg: 'var(--nb-accent-foreground)',
|
|
120
|
+
},
|
|
121
|
+
success: {
|
|
122
|
+
bg: 'var(--nb-success)',
|
|
123
|
+
fg: 'var(--nb-success-foreground)',
|
|
124
|
+
},
|
|
125
|
+
warning: {
|
|
126
|
+
bg: 'var(--nb-warning)',
|
|
127
|
+
fg: 'var(--nb-warning-foreground)',
|
|
128
|
+
},
|
|
129
|
+
danger: {
|
|
130
|
+
bg: 'var(--nb-danger)',
|
|
131
|
+
fg: 'var(--nb-danger-foreground)',
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
function nbToneTokens(tone) {
|
|
135
|
+
return NB_TONE_TOKENS[tone];
|
|
136
|
+
}
|
|
137
|
+
function nbToneVars(tone) {
|
|
138
|
+
const borderColor = 'var(--nb-border)';
|
|
139
|
+
if (tone === 'surface') {
|
|
140
|
+
return { ...nbToneTokens('default'), borderColor };
|
|
141
|
+
}
|
|
142
|
+
if (tone === 'background') {
|
|
143
|
+
return {
|
|
144
|
+
bg: 'var(--nb-background)',
|
|
145
|
+
fg: 'var(--nb-foreground)',
|
|
146
|
+
borderColor,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
if (tone === 'ink') {
|
|
150
|
+
return { ...nbToneTokens('black'), borderColor };
|
|
151
|
+
}
|
|
152
|
+
return { ...nbToneTokens(tone), borderColor };
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
const RADIUS_VALUES = {
|
|
156
|
+
none: '0px',
|
|
157
|
+
sm: '0.25rem',
|
|
158
|
+
md: '0.5rem',
|
|
159
|
+
lg: '0.75rem',
|
|
160
|
+
xl: '1rem',
|
|
161
|
+
full: '9999px',
|
|
162
|
+
};
|
|
163
|
+
function nbRadiusValue(radius) {
|
|
164
|
+
return RADIUS_VALUES[radius];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const SHADOW_VALUES = {
|
|
168
|
+
none: 'none',
|
|
169
|
+
sm: '2px 2px 0 0 var(--nb-shadow)',
|
|
170
|
+
default: 'var(--nb-shadow-offset-x) var(--nb-shadow-offset-y) 0 0 var(--nb-shadow)',
|
|
171
|
+
hard: '6px 6px 0 0 var(--nb-shadow)',
|
|
172
|
+
heavy: '10px 10px 0 0 var(--nb-shadow)',
|
|
173
|
+
};
|
|
174
|
+
function nbShadowValue(shadow) {
|
|
175
|
+
return SHADOW_VALUES[shadow];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const BORDER_WIDTH_VALUES = {
|
|
179
|
+
none: '0px',
|
|
180
|
+
thin: '1px',
|
|
181
|
+
default: 'var(--nb-border-width)',
|
|
182
|
+
strong: '3px',
|
|
183
|
+
thick: '4px',
|
|
184
|
+
};
|
|
185
|
+
function nbBorderWidthValue(border) {
|
|
186
|
+
return BORDER_WIDTH_VALUES[border];
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
const SPACING_VALUES = {
|
|
190
|
+
none: '0px',
|
|
191
|
+
xs: '0.25rem',
|
|
192
|
+
sm: '0.5rem',
|
|
193
|
+
md: '0.75rem',
|
|
194
|
+
lg: '1rem',
|
|
195
|
+
xl: '1.5rem',
|
|
196
|
+
'2xl': '2rem',
|
|
197
|
+
};
|
|
198
|
+
function nbSpacingValue(spacing) {
|
|
199
|
+
return SPACING_VALUES[spacing];
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const PADDING_VALUES = {
|
|
203
|
+
none: '0px',
|
|
204
|
+
xs: '0.5rem',
|
|
205
|
+
sm: '0.75rem',
|
|
206
|
+
md: '1rem',
|
|
207
|
+
lg: '1.5rem',
|
|
208
|
+
xl: '2rem',
|
|
209
|
+
};
|
|
210
|
+
function nbPaddingValue(padding) {
|
|
211
|
+
return PADDING_VALUES[padding];
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Shared typography vocabulary. One source of truth for the font-weight scale,
|
|
216
|
+
* the font-role contract, underline customization, and the text-tracking scale
|
|
217
|
+
* so a token means the same thing across nbText / nbDisplay / nbTypography /
|
|
218
|
+
* nbChipGroup.
|
|
219
|
+
*/
|
|
220
|
+
const FONT_WEIGHT_VALUES = {
|
|
221
|
+
normal: '400',
|
|
222
|
+
medium: '500',
|
|
223
|
+
semibold: '600',
|
|
224
|
+
bold: '700',
|
|
225
|
+
extrabold: '800',
|
|
226
|
+
black: '900',
|
|
227
|
+
};
|
|
228
|
+
function nbFontWeightValue(weight) {
|
|
229
|
+
return FONT_WEIGHT_VALUES[weight];
|
|
230
|
+
}
|
|
231
|
+
const FONT_ROLE_VALUES = {
|
|
232
|
+
inherit: null,
|
|
233
|
+
body: 'var(--nb-font-body, var(--nb-font-sans))',
|
|
234
|
+
display: 'var(--nb-font-display, var(--nb-font-sans))',
|
|
235
|
+
accent: 'var(--nb-font-accent, var(--nb-font-sans))',
|
|
236
|
+
mono: 'var(--nb-font-mono, monospace)',
|
|
237
|
+
};
|
|
238
|
+
function nbTypographyFontValue(font) {
|
|
239
|
+
return FONT_ROLE_VALUES[font];
|
|
240
|
+
}
|
|
241
|
+
const UNDERLINE_GAP_VALUES = {
|
|
242
|
+
none: '0',
|
|
243
|
+
xs: '0.25rem',
|
|
244
|
+
sm: '0.5rem',
|
|
245
|
+
md: '0.75rem',
|
|
246
|
+
lg: '1.25rem',
|
|
247
|
+
};
|
|
248
|
+
const UNDERLINE_WIDTH_VALUES = {
|
|
249
|
+
auto: null,
|
|
250
|
+
xs: '2rem',
|
|
251
|
+
sm: '4rem',
|
|
252
|
+
md: '7rem',
|
|
253
|
+
lg: '12rem',
|
|
254
|
+
full: '100%',
|
|
255
|
+
};
|
|
256
|
+
function nbUnderlineGapValue(gap) {
|
|
257
|
+
return UNDERLINE_GAP_VALUES[gap];
|
|
258
|
+
}
|
|
259
|
+
function nbUnderlineWidthValue(width) {
|
|
260
|
+
return UNDERLINE_WIDTH_VALUES[width];
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* INTERNAL. The CSS-variable namespace a primitive owns, e.g. `'surface'` →
|
|
265
|
+
* capabilities write `--nb-surface-*`. Every primitive that composes a style
|
|
266
|
+
* capability must provide this on its element injector.
|
|
267
|
+
*/
|
|
268
|
+
const NB_STYLE_NAMESPACE = new InjectionToken('NB_STYLE_NAMESPACE');
|
|
269
|
+
const NB_STYLE_DEFAULTS = new InjectionToken('NB_STYLE_DEFAULTS', { factory: () => ({}) });
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* INTERNAL capability — not part of the public API. Composed into primitives via
|
|
273
|
+
* `hostDirectives`. Defaults and scoped public tokens flow through low
|
|
274
|
+
* specificity marker CSS; explicit inputs write final inline color properties.
|
|
275
|
+
*/
|
|
276
|
+
class NbToneCapability {
|
|
277
|
+
namespace = inject(NB_STYLE_NAMESPACE);
|
|
278
|
+
defaults = inject(NB_STYLE_DEFAULTS);
|
|
279
|
+
tone = input(undefined, ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
280
|
+
resolved = computed(() => this.tone() ?? this.defaults.tone ?? 'default', ...(ngDevMode ? [{ debugName: "resolved" }] : /* istanbul ignore next */ []));
|
|
281
|
+
defaultVars = computed(() => nbToneVars(this.defaults.tone ?? 'default'), ...(ngDevMode ? [{ debugName: "defaultVars" }] : /* istanbul ignore next */ []));
|
|
282
|
+
inputVars = computed(() => {
|
|
283
|
+
const tone = this.tone();
|
|
284
|
+
return tone ? nbToneVars(tone) : null;
|
|
285
|
+
}, ...(ngDevMode ? [{ debugName: "inputVars" }] : /* istanbul ignore next */ []));
|
|
286
|
+
toneBgDefaultVar = computed(() => this.defaultVars().bg, ...(ngDevMode ? [{ debugName: "toneBgDefaultVar" }] : /* istanbul ignore next */ []));
|
|
287
|
+
toneFgDefaultVar = computed(() => this.defaultVars().fg, ...(ngDevMode ? [{ debugName: "toneFgDefaultVar" }] : /* istanbul ignore next */ []));
|
|
288
|
+
toneBorderColorDefaultVar = computed(() => this.defaultVars().borderColor, ...(ngDevMode ? [{ debugName: "toneBorderColorDefaultVar" }] : /* istanbul ignore next */ []));
|
|
289
|
+
toneBgTokenVar = computed(() => `var(--nb-${this.namespace}-bg, var(--_nb-tone-bg-default))`, ...(ngDevMode ? [{ debugName: "toneBgTokenVar" }] : /* istanbul ignore next */ []));
|
|
290
|
+
toneFgTokenVar = computed(() => `var(--nb-${this.namespace}-fg, var(--_nb-tone-fg-default))`, ...(ngDevMode ? [{ debugName: "toneFgTokenVar" }] : /* istanbul ignore next */ []));
|
|
291
|
+
toneBorderColorTokenVar = computed(() => `var(--nb-${this.namespace}-border-color, var(--_nb-tone-border-color-default))`, ...(ngDevMode ? [{ debugName: "toneBorderColorTokenVar" }] : /* istanbul ignore next */ []));
|
|
292
|
+
toneInputBgStyle = computed(() => this.inputVars()?.bg ?? null, ...(ngDevMode ? [{ debugName: "toneInputBgStyle" }] : /* istanbul ignore next */ []));
|
|
293
|
+
toneInputFgStyle = computed(() => this.inputVars()?.fg ?? null, ...(ngDevMode ? [{ debugName: "toneInputFgStyle" }] : /* istanbul ignore next */ []));
|
|
294
|
+
toneInputBorderColorStyle = computed(() => this.inputVars()?.borderColor ?? null, ...(ngDevMode ? [{ debugName: "toneInputBorderColorStyle" }] : /* istanbul ignore next */ []));
|
|
295
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbToneCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
296
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbToneCapability, isStandalone: true, selector: "[nbToneCapability]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--_nb-tone-bg-default": "toneBgDefaultVar()", "style.--_nb-tone-fg-default": "toneFgDefaultVar()", "style.--_nb-tone-border-color-default": "toneBorderColorDefaultVar()", "style.--_nb-tone-bg-token": "toneBgTokenVar()", "style.--_nb-tone-fg-token": "toneFgTokenVar()", "style.--_nb-tone-border-color-token": "toneBorderColorTokenVar()", "style.background-color": "toneInputBgStyle()", "style.color": "toneInputFgStyle()", "style.border-color": "toneInputBorderColorStyle()", "attr.data-tone": "resolved()" }, classAttribute: "nb-tone" }, ngImport: i0 });
|
|
297
|
+
}
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbToneCapability, decorators: [{
|
|
299
|
+
type: Directive,
|
|
300
|
+
args: [{
|
|
301
|
+
selector: '[nbToneCapability]',
|
|
302
|
+
host: {
|
|
303
|
+
class: 'nb-tone',
|
|
304
|
+
'[style.--_nb-tone-bg-default]': 'toneBgDefaultVar()',
|
|
305
|
+
'[style.--_nb-tone-fg-default]': 'toneFgDefaultVar()',
|
|
306
|
+
'[style.--_nb-tone-border-color-default]': 'toneBorderColorDefaultVar()',
|
|
307
|
+
'[style.--_nb-tone-bg-token]': 'toneBgTokenVar()',
|
|
308
|
+
'[style.--_nb-tone-fg-token]': 'toneFgTokenVar()',
|
|
309
|
+
'[style.--_nb-tone-border-color-token]': 'toneBorderColorTokenVar()',
|
|
310
|
+
'[style.background-color]': 'toneInputBgStyle()',
|
|
311
|
+
'[style.color]': 'toneInputFgStyle()',
|
|
312
|
+
'[style.border-color]': 'toneInputBorderColorStyle()',
|
|
313
|
+
'[attr.data-tone]': 'resolved()',
|
|
314
|
+
},
|
|
315
|
+
}]
|
|
316
|
+
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }] } });
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* INTERNAL capability — not part of the public API. Defaults and scoped public
|
|
320
|
+
* tokens flow through marker CSS; explicit inputs write the final property.
|
|
321
|
+
*/
|
|
322
|
+
class NbRadiusCapability {
|
|
323
|
+
namespace = inject(NB_STYLE_NAMESPACE);
|
|
324
|
+
defaults = inject(NB_STYLE_DEFAULTS);
|
|
325
|
+
radius = input(undefined, ...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
|
|
326
|
+
fallback = computed(() => this.defaults.radius ?? 'md', ...(ngDevMode ? [{ debugName: "fallback" }] : /* istanbul ignore next */ []));
|
|
327
|
+
resolved = computed(() => this.radius() ?? this.fallback(), ...(ngDevMode ? [{ debugName: "resolved" }] : /* istanbul ignore next */ []));
|
|
328
|
+
radiusDefaultVar = computed(() => {
|
|
329
|
+
const radius = this.fallback();
|
|
330
|
+
return radius === 'md' ? 'var(--nb-radius)' : nbRadiusValue(radius);
|
|
331
|
+
}, ...(ngDevMode ? [{ debugName: "radiusDefaultVar" }] : /* istanbul ignore next */ []));
|
|
332
|
+
radiusTokenVar = computed(() => `var(--nb-${this.namespace}-radius, var(--_nb-radius-default))`, ...(ngDevMode ? [{ debugName: "radiusTokenVar" }] : /* istanbul ignore next */ []));
|
|
333
|
+
radiusInputStyle = computed(() => {
|
|
334
|
+
const radius = this.radius();
|
|
335
|
+
return radius ? nbRadiusValue(radius) : null;
|
|
336
|
+
}, ...(ngDevMode ? [{ debugName: "radiusInputStyle" }] : /* istanbul ignore next */ []));
|
|
337
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbRadiusCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
338
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbRadiusCapability, isStandalone: true, selector: "[nbRadiusCapability]", inputs: { radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--_nb-radius-default": "radiusDefaultVar()", "style.--nb-radius-token": "radiusTokenVar()", "style.border-radius": "radiusInputStyle()", "attr.data-radius": "resolved()" }, classAttribute: "nb-radius" }, ngImport: i0 });
|
|
339
|
+
}
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbRadiusCapability, decorators: [{
|
|
341
|
+
type: Directive,
|
|
342
|
+
args: [{
|
|
343
|
+
selector: '[nbRadiusCapability]',
|
|
344
|
+
host: {
|
|
345
|
+
class: 'nb-radius',
|
|
346
|
+
'[style.--_nb-radius-default]': 'radiusDefaultVar()',
|
|
347
|
+
'[style.--nb-radius-token]': 'radiusTokenVar()',
|
|
348
|
+
'[style.border-radius]': 'radiusInputStyle()',
|
|
349
|
+
'[attr.data-radius]': 'resolved()',
|
|
350
|
+
},
|
|
351
|
+
}]
|
|
352
|
+
}], propDecorators: { radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }] } });
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* INTERNAL capability — not part of the public API. Defaults and scoped public
|
|
356
|
+
* tokens flow through marker CSS; explicit inputs write the final property.
|
|
357
|
+
*/
|
|
358
|
+
class NbShadowCapability {
|
|
359
|
+
namespace = inject(NB_STYLE_NAMESPACE);
|
|
360
|
+
defaults = inject(NB_STYLE_DEFAULTS);
|
|
361
|
+
shadow = input(undefined, ...(ngDevMode ? [{ debugName: "shadow" }] : /* istanbul ignore next */ []));
|
|
362
|
+
fallback = computed(() => this.defaults.shadow ?? 'default', ...(ngDevMode ? [{ debugName: "fallback" }] : /* istanbul ignore next */ []));
|
|
363
|
+
resolved = computed(() => this.shadow() ?? this.fallback(), ...(ngDevMode ? [{ debugName: "resolved" }] : /* istanbul ignore next */ []));
|
|
364
|
+
shadowDefaultVar = computed(() => nbShadowValue(this.fallback()), ...(ngDevMode ? [{ debugName: "shadowDefaultVar" }] : /* istanbul ignore next */ []));
|
|
365
|
+
shadowTokenVar = computed(() => `var(--nb-${this.namespace}-shadow, var(--_nb-shadow-default))`, ...(ngDevMode ? [{ debugName: "shadowTokenVar" }] : /* istanbul ignore next */ []));
|
|
366
|
+
shadowInputStyle = computed(() => {
|
|
367
|
+
const shadow = this.shadow();
|
|
368
|
+
return shadow ? nbShadowValue(shadow) : null;
|
|
369
|
+
}, ...(ngDevMode ? [{ debugName: "shadowInputStyle" }] : /* istanbul ignore next */ []));
|
|
370
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbShadowCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
371
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbShadowCapability, isStandalone: true, selector: "[nbShadowCapability]", inputs: { shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--_nb-shadow-default": "shadowDefaultVar()", "style.--nb-shadow-token": "shadowTokenVar()", "style.box-shadow": "shadowInputStyle()", "attr.data-shadow": "resolved()" }, classAttribute: "nb-shadow" }, ngImport: i0 });
|
|
372
|
+
}
|
|
373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbShadowCapability, decorators: [{
|
|
374
|
+
type: Directive,
|
|
375
|
+
args: [{
|
|
376
|
+
selector: '[nbShadowCapability]',
|
|
377
|
+
host: {
|
|
378
|
+
class: 'nb-shadow',
|
|
379
|
+
'[style.--_nb-shadow-default]': 'shadowDefaultVar()',
|
|
380
|
+
'[style.--nb-shadow-token]': 'shadowTokenVar()',
|
|
381
|
+
'[style.box-shadow]': 'shadowInputStyle()',
|
|
382
|
+
'[attr.data-shadow]': 'resolved()',
|
|
383
|
+
},
|
|
384
|
+
}]
|
|
385
|
+
}], propDecorators: { shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }] } });
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* INTERNAL capability — not part of the public API. Defaults and scoped public
|
|
389
|
+
* tokens flow through marker CSS; explicit inputs write the final property.
|
|
390
|
+
* Border color is owned by the tone capability.
|
|
391
|
+
*/
|
|
392
|
+
class NbBorderCapability {
|
|
393
|
+
namespace = inject(NB_STYLE_NAMESPACE);
|
|
394
|
+
defaults = inject(NB_STYLE_DEFAULTS);
|
|
395
|
+
border = input(undefined, ...(ngDevMode ? [{ debugName: "border" }] : /* istanbul ignore next */ []));
|
|
396
|
+
fallback = computed(() => this.defaults.border ?? 'default', ...(ngDevMode ? [{ debugName: "fallback" }] : /* istanbul ignore next */ []));
|
|
397
|
+
resolved = computed(() => this.border() ?? this.fallback(), ...(ngDevMode ? [{ debugName: "resolved" }] : /* istanbul ignore next */ []));
|
|
398
|
+
borderWidthDefaultVar = computed(() => nbBorderWidthValue(this.fallback()), ...(ngDevMode ? [{ debugName: "borderWidthDefaultVar" }] : /* istanbul ignore next */ []));
|
|
399
|
+
borderWidthTokenVar = computed(() => `var(--nb-${this.namespace}-border-width, var(--_nb-border-width-default))`, ...(ngDevMode ? [{ debugName: "borderWidthTokenVar" }] : /* istanbul ignore next */ []));
|
|
400
|
+
borderWidthInputStyle = computed(() => {
|
|
401
|
+
const border = this.border();
|
|
402
|
+
return border ? nbBorderWidthValue(border) : null;
|
|
403
|
+
}, ...(ngDevMode ? [{ debugName: "borderWidthInputStyle" }] : /* istanbul ignore next */ []));
|
|
404
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbBorderCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
405
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbBorderCapability, isStandalone: true, selector: "[nbBorderCapability]", inputs: { border: { classPropertyName: "border", publicName: "border", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--_nb-border-width-default": "borderWidthDefaultVar()", "style.--nb-border-width-token": "borderWidthTokenVar()", "style.border-width": "borderWidthInputStyle()", "attr.data-border": "resolved()" }, classAttribute: "nb-border-width" }, ngImport: i0 });
|
|
406
|
+
}
|
|
407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbBorderCapability, decorators: [{
|
|
408
|
+
type: Directive,
|
|
409
|
+
args: [{
|
|
410
|
+
selector: '[nbBorderCapability]',
|
|
411
|
+
host: {
|
|
412
|
+
class: 'nb-border-width',
|
|
413
|
+
'[style.--_nb-border-width-default]': 'borderWidthDefaultVar()',
|
|
414
|
+
'[style.--nb-border-width-token]': 'borderWidthTokenVar()',
|
|
415
|
+
'[style.border-width]': 'borderWidthInputStyle()',
|
|
416
|
+
'[attr.data-border]': 'resolved()',
|
|
417
|
+
},
|
|
418
|
+
}]
|
|
419
|
+
}], propDecorators: { border: [{ type: i0.Input, args: [{ isSignal: true, alias: "border", required: false }] }] } });
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* INTERNAL capability — not part of the public API. Defaults and scoped public
|
|
423
|
+
* tokens flow through marker CSS; explicit inputs write the final property.
|
|
424
|
+
*/
|
|
425
|
+
class NbPaddingCapability {
|
|
426
|
+
namespace = inject(NB_STYLE_NAMESPACE);
|
|
427
|
+
defaults = inject(NB_STYLE_DEFAULTS);
|
|
428
|
+
padding = input(undefined, ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
|
|
429
|
+
fallback = computed(() => this.defaults.padding ?? 'md', ...(ngDevMode ? [{ debugName: "fallback" }] : /* istanbul ignore next */ []));
|
|
430
|
+
resolved = computed(() => this.padding() ?? this.fallback(), ...(ngDevMode ? [{ debugName: "resolved" }] : /* istanbul ignore next */ []));
|
|
431
|
+
paddingDefaultVar = computed(() => nbPaddingValue(this.fallback()), ...(ngDevMode ? [{ debugName: "paddingDefaultVar" }] : /* istanbul ignore next */ []));
|
|
432
|
+
paddingTokenVar = computed(() => `var(--nb-${this.namespace}-padding, var(--_nb-padding-default))`, ...(ngDevMode ? [{ debugName: "paddingTokenVar" }] : /* istanbul ignore next */ []));
|
|
433
|
+
paddingInputStyle = computed(() => {
|
|
434
|
+
const padding = this.padding();
|
|
435
|
+
return padding ? nbPaddingValue(padding) : null;
|
|
436
|
+
}, ...(ngDevMode ? [{ debugName: "paddingInputStyle" }] : /* istanbul ignore next */ []));
|
|
437
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbPaddingCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
438
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbPaddingCapability, isStandalone: true, selector: "[nbPaddingCapability]", inputs: { padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--_nb-padding-default": "paddingDefaultVar()", "style.--nb-padding-token": "paddingTokenVar()", "style.padding": "paddingInputStyle()", "attr.data-padding": "resolved()" }, classAttribute: "nb-padding" }, ngImport: i0 });
|
|
439
|
+
}
|
|
440
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbPaddingCapability, decorators: [{
|
|
441
|
+
type: Directive,
|
|
442
|
+
args: [{
|
|
443
|
+
selector: '[nbPaddingCapability]',
|
|
444
|
+
host: {
|
|
445
|
+
class: 'nb-padding',
|
|
446
|
+
'[style.--_nb-padding-default]': 'paddingDefaultVar()',
|
|
447
|
+
'[style.--nb-padding-token]': 'paddingTokenVar()',
|
|
448
|
+
'[style.padding]': 'paddingInputStyle()',
|
|
449
|
+
'[attr.data-padding]': 'resolved()',
|
|
450
|
+
},
|
|
451
|
+
}]
|
|
452
|
+
}], propDecorators: { padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }] } });
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* INTERNAL capability — not part of the public API. Defaults and scoped public
|
|
456
|
+
* tokens flow through marker CSS; explicit inputs write the final property.
|
|
457
|
+
*/
|
|
458
|
+
class NbGapCapability {
|
|
459
|
+
namespace = inject(NB_STYLE_NAMESPACE);
|
|
460
|
+
defaults = inject(NB_STYLE_DEFAULTS);
|
|
461
|
+
gap = input(undefined, ...(ngDevMode ? [{ debugName: "gap" }] : /* istanbul ignore next */ []));
|
|
462
|
+
fallback = computed(() => this.defaults.gap ?? 'md', ...(ngDevMode ? [{ debugName: "fallback" }] : /* istanbul ignore next */ []));
|
|
463
|
+
resolved = computed(() => this.gap() ?? this.fallback(), ...(ngDevMode ? [{ debugName: "resolved" }] : /* istanbul ignore next */ []));
|
|
464
|
+
gapDefaultVar = computed(() => nbSpacingValue(this.fallback()), ...(ngDevMode ? [{ debugName: "gapDefaultVar" }] : /* istanbul ignore next */ []));
|
|
465
|
+
gapInputVar = computed(() => {
|
|
466
|
+
const gap = this.gap();
|
|
467
|
+
return gap ? nbSpacingValue(gap) : null;
|
|
468
|
+
}, ...(ngDevMode ? [{ debugName: "gapInputVar" }] : /* istanbul ignore next */ []));
|
|
469
|
+
gapResolvedVar = computed(() => `var(--_nb-gap-input, var(--nb-${this.namespace}-gap, var(--_nb-gap-default)))`, ...(ngDevMode ? [{ debugName: "gapResolvedVar" }] : /* istanbul ignore next */ []));
|
|
470
|
+
gapInputStyle = computed(() => {
|
|
471
|
+
const gap = this.gap();
|
|
472
|
+
return gap ? nbSpacingValue(gap) : null;
|
|
473
|
+
}, ...(ngDevMode ? [{ debugName: "gapInputStyle" }] : /* istanbul ignore next */ []));
|
|
474
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbGapCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
475
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbGapCapability, isStandalone: true, selector: "[nbGapCapability]", inputs: { gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--_nb-gap-input": "gapInputVar()", "style.--_nb-gap-default": "gapDefaultVar()", "style.--_nb-gap-resolved": "gapResolvedVar()", "style.gap": "gapInputStyle()", "attr.data-gap": "resolved()" }, classAttribute: "nb-gap" }, ngImport: i0 });
|
|
476
|
+
}
|
|
477
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbGapCapability, decorators: [{
|
|
478
|
+
type: Directive,
|
|
479
|
+
args: [{
|
|
480
|
+
selector: '[nbGapCapability]',
|
|
481
|
+
host: {
|
|
482
|
+
class: 'nb-gap',
|
|
483
|
+
'[style.--_nb-gap-input]': 'gapInputVar()',
|
|
484
|
+
'[style.--_nb-gap-default]': 'gapDefaultVar()',
|
|
485
|
+
'[style.--_nb-gap-resolved]': 'gapResolvedVar()',
|
|
486
|
+
'[style.gap]': 'gapInputStyle()',
|
|
487
|
+
'[attr.data-gap]': 'resolved()',
|
|
488
|
+
},
|
|
489
|
+
}]
|
|
490
|
+
}], propDecorators: { gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }] } });
|
|
491
|
+
|
|
492
|
+
/**
|
|
493
|
+
* INTERNAL capability — not part of the public API. Handles the three underline
|
|
494
|
+
* inputs shared by nbText and nbDisplay: the variant (none/bar/wave), the gap
|
|
495
|
+
* between text baseline and the decoration, and the decoration width.
|
|
496
|
+
*
|
|
497
|
+
* Writes `data-underline`, `--nb-underline-gap`, and `--nb-underline-width`
|
|
498
|
+
* onto the host when the Angular inputs are present so the underline CSS in the
|
|
499
|
+
* theme can read them without each text primitive re-implementing the same
|
|
500
|
+
* computed chain.
|
|
501
|
+
*/
|
|
502
|
+
class NbUnderlineCapability {
|
|
503
|
+
element = inject(ElementRef);
|
|
504
|
+
writtenCustomProperties = new Set();
|
|
505
|
+
underline = input('none', ...(ngDevMode ? [{ debugName: "underline" }] : /* istanbul ignore next */ []));
|
|
506
|
+
underlineGap = input(undefined, ...(ngDevMode ? [{ debugName: "underlineGap" }] : /* istanbul ignore next */ []));
|
|
507
|
+
underlineWidth = input(undefined, ...(ngDevMode ? [{ debugName: "underlineWidth" }] : /* istanbul ignore next */ []));
|
|
508
|
+
constructor() {
|
|
509
|
+
effect(() => {
|
|
510
|
+
this.syncCustomProperty('--nb-underline-gap', this.underlineGapValue());
|
|
511
|
+
});
|
|
512
|
+
effect(() => {
|
|
513
|
+
this.syncCustomProperty('--nb-underline-width', this.underlineWidthValue());
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
underlineAttr = computed(() => {
|
|
517
|
+
const u = this.underline();
|
|
518
|
+
return u === 'none' ? null : u;
|
|
519
|
+
}, ...(ngDevMode ? [{ debugName: "underlineAttr" }] : /* istanbul ignore next */ []));
|
|
520
|
+
underlineGapValue = computed(() => {
|
|
521
|
+
const gap = this.underlineGap();
|
|
522
|
+
return gap ? nbUnderlineGapValue(gap) : null;
|
|
523
|
+
}, ...(ngDevMode ? [{ debugName: "underlineGapValue" }] : /* istanbul ignore next */ []));
|
|
524
|
+
underlineWidthValue = computed(() => {
|
|
525
|
+
const width = this.underlineWidth();
|
|
526
|
+
return width ? nbUnderlineWidthValue(width) : null;
|
|
527
|
+
}, ...(ngDevMode ? [{ debugName: "underlineWidthValue" }] : /* istanbul ignore next */ []));
|
|
528
|
+
syncCustomProperty(name, value) {
|
|
529
|
+
const style = this.element.nativeElement.style;
|
|
530
|
+
if (value !== null) {
|
|
531
|
+
style.setProperty(name, value);
|
|
532
|
+
this.writtenCustomProperties.add(name);
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
if (this.writtenCustomProperties.has(name)) {
|
|
536
|
+
style.removeProperty(name);
|
|
537
|
+
this.writtenCustomProperties.delete(name);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbUnderlineCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
541
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbUnderlineCapability, isStandalone: true, selector: "[nbUnderlineCapability]", inputs: { underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null }, underlineGap: { classPropertyName: "underlineGap", publicName: "underlineGap", isSignal: true, isRequired: false, transformFunction: null }, underlineWidth: { classPropertyName: "underlineWidth", publicName: "underlineWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-underline": "underlineAttr()" } }, ngImport: i0 });
|
|
542
|
+
}
|
|
543
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbUnderlineCapability, decorators: [{
|
|
544
|
+
type: Directive,
|
|
545
|
+
args: [{
|
|
546
|
+
selector: '[nbUnderlineCapability]',
|
|
547
|
+
host: {
|
|
548
|
+
'[attr.data-underline]': 'underlineAttr()',
|
|
549
|
+
},
|
|
550
|
+
}]
|
|
551
|
+
}], ctorParameters: () => [], propDecorators: { underline: [{ type: i0.Input, args: [{ isSignal: true, alias: "underline", required: false }] }], underlineGap: [{ type: i0.Input, args: [{ isSignal: true, alias: "underlineGap", required: false }] }], underlineWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "underlineWidth", required: false }] }] } });
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* INTERNAL capability — not part of the public API. Marks the host for a
|
|
555
|
+
* low-specificity stylesheet margin reset when `reset` is true (the default),
|
|
556
|
+
* so browser-default margins on `<p>`, `<h1>`–`<h6>`, and other typographic
|
|
557
|
+
* elements don't interfere with layout-primitive spacing (nbStack, nbCluster,
|
|
558
|
+
* etc.).
|
|
559
|
+
*
|
|
560
|
+
* Shared by nbText and nbDisplay so neither primitive re-implements the same
|
|
561
|
+
* one-line computed.
|
|
562
|
+
*/
|
|
563
|
+
class NbResetMarginCapability {
|
|
564
|
+
reset = input(true, { ...(ngDevMode ? { debugName: "reset" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
565
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbResetMarginCapability, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
566
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbResetMarginCapability, isStandalone: true, selector: "[nbResetMarginCapability]", inputs: { reset: { classPropertyName: "reset", publicName: "reset", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-nb-reset-margin": "reset() ? \"\" : null" } }, ngImport: i0 });
|
|
567
|
+
}
|
|
568
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbResetMarginCapability, decorators: [{
|
|
569
|
+
type: Directive,
|
|
570
|
+
args: [{
|
|
571
|
+
selector: '[nbResetMarginCapability]',
|
|
572
|
+
host: {
|
|
573
|
+
'[attr.data-nb-reset-margin]': 'reset() ? "" : null',
|
|
574
|
+
},
|
|
575
|
+
}]
|
|
576
|
+
}], propDecorators: { reset: [{ type: i0.Input, args: [{ isSignal: true, alias: "reset", required: false }] }] } });
|
|
577
|
+
|
|
578
|
+
// INTERNAL barrel. Consumed by library primitives only — NOT re-exported from
|
|
579
|
+
// the package entry point (`libs/ui/src/index.ts`). Capability directives are an
|
|
580
|
+
// internal composition mechanism; users compose the public primitives instead.
|
|
581
|
+
|
|
66
582
|
class NbCheckbox {
|
|
67
|
-
size = input('
|
|
583
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
68
584
|
classes = computed(() => nbClass('[--nb-checkbox-bg:var(--nb-main)]', '[--nb-checkbox-fg:#fff]', '[--nb-checkbox-border:var(--nb-border)]', '[--nb-checkbox-radius:0]', 'peer grid shrink-0 cursor-pointer appearance-none place-content-center', 'rounded-(--nb-checkbox-radius) outline-2 outline-(--nb-checkbox-border) ring-offset-white', 'checked:bg-(--nb-checkbox-bg) checked:text-(--nb-checkbox-fg)', 'focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-(--nb-checkbox-border) focus-visible:ring-offset-2', 'disabled:opacity-50 disabled:cursor-not-allowed', this.sizeClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
69
585
|
sizeClass() {
|
|
70
586
|
const map = {
|
|
71
|
-
|
|
587
|
+
md: 'size-4',
|
|
72
588
|
sm: 'size-3.5',
|
|
73
589
|
lg: 'size-5',
|
|
74
590
|
};
|
|
@@ -99,14 +615,25 @@ class NbAccordionItem {
|
|
|
99
615
|
triggerId = `neo-accordion-trigger-${this.id}`;
|
|
100
616
|
contentId = `neo-accordion-content-${this.id}`;
|
|
101
617
|
open = computed(() => this.accordion.isItemOpen(this.value()), ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
|
|
102
|
-
classes = computed(() => nbClass('
|
|
618
|
+
classes = computed(() => nbClass('overflow-hidden rounded-[var(--nb-radius-token,var(--_nb-radius-default))]', 'border-[length:var(--nb-border-width-token,var(--_nb-border-width-default))]', 'nb-tone', 'shadow-[var(--nb-shadow-token,var(--_nb-shadow-default))]', this.disabled() && 'opacity-50'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
103
619
|
toggle() {
|
|
104
620
|
if (!this.disabled()) {
|
|
105
621
|
this.accordion.toggleItem(this.value());
|
|
106
622
|
}
|
|
107
623
|
}
|
|
108
624
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
109
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NbAccordionItem, isStandalone: true, selector: "nb-accordion-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "open() ? \"open\" : \"closed\"", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-orientation": "\"vertical\"" }, classAttribute: "block" },
|
|
625
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NbAccordionItem, isStandalone: true, selector: "nb-accordion-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-state": "open() ? \"open\" : \"closed\"", "attr.data-disabled": "disabled() ? \"\" : null", "attr.data-orientation": "\"vertical\"" }, classAttribute: "block" }, providers: [
|
|
626
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'accordion-item' },
|
|
627
|
+
{
|
|
628
|
+
provide: NB_STYLE_DEFAULTS,
|
|
629
|
+
useValue: {
|
|
630
|
+
tone: 'surface',
|
|
631
|
+
radius: 'md',
|
|
632
|
+
shadow: 'default',
|
|
633
|
+
border: 'default',
|
|
634
|
+
},
|
|
635
|
+
},
|
|
636
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0, template: `
|
|
110
637
|
<div [class]="classes()">
|
|
111
638
|
<ng-content />
|
|
112
639
|
</div>
|
|
@@ -121,6 +648,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
121
648
|
<ng-content />
|
|
122
649
|
</div>
|
|
123
650
|
`,
|
|
651
|
+
providers: [
|
|
652
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'accordion-item' },
|
|
653
|
+
{
|
|
654
|
+
provide: NB_STYLE_DEFAULTS,
|
|
655
|
+
useValue: {
|
|
656
|
+
tone: 'surface',
|
|
657
|
+
radius: 'md',
|
|
658
|
+
shadow: 'default',
|
|
659
|
+
border: 'default',
|
|
660
|
+
},
|
|
661
|
+
},
|
|
662
|
+
],
|
|
663
|
+
hostDirectives: [
|
|
664
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
665
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
666
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
667
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
668
|
+
],
|
|
124
669
|
host: {
|
|
125
670
|
class: 'block',
|
|
126
671
|
'[attr.data-state]': 'open() ? "open" : "closed"',
|
|
@@ -246,7 +791,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
246
791
|
|
|
247
792
|
class NbAccordionTrigger {
|
|
248
793
|
item = inject(NbAccordionItem);
|
|
249
|
-
triggerClasses = computed(() => nbClass('[--nb-accordion-trigger-bg:var(--nb-main)]', '[--nb-accordion-trigger-fg:var(--nb-main-foreground)]', 'flex min-h-14 flex-1 items-center justify-between gap-4', 'w-full bg-(--nb-accordion-trigger-bg) p-4 text-left text-base font-bold', 'text-(--nb-accordion-trigger-fg) transition-all duration-200', 'focus-visible:outline-none focus-visible:ring-2', 'focus-visible:ring-(--
|
|
794
|
+
triggerClasses = computed(() => nbClass('[--nb-accordion-trigger-bg:var(--nb-main)]', '[--nb-accordion-trigger-fg:var(--nb-main-foreground)]', 'flex min-h-14 flex-1 items-center justify-between gap-4', 'w-full bg-(--nb-accordion-trigger-bg) p-4 text-left text-base font-bold', 'text-(--nb-accordion-trigger-fg) transition-all duration-200', 'focus-visible:outline-none focus-visible:ring-2', 'focus-visible:ring-[var(--_nb-tone-border-color-token,var(--_nb-tone-border-color-default))] focus-visible:ring-offset-2', 'disabled:pointer-events-none disabled:opacity-50', this.item.open() &&
|
|
795
|
+
'border-b-[length:var(--nb-border-width-token,var(--_nb-border-width-default))] border-b-[var(--_nb-tone-border-color-token,var(--_nb-tone-border-color-default))]'), ...(ngDevMode ? [{ debugName: "triggerClasses" }] : /* istanbul ignore next */ []));
|
|
250
796
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
251
797
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: NbAccordionTrigger, isStandalone: true, selector: "nb-accordion-trigger", ngImport: i0, template: `
|
|
252
798
|
<h3 class="flex">
|
|
@@ -303,70 +849,293 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
303
849
|
}]
|
|
304
850
|
}] });
|
|
305
851
|
|
|
852
|
+
const sizeMap$3 = {
|
|
853
|
+
sm: 'h-9 px-3 text-sm gap-1.5',
|
|
854
|
+
md: 'h-11 px-4 text-base gap-2',
|
|
855
|
+
lg: 'h-[3.25rem] px-5 text-lg gap-2.5',
|
|
856
|
+
xl: 'h-14 px-4 text-xl gap-3',
|
|
857
|
+
};
|
|
306
858
|
class NbButton {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
classes = computed(() => nbClass('inline-flex items-center justify-center whitespace-nowrap select-none', 'gap-2', 'font-bold', '[--nb-button-bg:var(--nb-main)]', '[--nb-button-fg:var(--nb-main-foreground)]', '[--nb-button-border:var(--nb-border)]', '[--nb-button-radius:var(--nb-radius)]', '[--nb-button-shadow:var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]', 'bg-(--nb-button-bg) text-(--nb-button-fg)', 'rounded-(--nb-button-radius)', 'border-2 border-(--nb-button-border)', 'shadow-[var(--nb-button-shadow)]', 'transition-all duration-150 ease-out', '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-border) focus-visible:ring-offset-2', 'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none', 'aria-disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:pointer-events-none', this.variantClass(), this.shadowClass(), this.sizeClass(), this.fullWidth() && 'w-full'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
312
|
-
variantClass() {
|
|
313
|
-
const variant = this.variant();
|
|
314
|
-
const map = {
|
|
315
|
-
default: '',
|
|
316
|
-
neutral: '[--nb-button-bg:var(--nb-background)] [--nb-button-fg:var(--nb-foreground)]',
|
|
317
|
-
primary: '[--nb-button-bg:var(--nb-primary)] [--nb-button-fg:var(--nb-primary-foreground)]',
|
|
318
|
-
secondary: '[--nb-button-bg:var(--nb-secondary)] [--nb-button-fg:var(--nb-secondary-foreground)]',
|
|
319
|
-
accent: '[--nb-button-bg:var(--nb-accent)] [--nb-button-fg:var(--nb-accent-foreground)]',
|
|
320
|
-
danger: '[--nb-button-bg:var(--nb-danger)] [--nb-button-fg:var(--nb-danger-foreground)]',
|
|
321
|
-
success: '[--nb-button-bg:var(--nb-success)] [--nb-button-fg:var(--nb-success-foreground)]',
|
|
322
|
-
warning: '[--nb-button-bg:var(--nb-warning)] [--nb-button-fg:var(--nb-warning-foreground)]',
|
|
323
|
-
};
|
|
324
|
-
return map[variant];
|
|
325
|
-
}
|
|
859
|
+
press = input('push', ...(ngDevMode ? [{ debugName: "press" }] : /* istanbul ignore next */ []));
|
|
860
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
861
|
+
fullWidth = input(false, { ...(ngDevMode ? { debugName: "fullWidth" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
862
|
+
classes = computed(() => nbClass('inline-flex items-center justify-center whitespace-nowrap select-none font-bold', 'transition-all duration-150 ease-out', '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-border) focus-visible:ring-offset-2', 'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none', 'aria-disabled:opacity-50 aria-disabled:cursor-not-allowed aria-disabled:pointer-events-none', this.shadowClass(), this.sizeClass(), this.fullWidth() && 'w-full'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
326
863
|
shadowClass() {
|
|
327
864
|
const map = {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
865
|
+
push: 'hover:translate-x-(--nb-shadow-offset-x) hover:translate-y-(--nb-shadow-offset-y) hover:shadow-none',
|
|
866
|
+
reverse: 'hover:-translate-x-(--nb-reverse-shadow-offset-x) hover:-translate-y-(--nb-reverse-shadow-offset-y)',
|
|
867
|
+
none: '',
|
|
331
868
|
};
|
|
332
|
-
return map[this.
|
|
869
|
+
return map[this.press()];
|
|
333
870
|
}
|
|
334
871
|
sizeClass() {
|
|
335
|
-
|
|
336
|
-
default: 'h-10 px-4 py-2 text-sm',
|
|
337
|
-
sm: 'h-9 px-3 text-sm',
|
|
338
|
-
lg: 'h-11 px-8 text-sm',
|
|
339
|
-
icon: 'size-10',
|
|
340
|
-
};
|
|
341
|
-
return map[this.size()];
|
|
872
|
+
return sizeMap$3[this.size()];
|
|
342
873
|
}
|
|
343
874
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbButton, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
344
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbButton, isStandalone: true, selector: "button[nbButton], a[nbButton]", inputs: {
|
|
875
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbButton, isStandalone: true, selector: "button[nbButton], a[nbButton]", inputs: { press: { classPropertyName: "press", publicName: "press", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-press": "press()", "attr.data-size": "size()", "attr.data-full-width": "fullWidth() ? \"\" : null" } }, providers: [
|
|
876
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'button' },
|
|
877
|
+
{
|
|
878
|
+
provide: NB_STYLE_DEFAULTS,
|
|
879
|
+
useValue: {
|
|
880
|
+
tone: 'primary',
|
|
881
|
+
radius: 'md',
|
|
882
|
+
shadow: 'default',
|
|
883
|
+
border: 'default',
|
|
884
|
+
},
|
|
885
|
+
},
|
|
886
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0 });
|
|
345
887
|
}
|
|
346
888
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbButton, decorators: [{
|
|
347
889
|
type: Directive,
|
|
348
890
|
args: [{
|
|
349
891
|
selector: 'button[nbButton], a[nbButton]',
|
|
892
|
+
providers: [
|
|
893
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'button' },
|
|
894
|
+
{
|
|
895
|
+
provide: NB_STYLE_DEFAULTS,
|
|
896
|
+
useValue: {
|
|
897
|
+
tone: 'primary',
|
|
898
|
+
radius: 'md',
|
|
899
|
+
shadow: 'default',
|
|
900
|
+
border: 'default',
|
|
901
|
+
},
|
|
902
|
+
},
|
|
903
|
+
],
|
|
904
|
+
hostDirectives: [
|
|
905
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
906
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
907
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
908
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
909
|
+
],
|
|
350
910
|
host: {
|
|
351
911
|
'[class]': 'classes()',
|
|
352
|
-
'[attr.data-
|
|
353
|
-
'[attr.data-shadow]': 'shadow()',
|
|
912
|
+
'[attr.data-press]': 'press()',
|
|
354
913
|
'[attr.data-size]': 'size()',
|
|
355
914
|
'[attr.data-full-width]': 'fullWidth() ? "" : null',
|
|
356
915
|
},
|
|
357
916
|
}]
|
|
358
|
-
}], propDecorators: {
|
|
917
|
+
}], propDecorators: { press: [{ type: i0.Input, args: [{ isSignal: true, alias: "press", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }] } });
|
|
918
|
+
|
|
919
|
+
const sizeMap$2 = {
|
|
920
|
+
xs: '0.75rem',
|
|
921
|
+
sm: '1rem',
|
|
922
|
+
md: '1.25rem',
|
|
923
|
+
lg: '1.5rem',
|
|
924
|
+
xl: '2rem',
|
|
925
|
+
};
|
|
926
|
+
const toneMap$1 = {
|
|
927
|
+
current: 'currentColor',
|
|
928
|
+
default: 'var(--nb-foreground)',
|
|
929
|
+
muted: 'color-mix(in srgb, var(--nb-foreground) 75%, transparent)',
|
|
930
|
+
inverse: 'var(--nb-background)',
|
|
931
|
+
primary: 'var(--nb-primary)',
|
|
932
|
+
secondary: 'var(--nb-secondary)',
|
|
933
|
+
accent: 'var(--nb-accent)',
|
|
934
|
+
danger: 'var(--nb-danger)',
|
|
935
|
+
success: 'var(--nb-success)',
|
|
936
|
+
warning: 'var(--nb-warning)',
|
|
937
|
+
};
|
|
938
|
+
class NbIcon {
|
|
939
|
+
src = input.required(...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
940
|
+
mode = input('mask', ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
941
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
942
|
+
tone = input('current', ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
943
|
+
decorative = input(false, { ...(ngDevMode ? { debugName: "decorative" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
944
|
+
label = input(null, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
945
|
+
hasWarnedAboutMissingA11y = false;
|
|
946
|
+
sizeValue = computed(() => sizeMap$2[this.size()], ...(ngDevMode ? [{ debugName: "sizeValue" }] : /* istanbul ignore next */ []));
|
|
947
|
+
toneValue = computed(() => toneMap$1[this.tone()], ...(ngDevMode ? [{ debugName: "toneValue" }] : /* istanbul ignore next */ []));
|
|
948
|
+
srcValue = computed(() => `url("${this.src()}")`, ...(ngDevMode ? [{ debugName: "srcValue" }] : /* istanbul ignore next */ []));
|
|
949
|
+
isMaskMode = computed(() => this.mode() === 'mask', ...(ngDevMode ? [{ debugName: "isMaskMode" }] : /* istanbul ignore next */ []));
|
|
950
|
+
isImageMode = computed(() => this.mode() === 'image', ...(ngDevMode ? [{ debugName: "isImageMode" }] : /* istanbul ignore next */ []));
|
|
951
|
+
roleValue = computed(() => !this.decorative() && this.label() ? 'img' : null, ...(ngDevMode ? [{ debugName: "roleValue" }] : /* istanbul ignore next */ []));
|
|
952
|
+
ariaHiddenValue = computed(() => this.decorative() ? 'true' : null, ...(ngDevMode ? [{ debugName: "ariaHiddenValue" }] : /* istanbul ignore next */ []));
|
|
953
|
+
ariaLabelValue = computed(() => this.decorative() ? null : this.label(), ...(ngDevMode ? [{ debugName: "ariaLabelValue" }] : /* istanbul ignore next */ []));
|
|
954
|
+
backgroundColorValue = computed(() => this.isMaskMode() ? 'var(--nb-icon-color, currentColor)' : null, ...(ngDevMode ? [{ debugName: "backgroundColorValue" }] : /* istanbul ignore next */ []));
|
|
955
|
+
backgroundImageValue = computed(() => this.isImageMode() ? this.srcValue() : null, ...(ngDevMode ? [{ debugName: "backgroundImageValue" }] : /* istanbul ignore next */ []));
|
|
956
|
+
backgroundSizeValue = computed(() => this.isImageMode() ? 'contain' : null, ...(ngDevMode ? [{ debugName: "backgroundSizeValue" }] : /* istanbul ignore next */ []));
|
|
957
|
+
backgroundPositionValue = computed(() => this.isImageMode() ? 'center' : null, ...(ngDevMode ? [{ debugName: "backgroundPositionValue" }] : /* istanbul ignore next */ []));
|
|
958
|
+
backgroundRepeatValue = computed(() => this.isImageMode() ? 'no-repeat' : null, ...(ngDevMode ? [{ debugName: "backgroundRepeatValue" }] : /* istanbul ignore next */ []));
|
|
959
|
+
maskImageValue = computed(() => this.isMaskMode() ? this.srcValue() : null, ...(ngDevMode ? [{ debugName: "maskImageValue" }] : /* istanbul ignore next */ []));
|
|
960
|
+
maskSizeValue = computed(() => this.isMaskMode() ? 'contain' : null, ...(ngDevMode ? [{ debugName: "maskSizeValue" }] : /* istanbul ignore next */ []));
|
|
961
|
+
maskPositionValue = computed(() => this.isMaskMode() ? 'center' : null, ...(ngDevMode ? [{ debugName: "maskPositionValue" }] : /* istanbul ignore next */ []));
|
|
962
|
+
maskRepeatValue = computed(() => this.isMaskMode() ? 'no-repeat' : null, ...(ngDevMode ? [{ debugName: "maskRepeatValue" }] : /* istanbul ignore next */ []));
|
|
963
|
+
constructor() {
|
|
964
|
+
if (isDevMode()) {
|
|
965
|
+
effect(() => {
|
|
966
|
+
if (!this.hasWarnedAboutMissingA11y &&
|
|
967
|
+
!this.decorative() &&
|
|
968
|
+
!this.label()) {
|
|
969
|
+
console.warn('[ng-brutalism] nbIcon should be marked decorative or given a label.');
|
|
970
|
+
this.hasWarnedAboutMissingA11y = true;
|
|
971
|
+
}
|
|
972
|
+
});
|
|
973
|
+
}
|
|
974
|
+
}
|
|
975
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
976
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbIcon, isStandalone: true, selector: "[nbIcon]", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: true, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-nb-icon": "\"\"", "attr.data-size": "size()", "attr.data-tone": "tone()", "attr.data-mode": "mode()", "attr.role": "roleValue()", "attr.aria-hidden": "ariaHiddenValue()", "attr.aria-label": "ariaLabelValue()", "style.--nb-icon-color": "toneValue()", "style.display": "\"inline-block\"", "style.width": "sizeValue()", "style.height": "sizeValue()", "style.flex-shrink": "\"0\"", "style.vertical-align": "\"middle\"", "style.color": "toneValue()", "style.background-color": "backgroundColorValue()", "style.background-image": "backgroundImageValue()", "style.background-size": "backgroundSizeValue()", "style.background-position": "backgroundPositionValue()", "style.background-repeat": "backgroundRepeatValue()", "style.mask-image": "maskImageValue()", "style.-webkit-mask-image": "maskImageValue()", "style.mask-size": "maskSizeValue()", "style.-webkit-mask-size": "maskSizeValue()", "style.mask-position": "maskPositionValue()", "style.-webkit-mask-position": "maskPositionValue()", "style.mask-repeat": "maskRepeatValue()", "style.-webkit-mask-repeat": "maskRepeatValue()" } }, exportAs: ["nbIcon"], ngImport: i0 });
|
|
977
|
+
}
|
|
978
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbIcon, decorators: [{
|
|
979
|
+
type: Directive,
|
|
980
|
+
args: [{
|
|
981
|
+
selector: '[nbIcon]',
|
|
982
|
+
standalone: true,
|
|
983
|
+
exportAs: 'nbIcon',
|
|
984
|
+
host: {
|
|
985
|
+
'[attr.data-nb-icon]': '""',
|
|
986
|
+
'[attr.data-size]': 'size()',
|
|
987
|
+
'[attr.data-tone]': 'tone()',
|
|
988
|
+
'[attr.data-mode]': 'mode()',
|
|
989
|
+
'[attr.role]': 'roleValue()',
|
|
990
|
+
'[attr.aria-hidden]': 'ariaHiddenValue()',
|
|
991
|
+
'[attr.aria-label]': 'ariaLabelValue()',
|
|
992
|
+
'[style.--nb-icon-color]': 'toneValue()',
|
|
993
|
+
'[style.display]': '"inline-block"',
|
|
994
|
+
'[style.width]': 'sizeValue()',
|
|
995
|
+
'[style.height]': 'sizeValue()',
|
|
996
|
+
'[style.flex-shrink]': '"0"',
|
|
997
|
+
'[style.vertical-align]': '"middle"',
|
|
998
|
+
'[style.color]': 'toneValue()',
|
|
999
|
+
'[style.background-color]': 'backgroundColorValue()',
|
|
1000
|
+
'[style.background-image]': 'backgroundImageValue()',
|
|
1001
|
+
'[style.background-size]': 'backgroundSizeValue()',
|
|
1002
|
+
'[style.background-position]': 'backgroundPositionValue()',
|
|
1003
|
+
'[style.background-repeat]': 'backgroundRepeatValue()',
|
|
1004
|
+
'[style.mask-image]': 'maskImageValue()',
|
|
1005
|
+
'[style.-webkit-mask-image]': 'maskImageValue()',
|
|
1006
|
+
'[style.mask-size]': 'maskSizeValue()',
|
|
1007
|
+
'[style.-webkit-mask-size]': 'maskSizeValue()',
|
|
1008
|
+
'[style.mask-position]': 'maskPositionValue()',
|
|
1009
|
+
'[style.-webkit-mask-position]': 'maskPositionValue()',
|
|
1010
|
+
'[style.mask-repeat]': 'maskRepeatValue()',
|
|
1011
|
+
'[style.-webkit-mask-repeat]': 'maskRepeatValue()',
|
|
1012
|
+
},
|
|
1013
|
+
}]
|
|
1014
|
+
}], ctorParameters: () => [], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: true }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], decorative: [{ type: i0.Input, args: [{ isSignal: true, alias: "decorative", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
|
|
1015
|
+
|
|
1016
|
+
const iconSizeMap$1 = {
|
|
1017
|
+
sm: '1.5rem',
|
|
1018
|
+
md: '2rem',
|
|
1019
|
+
lg: '2.5rem',
|
|
1020
|
+
};
|
|
1021
|
+
// Glyph size for the internal `nbIcon`, sized to sit comfortably inside the
|
|
1022
|
+
// badge box defined by `size` above (roughly half the box).
|
|
1023
|
+
const iconGlyphMap = {
|
|
1024
|
+
sm: 'xs',
|
|
1025
|
+
md: 'sm',
|
|
1026
|
+
lg: 'md',
|
|
1027
|
+
};
|
|
1028
|
+
const iconRadiusMap = {
|
|
1029
|
+
none: '0',
|
|
1030
|
+
square: 'var(--nb-radius-sm, 0.25rem)',
|
|
1031
|
+
circle: '999px',
|
|
1032
|
+
};
|
|
1033
|
+
const iconToneMap = {
|
|
1034
|
+
default: { bg: 'transparent', color: 'currentColor' },
|
|
1035
|
+
inverse: { bg: 'var(--nb-foreground)', color: 'var(--nb-background)' },
|
|
1036
|
+
current: { bg: 'currentColor', color: 'var(--nb-background)' },
|
|
1037
|
+
};
|
|
1038
|
+
class NbButtonTrailingIcon {
|
|
1039
|
+
size = input(undefined, ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
1040
|
+
shape = input(undefined, ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
1041
|
+
tone = input(undefined, ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
1042
|
+
push = input('none', ...(ngDevMode ? [{ debugName: "push" }] : /* istanbul ignore next */ []));
|
|
1043
|
+
// Optional icon, given as an SVG/image URL. Rendered through nbIcon in mask
|
|
1044
|
+
// mode so it tints to the badge's foreground color. Omit to project your own
|
|
1045
|
+
// icon as content instead.
|
|
1046
|
+
icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
1047
|
+
sizeVal = computed(() => {
|
|
1048
|
+
const s = this.size();
|
|
1049
|
+
return s !== undefined ? iconSizeMap$1[s] : null;
|
|
1050
|
+
}, ...(ngDevMode ? [{ debugName: "sizeVal" }] : /* istanbul ignore next */ []));
|
|
1051
|
+
iconSize = computed(() => {
|
|
1052
|
+
const s = this.size();
|
|
1053
|
+
return s !== undefined ? iconGlyphMap[s] : 'sm';
|
|
1054
|
+
}, ...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
|
|
1055
|
+
radiusVal = computed(() => {
|
|
1056
|
+
const s = this.shape();
|
|
1057
|
+
return s !== undefined ? iconRadiusMap[s] : null;
|
|
1058
|
+
}, ...(ngDevMode ? [{ debugName: "radiusVal" }] : /* istanbul ignore next */ []));
|
|
1059
|
+
bgVal = computed(() => {
|
|
1060
|
+
const t = this.tone();
|
|
1061
|
+
return t !== undefined ? iconToneMap[t].bg : null;
|
|
1062
|
+
}, ...(ngDevMode ? [{ debugName: "bgVal" }] : /* istanbul ignore next */ []));
|
|
1063
|
+
colorVal = computed(() => {
|
|
1064
|
+
const t = this.tone();
|
|
1065
|
+
return t !== undefined ? iconToneMap[t].color : null;
|
|
1066
|
+
}, ...(ngDevMode ? [{ debugName: "colorVal" }] : /* istanbul ignore next */ []));
|
|
1067
|
+
classes = computed(() => nbClass('[&_svg]:pointer-events-none [&_svg]:shrink-0', this.push() === 'end' && 'ml-auto', this.size() !== undefined && 'inline-flex items-center justify-center shrink-0'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
1068
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbButtonTrailingIcon, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1069
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbButtonTrailingIcon, isStandalone: true, selector: "[nbButtonTrailingIcon]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, push: { classPropertyName: "push", publicName: "push", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-button-trailing-icon": "\"\"", "style.width": "sizeVal()", "style.height": "sizeVal()", "style.borderRadius": "radiusVal()", "style.background": "bgVal()", "style.color": "colorVal()" } }, ngImport: i0, template: `
|
|
1070
|
+
@if (icon(); as iconSrc) {
|
|
1071
|
+
<span nbIcon [src]="iconSrc" [size]="iconSize()" decorative></span>
|
|
1072
|
+
}
|
|
1073
|
+
<ng-content />
|
|
1074
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NbIcon, selector: "[nbIcon]", inputs: ["src", "mode", "size", "tone", "decorative", "label"], exportAs: ["nbIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1075
|
+
}
|
|
1076
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbButtonTrailingIcon, decorators: [{
|
|
1077
|
+
type: Component,
|
|
1078
|
+
args: [{
|
|
1079
|
+
selector: '[nbButtonTrailingIcon]',
|
|
1080
|
+
imports: [NbIcon],
|
|
1081
|
+
template: `
|
|
1082
|
+
@if (icon(); as iconSrc) {
|
|
1083
|
+
<span nbIcon [src]="iconSrc" [size]="iconSize()" decorative></span>
|
|
1084
|
+
}
|
|
1085
|
+
<ng-content />
|
|
1086
|
+
`,
|
|
1087
|
+
host: {
|
|
1088
|
+
'[class]': 'classes()',
|
|
1089
|
+
'[attr.data-nb-button-trailing-icon]': '""',
|
|
1090
|
+
'[style.width]': 'sizeVal()',
|
|
1091
|
+
'[style.height]': 'sizeVal()',
|
|
1092
|
+
'[style.borderRadius]': 'radiusVal()',
|
|
1093
|
+
'[style.background]': 'bgVal()',
|
|
1094
|
+
'[style.color]': 'colorVal()',
|
|
1095
|
+
},
|
|
1096
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1097
|
+
}]
|
|
1098
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], push: [{ type: i0.Input, args: [{ isSignal: true, alias: "push", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }] } });
|
|
359
1099
|
|
|
360
1100
|
class NbCard {
|
|
361
|
-
classes = nbClass('
|
|
1101
|
+
classes = nbClass('flex flex-col gap-6 py-6', 'font-medium');
|
|
362
1102
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
363
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: NbCard, isStandalone: true, selector: "nb-card", host: { properties: { "class": "classes", "attr.data-slot": "\"card\"" } },
|
|
1103
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: NbCard, isStandalone: true, selector: "nb-card", host: { properties: { "class": "classes", "attr.data-slot": "\"card\"" } }, providers: [
|
|
1104
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'card' },
|
|
1105
|
+
{
|
|
1106
|
+
provide: NB_STYLE_DEFAULTS,
|
|
1107
|
+
useValue: {
|
|
1108
|
+
tone: 'background',
|
|
1109
|
+
radius: 'lg',
|
|
1110
|
+
shadow: 'default',
|
|
1111
|
+
border: 'default',
|
|
1112
|
+
},
|
|
1113
|
+
},
|
|
1114
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
364
1115
|
}
|
|
365
1116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbCard, decorators: [{
|
|
366
1117
|
type: Component,
|
|
367
1118
|
args: [{
|
|
368
1119
|
selector: 'nb-card',
|
|
369
1120
|
template: `<ng-content />`,
|
|
1121
|
+
providers: [
|
|
1122
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'card' },
|
|
1123
|
+
{
|
|
1124
|
+
provide: NB_STYLE_DEFAULTS,
|
|
1125
|
+
useValue: {
|
|
1126
|
+
tone: 'background',
|
|
1127
|
+
radius: 'lg',
|
|
1128
|
+
shadow: 'default',
|
|
1129
|
+
border: 'default',
|
|
1130
|
+
},
|
|
1131
|
+
},
|
|
1132
|
+
],
|
|
1133
|
+
hostDirectives: [
|
|
1134
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
1135
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
1136
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
1137
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
1138
|
+
],
|
|
370
1139
|
host: {
|
|
371
1140
|
'[class]': 'classes',
|
|
372
1141
|
'[attr.data-slot]': '"card"',
|
|
@@ -482,10 +1251,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
482
1251
|
class NbImageCard {
|
|
483
1252
|
image = input.required(...(ngDevMode ? [{ debugName: "image" }] : /* istanbul ignore next */ []));
|
|
484
1253
|
alt = input.required(...(ngDevMode ? [{ debugName: "alt" }] : /* istanbul ignore next */ []));
|
|
485
|
-
classes = nbClass('
|
|
1254
|
+
classes = nbClass('flex flex-col overflow-hidden', 'font-medium');
|
|
486
1255
|
imageClasses = nbClass('block w-full h-auto');
|
|
487
1256
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbImageCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
488
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NbImageCard, isStandalone: true, selector: "nb-image-card", inputs: { image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: true, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "classes", "attr.data-slot": "\"image-card\"" } },
|
|
1257
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NbImageCard, isStandalone: true, selector: "nb-image-card", inputs: { image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: true, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "classes", "attr.data-slot": "\"image-card\"" } }, providers: [
|
|
1258
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'image-card' },
|
|
1259
|
+
{
|
|
1260
|
+
provide: NB_STYLE_DEFAULTS,
|
|
1261
|
+
useValue: {
|
|
1262
|
+
tone: 'background',
|
|
1263
|
+
radius: 'md',
|
|
1264
|
+
shadow: 'default',
|
|
1265
|
+
border: 'default',
|
|
1266
|
+
},
|
|
1267
|
+
},
|
|
1268
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0, template: `
|
|
489
1269
|
<img
|
|
490
1270
|
[src]="image()"
|
|
491
1271
|
[alt]="alt()"
|
|
@@ -510,6 +1290,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
510
1290
|
/>
|
|
511
1291
|
<ng-content select="nb-image-card-caption" />
|
|
512
1292
|
`,
|
|
1293
|
+
providers: [
|
|
1294
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'image-card' },
|
|
1295
|
+
{
|
|
1296
|
+
provide: NB_STYLE_DEFAULTS,
|
|
1297
|
+
useValue: {
|
|
1298
|
+
tone: 'background',
|
|
1299
|
+
radius: 'md',
|
|
1300
|
+
shadow: 'default',
|
|
1301
|
+
border: 'default',
|
|
1302
|
+
},
|
|
1303
|
+
},
|
|
1304
|
+
],
|
|
1305
|
+
hostDirectives: [
|
|
1306
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
1307
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
1308
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
1309
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
1310
|
+
],
|
|
513
1311
|
host: {
|
|
514
1312
|
'[class]': 'classes',
|
|
515
1313
|
'[attr.data-slot]': '"image-card"',
|
|
@@ -518,7 +1316,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
518
1316
|
}]
|
|
519
1317
|
}], propDecorators: { image: [{ type: i0.Input, args: [{ isSignal: true, alias: "image", required: true }] }], alt: [{ type: i0.Input, args: [{ isSignal: true, alias: "alt", required: true }] }] } });
|
|
520
1318
|
class NbImageCardCaption {
|
|
521
|
-
classes = nbClass('border-t-
|
|
1319
|
+
classes = nbClass('border-t-[length:var(--nb-border-width-token,var(--_nb-border-width-default))] border-t-[var(--_nb-tone-border-color-token,var(--_nb-tone-border-color-default))]', 'px-6 py-4 text-center font-bold text-base');
|
|
522
1320
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbImageCardCaption, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
523
1321
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: NbImageCardCaption, isStandalone: true, selector: "nb-image-card-caption", host: { properties: { "class": "classes", "attr.data-slot": "\"image-card-caption\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
524
1322
|
}
|
|
@@ -653,7 +1451,7 @@ const NB_INPUT_PREFIX = new InjectionToken('NB_INPUT_PREFIX');
|
|
|
653
1451
|
const NB_INPUT_SUFFIX = new InjectionToken('NB_INPUT_SUFFIX');
|
|
654
1452
|
|
|
655
1453
|
class NbInput {
|
|
656
|
-
size = input('
|
|
1454
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
657
1455
|
group = inject(NB_INPUT_GROUP, { optional: true });
|
|
658
1456
|
classes = computed(() => {
|
|
659
1457
|
const inGroup = this.group !== null;
|
|
@@ -702,7 +1500,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
702
1500
|
|
|
703
1501
|
class NbTitle {
|
|
704
1502
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
705
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NbTitle, isStandalone: true, selector: "[nbTitle]", host: { properties: { "attr.data-nb-title": "\"\"" } }, ngImport: i0 });
|
|
1503
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NbTitle, isStandalone: true, selector: "[nbTitle]", host: { properties: { "attr.data-nb-title": "\"\"", "attr.data-underline": "\"wave\"" } }, ngImport: i0 });
|
|
706
1504
|
}
|
|
707
1505
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbTitle, decorators: [{
|
|
708
1506
|
type: Directive,
|
|
@@ -710,12 +1508,150 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
710
1508
|
selector: '[nbTitle]',
|
|
711
1509
|
host: {
|
|
712
1510
|
'[attr.data-nb-title]': '""',
|
|
1511
|
+
'[attr.data-underline]': '"wave"',
|
|
713
1512
|
},
|
|
714
1513
|
}]
|
|
715
1514
|
}] });
|
|
716
1515
|
|
|
1516
|
+
const SIZE_MAP = {
|
|
1517
|
+
sm: '2rem',
|
|
1518
|
+
md: '3rem',
|
|
1519
|
+
lg: '3.75rem',
|
|
1520
|
+
xl: '4.75rem',
|
|
1521
|
+
};
|
|
1522
|
+
// Fluid scale: each size becomes a viewport-based clamp whose max matches the
|
|
1523
|
+
// fixed size above. Viewport units (vw) are used rather than container query
|
|
1524
|
+
// units so the scale is safe with or without an explicit container — the
|
|
1525
|
+
// library owns the min/preferred/max formula; users only opt in with `fluid`.
|
|
1526
|
+
const FLUID_MAP = {
|
|
1527
|
+
sm: 'clamp(1.75rem, 1.2rem + 2.75vw, 2rem)',
|
|
1528
|
+
md: 'clamp(2.25rem, 1.5rem + 3.75vw, 3rem)',
|
|
1529
|
+
lg: 'clamp(2.75rem, 1.8rem + 4.75vw, 3.75rem)',
|
|
1530
|
+
xl: 'clamp(3.25rem, 2rem + 6.25vw, 4.75rem)',
|
|
1531
|
+
};
|
|
1532
|
+
const TRACKING_MAP = {
|
|
1533
|
+
normal: '0',
|
|
1534
|
+
tight: '-0.025em',
|
|
1535
|
+
tighter: '-0.08em',
|
|
1536
|
+
};
|
|
1537
|
+
const LEADING_MAP = {
|
|
1538
|
+
none: '1',
|
|
1539
|
+
tight: '0.9',
|
|
1540
|
+
display: '0.84',
|
|
1541
|
+
};
|
|
1542
|
+
class NbDisplay {
|
|
1543
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
1544
|
+
weight = input('black', ...(ngDevMode ? [{ debugName: "weight" }] : /* istanbul ignore next */ []));
|
|
1545
|
+
fluid = input(false, { ...(ngDevMode ? { debugName: "fluid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1546
|
+
tracking = input('tight', ...(ngDevMode ? [{ debugName: "tracking" }] : /* istanbul ignore next */ []));
|
|
1547
|
+
leading = input('none', ...(ngDevMode ? [{ debugName: "leading" }] : /* istanbul ignore next */ []));
|
|
1548
|
+
// underline / underlineGap / underlineWidth / reset → composed capabilities
|
|
1549
|
+
fontSize = computed(() => {
|
|
1550
|
+
const base = this.fluid() ? FLUID_MAP[this.size()] : SIZE_MAP[this.size()];
|
|
1551
|
+
return `var(--nb-display-size, ${base})`;
|
|
1552
|
+
}, ...(ngDevMode ? [{ debugName: "fontSize" }] : /* istanbul ignore next */ []));
|
|
1553
|
+
weightValue = computed(() => nbFontWeightValue(this.weight()), ...(ngDevMode ? [{ debugName: "weightValue" }] : /* istanbul ignore next */ []));
|
|
1554
|
+
trackingValue = computed(() => TRACKING_MAP[this.tracking()], ...(ngDevMode ? [{ debugName: "trackingValue" }] : /* istanbul ignore next */ []));
|
|
1555
|
+
leadingValue = computed(() => LEADING_MAP[this.leading()], ...(ngDevMode ? [{ debugName: "leadingValue" }] : /* istanbul ignore next */ []));
|
|
1556
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbDisplay, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1557
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbDisplay, isStandalone: true, selector: "[nbDisplay]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, weight: { classPropertyName: "weight", publicName: "weight", isSignal: true, isRequired: false, transformFunction: null }, fluid: { classPropertyName: "fluid", publicName: "fluid", isSignal: true, isRequired: false, transformFunction: null }, tracking: { classPropertyName: "tracking", publicName: "tracking", isSignal: true, isRequired: false, transformFunction: null }, leading: { classPropertyName: "leading", publicName: "leading", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.font-size": "fontSize()", "style.font-weight": "weightValue()", "style.color": "\"var(--nb-display-color, currentColor)\"", "style.letter-spacing": "trackingValue()", "style.line-height": "leadingValue()", "attr.data-nb-display": "\"\"" } }, hostDirectives: [{ directive: NbUnderlineCapability, inputs: ["underline", "underline", "underlineGap", "underlineGap", "underlineWidth", "underlineWidth"] }, { directive: NbResetMarginCapability, inputs: ["reset", "reset"] }], ngImport: i0 });
|
|
1558
|
+
}
|
|
1559
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbDisplay, decorators: [{
|
|
1560
|
+
type: Directive,
|
|
1561
|
+
args: [{
|
|
1562
|
+
selector: '[nbDisplay]',
|
|
1563
|
+
hostDirectives: [
|
|
1564
|
+
// underline variant + optional gap/width overrides → data-underline + CSS vars
|
|
1565
|
+
{
|
|
1566
|
+
directive: NbUnderlineCapability,
|
|
1567
|
+
inputs: ['underline', 'underlineGap', 'underlineWidth'],
|
|
1568
|
+
},
|
|
1569
|
+
// reset input → margin: 0 (removes native heading margin)
|
|
1570
|
+
{ directive: NbResetMarginCapability, inputs: ['reset'] },
|
|
1571
|
+
],
|
|
1572
|
+
host: {
|
|
1573
|
+
'[style.font-size]': 'fontSize()',
|
|
1574
|
+
'[style.font-weight]': 'weightValue()',
|
|
1575
|
+
'[style.color]': '"var(--nb-display-color, currentColor)"',
|
|
1576
|
+
'[style.letter-spacing]': 'trackingValue()',
|
|
1577
|
+
'[style.line-height]': 'leadingValue()',
|
|
1578
|
+
'[attr.data-nb-display]': '""',
|
|
1579
|
+
},
|
|
1580
|
+
}]
|
|
1581
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], weight: [{ type: i0.Input, args: [{ isSignal: true, alias: "weight", required: false }] }], fluid: [{ type: i0.Input, args: [{ isSignal: true, alias: "fluid", required: false }] }], tracking: [{ type: i0.Input, args: [{ isSignal: true, alias: "tracking", required: false }] }], leading: [{ type: i0.Input, args: [{ isSignal: true, alias: "leading", required: false }] }] } });
|
|
1582
|
+
|
|
1583
|
+
/**
|
|
1584
|
+
* Typography context. Picks a font *role* and writes the resolved stack as
|
|
1585
|
+
* `font-family` on the host so every descendant primitive (nbText, nbDisplay,
|
|
1586
|
+
* nbButton, nbChip, nbMediaItemTitle, …) inherits it through the cascade — no
|
|
1587
|
+
* raw font-family strings in templates.
|
|
1588
|
+
*
|
|
1589
|
+
* Precedence falls out of the cascade: a nested context overrides an outer one
|
|
1590
|
+
* (closest wins), and an inline token override (`--nb-font-accent: …`) wins over
|
|
1591
|
+
* the preset because the resolved value reads that token first.
|
|
1592
|
+
*
|
|
1593
|
+
* Also available as the `typography` input on nbSurface, which composes this
|
|
1594
|
+
* directive directly.
|
|
1595
|
+
*/
|
|
1596
|
+
class NbTypography {
|
|
1597
|
+
font = input('inherit', ...(ngDevMode ? [{ debugName: "font" }] : /* istanbul ignore next */ []));
|
|
1598
|
+
fontValue = computed(() => nbTypographyFontValue(this.font()), ...(ngDevMode ? [{ debugName: "fontValue" }] : /* istanbul ignore next */ []));
|
|
1599
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbTypography, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1600
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbTypography, isStandalone: true, selector: "[nbTypography]", inputs: { font: { classPropertyName: "font", publicName: "font", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-nb-typography": "font()", "style.--nb-typography-font": "fontValue()", "style.font-family": "fontValue()" } }, exportAs: ["nbTypography"], ngImport: i0 });
|
|
1601
|
+
}
|
|
1602
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbTypography, decorators: [{
|
|
1603
|
+
type: Directive,
|
|
1604
|
+
args: [{
|
|
1605
|
+
selector: '[nbTypography]',
|
|
1606
|
+
exportAs: 'nbTypography',
|
|
1607
|
+
host: {
|
|
1608
|
+
'[attr.data-nb-typography]': 'font()',
|
|
1609
|
+
'[style.--nb-typography-font]': 'fontValue()',
|
|
1610
|
+
'[style.font-family]': 'fontValue()',
|
|
1611
|
+
},
|
|
1612
|
+
}]
|
|
1613
|
+
}], propDecorators: { font: [{ type: i0.Input, args: [{ isSignal: true, alias: "font", required: false }] }] } });
|
|
1614
|
+
|
|
1615
|
+
const THICKNESS = {
|
|
1616
|
+
solid: '2px',
|
|
1617
|
+
dashed: '2px',
|
|
1618
|
+
thick: '4px',
|
|
1619
|
+
};
|
|
1620
|
+
class NbSeparator {
|
|
1621
|
+
orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
1622
|
+
variant = input('solid', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
1623
|
+
isHorizontal = computed(() => this.orientation() === 'horizontal', ...(ngDevMode ? [{ debugName: "isHorizontal" }] : /* istanbul ignore next */ []));
|
|
1624
|
+
isVertical = computed(() => this.orientation() === 'vertical', ...(ngDevMode ? [{ debugName: "isVertical" }] : /* istanbul ignore next */ []));
|
|
1625
|
+
borderLine = computed(() => {
|
|
1626
|
+
const v = this.variant();
|
|
1627
|
+
const thickness = `var(--nb-separator-thickness, ${THICKNESS[v]})`;
|
|
1628
|
+
const style = v === 'dashed' ? 'dashed' : 'solid';
|
|
1629
|
+
return `${thickness} ${style} var(--nb-separator-color, var(--nb-border))`;
|
|
1630
|
+
}, ...(ngDevMode ? [{ debugName: "borderLine" }] : /* istanbul ignore next */ []));
|
|
1631
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1632
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbSeparator, isStandalone: true, selector: "hr[nbSeparator]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-nb-separator": "\"\"", "attr.aria-orientation": "orientation()", "style.margin": "\"0\"", "style.border-top": "isHorizontal() ? borderLine() : \"none\"", "style.border-bottom": "\"none\"", "style.border-left": "isVertical() ? borderLine() : \"none\"", "style.border-right": "\"none\"", "style.width": "isVertical() ? \"0\" : \"100%\"", "style.height": "isVertical() ? \"auto\" : \"0\"", "style.align-self": "isVertical() ? \"stretch\" : \"auto\"" } }, ngImport: i0 });
|
|
1633
|
+
}
|
|
1634
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSeparator, decorators: [{
|
|
1635
|
+
type: Directive,
|
|
1636
|
+
args: [{
|
|
1637
|
+
selector: 'hr[nbSeparator]',
|
|
1638
|
+
host: {
|
|
1639
|
+
'[attr.data-nb-separator]': '""',
|
|
1640
|
+
'[attr.aria-orientation]': 'orientation()',
|
|
1641
|
+
'[style.margin]': '"0"',
|
|
1642
|
+
'[style.border-top]': 'isHorizontal() ? borderLine() : "none"',
|
|
1643
|
+
'[style.border-bottom]': '"none"',
|
|
1644
|
+
'[style.border-left]': 'isVertical() ? borderLine() : "none"',
|
|
1645
|
+
'[style.border-right]': '"none"',
|
|
1646
|
+
'[style.width]': 'isVertical() ? "0" : "100%"',
|
|
1647
|
+
'[style.height]': 'isVertical() ? "auto" : "0"',
|
|
1648
|
+
'[style.align-self]': 'isVertical() ? "stretch" : "auto"',
|
|
1649
|
+
},
|
|
1650
|
+
}]
|
|
1651
|
+
}], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
1652
|
+
|
|
717
1653
|
class NbTextarea {
|
|
718
|
-
size = input('
|
|
1654
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
719
1655
|
group = inject(NB_INPUT_GROUP, { optional: true });
|
|
720
1656
|
classes = computed(() => {
|
|
721
1657
|
const inGroup = this.group !== null;
|
|
@@ -1134,38 +2070,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1134
2070
|
}], propDecorators: { placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledby: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], options: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => NbSelectOption), { isSignal: true }] }], trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }] } });
|
|
1135
2071
|
|
|
1136
2072
|
class NbBadge {
|
|
1137
|
-
|
|
1138
|
-
classes = computed(() => nbClass('inline-flex items-center rounded-(--nb-badge-radius) border-2 border-(--nb-badge-border)', 'bg-(--nb-badge-bg) text-(--nb-badge-fg)', '[--nb-badge-bg:#fff]', '[--nb-badge-fg:var(--nb-foreground)]', '[--nb-badge-border:var(--nb-border)]', '[--nb-badge-radius:9999px]', '[--nb-badge-shadow:2px_2px_0_var(--nb-shadow)]', 'px-2.5 py-0.5 text-xs font-bold', 'shadow-[var(--nb-badge-shadow)]', this.variantClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
1139
|
-
variantClass() {
|
|
1140
|
-
const map = {
|
|
1141
|
-
default: '',
|
|
1142
|
-
secondary: '[--nb-badge-bg:var(--nb-accent)] [--nb-badge-fg:var(--nb-accent-foreground)]',
|
|
1143
|
-
success: '[--nb-badge-bg:var(--nb-success)] [--nb-badge-fg:var(--nb-success-foreground)]',
|
|
1144
|
-
warning: '[--nb-badge-bg:var(--nb-warning)] [--nb-badge-fg:var(--nb-warning-foreground)]',
|
|
1145
|
-
danger: '[--nb-badge-bg:var(--nb-danger)] [--nb-badge-fg:var(--nb-danger-foreground)]',
|
|
1146
|
-
};
|
|
1147
|
-
return map[this.variant()];
|
|
1148
|
-
}
|
|
2073
|
+
classes = nbClass('inline-flex items-center gap-1.5', 'px-2.5 py-0.5 text-xs font-bold');
|
|
1149
2074
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbBadge, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1150
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
2075
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NbBadge, isStandalone: true, selector: "span[nbBadge]", host: { properties: { "class": "classes", "attr.data-nb-badge": "\"\"" } }, providers: [
|
|
2076
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'badge' },
|
|
2077
|
+
{
|
|
2078
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2079
|
+
useValue: {
|
|
2080
|
+
tone: 'white',
|
|
2081
|
+
radius: 'full',
|
|
2082
|
+
shadow: 'sm',
|
|
2083
|
+
border: 'default',
|
|
2084
|
+
},
|
|
2085
|
+
},
|
|
2086
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0 });
|
|
1151
2087
|
}
|
|
1152
2088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbBadge, decorators: [{
|
|
1153
2089
|
type: Directive,
|
|
1154
2090
|
args: [{
|
|
1155
2091
|
selector: 'span[nbBadge]',
|
|
2092
|
+
providers: [
|
|
2093
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'badge' },
|
|
2094
|
+
{
|
|
2095
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2096
|
+
useValue: {
|
|
2097
|
+
tone: 'white',
|
|
2098
|
+
radius: 'full',
|
|
2099
|
+
shadow: 'sm',
|
|
2100
|
+
border: 'default',
|
|
2101
|
+
},
|
|
2102
|
+
},
|
|
2103
|
+
],
|
|
2104
|
+
hostDirectives: [
|
|
2105
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
2106
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
2107
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
2108
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
2109
|
+
],
|
|
1156
2110
|
host: {
|
|
1157
|
-
'[class]': 'classes
|
|
1158
|
-
'[attr.data-
|
|
2111
|
+
'[class]': 'classes',
|
|
2112
|
+
'[attr.data-nb-badge]': '""',
|
|
1159
2113
|
},
|
|
1160
2114
|
}]
|
|
1161
|
-
}]
|
|
2115
|
+
}] });
|
|
1162
2116
|
|
|
1163
2117
|
class NbAvatar {
|
|
1164
2118
|
src = input(undefined, ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
|
|
1165
2119
|
alt = input('', ...(ngDevMode ? [{ debugName: "alt" }] : /* istanbul ignore next */ []));
|
|
1166
|
-
classes = nbClass('
|
|
2120
|
+
classes = nbClass('relative inline-flex h-10 w-10 shrink-0 overflow-hidden', 'font-bold text-sm items-center justify-center');
|
|
1167
2121
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1168
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbAvatar, isStandalone: true, selector: "nb-avatar", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes", "attr.data-slot": "\"avatar\"", "attr.role": "\"img\"", "attr.aria-label": "alt()" } },
|
|
2122
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbAvatar, isStandalone: true, selector: "nb-avatar", inputs: { src: { classPropertyName: "src", publicName: "src", isSignal: true, isRequired: false, transformFunction: null }, alt: { classPropertyName: "alt", publicName: "alt", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes", "attr.data-slot": "\"avatar\"", "attr.role": "\"img\"", "attr.aria-label": "alt()" } }, providers: [
|
|
2123
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'avatar' },
|
|
2124
|
+
{
|
|
2125
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2126
|
+
useValue: {
|
|
2127
|
+
tone: 'surface',
|
|
2128
|
+
radius: 'full',
|
|
2129
|
+
shadow: 'sm',
|
|
2130
|
+
border: 'default',
|
|
2131
|
+
},
|
|
2132
|
+
},
|
|
2133
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0, template: `
|
|
1169
2134
|
@if (src()) {
|
|
1170
2135
|
<img [src]="src()" [alt]="alt()" class="h-full w-full object-cover" />
|
|
1171
2136
|
} @else {
|
|
@@ -1184,6 +2149,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1184
2149
|
<ng-content />
|
|
1185
2150
|
}
|
|
1186
2151
|
`,
|
|
2152
|
+
providers: [
|
|
2153
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'avatar' },
|
|
2154
|
+
{
|
|
2155
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2156
|
+
useValue: {
|
|
2157
|
+
tone: 'surface',
|
|
2158
|
+
radius: 'full',
|
|
2159
|
+
shadow: 'sm',
|
|
2160
|
+
border: 'default',
|
|
2161
|
+
},
|
|
2162
|
+
},
|
|
2163
|
+
],
|
|
2164
|
+
hostDirectives: [
|
|
2165
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
2166
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
2167
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
2168
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
2169
|
+
],
|
|
1187
2170
|
host: {
|
|
1188
2171
|
'[class]': 'classes',
|
|
1189
2172
|
'[attr.data-slot]': '"avatar"',
|
|
@@ -1194,12 +2177,163 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1194
2177
|
}]
|
|
1195
2178
|
}], propDecorators: { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], alt: [{ type: i0.Input, args: [{ isSignal: true, alias: "alt", required: false }] }] } });
|
|
1196
2179
|
|
|
2180
|
+
class NbMediaFrame {
|
|
2181
|
+
ratio = input('auto', ...(ngDevMode ? [{ debugName: "ratio" }] : /* istanbul ignore next */ []));
|
|
2182
|
+
fit = input('cover', ...(ngDevMode ? [{ debugName: "fit" }] : /* istanbul ignore next */ []));
|
|
2183
|
+
classes = computed(() => nbClass('relative isolate block overflow-hidden', '[&>img]:h-full [&>img]:w-full', '[&>video]:h-full [&>video]:w-full', '[&>picture]:block [&>picture]:h-full [&>picture]:w-full', '[&>picture>img]:h-full [&>picture>img]:w-full', this.ratioClass(), this.fitClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
2184
|
+
ratioClass() {
|
|
2185
|
+
const map = {
|
|
2186
|
+
auto: '',
|
|
2187
|
+
'1/1': 'aspect-square',
|
|
2188
|
+
'3/4': 'aspect-[3/4]',
|
|
2189
|
+
'4/3': 'aspect-[4/3]',
|
|
2190
|
+
'3/2': 'aspect-[3/2]',
|
|
2191
|
+
'16/9': 'aspect-video',
|
|
2192
|
+
'21/9': 'aspect-[21/9]',
|
|
2193
|
+
};
|
|
2194
|
+
return map[this.ratio()];
|
|
2195
|
+
}
|
|
2196
|
+
fitClass() {
|
|
2197
|
+
const map = {
|
|
2198
|
+
cover: '[&>img]:object-cover [&>video]:object-cover [&>picture>img]:object-cover',
|
|
2199
|
+
contain: '[&>img]:object-contain [&>video]:object-contain [&>picture>img]:object-contain',
|
|
2200
|
+
fill: '[&>img]:object-fill [&>video]:object-fill [&>picture>img]:object-fill',
|
|
2201
|
+
};
|
|
2202
|
+
return map[this.fit()];
|
|
2203
|
+
}
|
|
2204
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaFrame, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2205
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbMediaFrame, isStandalone: true, selector: "[nbMediaFrame]", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null }, fit: { classPropertyName: "fit", publicName: "fit", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-media-frame": "\"\"", "attr.data-ratio": "ratio()", "attr.data-fit": "fit()" } }, providers: [
|
|
2206
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'media-frame' },
|
|
2207
|
+
{
|
|
2208
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2209
|
+
useValue: {
|
|
2210
|
+
tone: 'default',
|
|
2211
|
+
radius: 'lg',
|
|
2212
|
+
shadow: 'none',
|
|
2213
|
+
border: 'default',
|
|
2214
|
+
},
|
|
2215
|
+
},
|
|
2216
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0 });
|
|
2217
|
+
}
|
|
2218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaFrame, decorators: [{
|
|
2219
|
+
type: Directive,
|
|
2220
|
+
args: [{
|
|
2221
|
+
selector: '[nbMediaFrame]',
|
|
2222
|
+
providers: [
|
|
2223
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'media-frame' },
|
|
2224
|
+
{
|
|
2225
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2226
|
+
useValue: {
|
|
2227
|
+
tone: 'default',
|
|
2228
|
+
radius: 'lg',
|
|
2229
|
+
shadow: 'none',
|
|
2230
|
+
border: 'default',
|
|
2231
|
+
},
|
|
2232
|
+
},
|
|
2233
|
+
],
|
|
2234
|
+
hostDirectives: [
|
|
2235
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
2236
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
2237
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
2238
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
2239
|
+
],
|
|
2240
|
+
host: {
|
|
2241
|
+
'[class]': 'classes()',
|
|
2242
|
+
'[attr.data-nb-media-frame]': '""',
|
|
2243
|
+
'[attr.data-ratio]': 'ratio()',
|
|
2244
|
+
'[attr.data-fit]': 'fit()',
|
|
2245
|
+
},
|
|
2246
|
+
}]
|
|
2247
|
+
}], propDecorators: { ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], fit: [{ type: i0.Input, args: [{ isSignal: true, alias: "fit", required: false }] }] } });
|
|
2248
|
+
|
|
2249
|
+
class NbStat {
|
|
2250
|
+
value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
2251
|
+
label = input.required(...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
2252
|
+
direction = input('column', ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
|
|
2253
|
+
classes = computed(() => nbClass('[--nb-stat-value-size:1.5rem]', '[--nb-stat-label-size:0.625rem]', '[--nb-stat-label-fg:var(--nb-foreground)]', 'inline-flex items-center gap-2', this.direction() === 'row' ? 'flex-row' : 'flex-col'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
2254
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStat, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2255
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NbStat, isStandalone: true, selector: "nb-stat", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-slot": "\"stat\"" } }, ngImport: i0, template: `
|
|
2256
|
+
<ng-content select="[slot=icon]" />
|
|
2257
|
+
<span class="flex flex-col gap-0.5">
|
|
2258
|
+
<span class="text-[length:var(--nb-stat-value-size)] font-black leading-none tracking-tight">
|
|
2259
|
+
{{ value() }}
|
|
2260
|
+
</span>
|
|
2261
|
+
<span class="text-[length:var(--nb-stat-label-size)] font-bold text-(--nb-stat-label-fg) uppercase tracking-wide">
|
|
2262
|
+
{{ label() }}
|
|
2263
|
+
</span>
|
|
2264
|
+
</span>
|
|
2265
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2266
|
+
}
|
|
2267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStat, decorators: [{
|
|
2268
|
+
type: Component,
|
|
2269
|
+
args: [{
|
|
2270
|
+
selector: 'nb-stat',
|
|
2271
|
+
template: `
|
|
2272
|
+
<ng-content select="[slot=icon]" />
|
|
2273
|
+
<span class="flex flex-col gap-0.5">
|
|
2274
|
+
<span class="text-[length:var(--nb-stat-value-size)] font-black leading-none tracking-tight">
|
|
2275
|
+
{{ value() }}
|
|
2276
|
+
</span>
|
|
2277
|
+
<span class="text-[length:var(--nb-stat-label-size)] font-bold text-(--nb-stat-label-fg) uppercase tracking-wide">
|
|
2278
|
+
{{ label() }}
|
|
2279
|
+
</span>
|
|
2280
|
+
</span>
|
|
2281
|
+
`,
|
|
2282
|
+
host: {
|
|
2283
|
+
'[class]': 'classes()',
|
|
2284
|
+
'[attr.data-slot]': '"stat"',
|
|
2285
|
+
},
|
|
2286
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2287
|
+
}]
|
|
2288
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }] } });
|
|
2289
|
+
|
|
2290
|
+
class NbRating {
|
|
2291
|
+
value = input(0, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
2292
|
+
max = input(5, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
2293
|
+
count = input(undefined, ...(ngDevMode ? [{ debugName: "count" }] : /* istanbul ignore next */ []));
|
|
2294
|
+
stars = computed(() => Array.from({ length: this.max() }, (_, i) => i + 1), ...(ngDevMode ? [{ debugName: "stars" }] : /* istanbul ignore next */ []));
|
|
2295
|
+
filled = computed(() => Math.round(Math.min(Math.max(this.value(), 0), this.max())), ...(ngDevMode ? [{ debugName: "filled" }] : /* istanbul ignore next */ []));
|
|
2296
|
+
ariaLabel = computed(() => `${this.value()} out of ${this.max()} stars`, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
2297
|
+
classes = nbClass('[--nb-rating-filled:#f59e0b]', '[--nb-rating-empty:var(--nb-border)]', '[--nb-rating-size:1.25rem]', 'inline-flex items-center gap-0.5');
|
|
2298
|
+
filledClass = nbClass('text-(--nb-rating-filled)', 'text-[length:var(--nb-rating-size)]', 'leading-none');
|
|
2299
|
+
emptyClass = nbClass('text-(--nb-rating-empty)', 'text-[length:var(--nb-rating-size)]', 'leading-none');
|
|
2300
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbRating, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2301
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbRating, isStandalone: true, selector: "nb-rating", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes", "attr.aria-label": "ariaLabel()", "attr.role": "\"img\"" } }, ngImport: i0, template: `
|
|
2302
|
+
@for (i of stars(); track i) {
|
|
2303
|
+
<span [class]="i <= filled() ? filledClass : emptyClass">{{ i <= filled() ? '★' : '☆' }}</span>
|
|
2304
|
+
}
|
|
2305
|
+
@if (count() !== undefined) {
|
|
2306
|
+
<span class="text-xs font-bold text-(--nb-rating-empty) ml-0.5">({{ count() }})</span>
|
|
2307
|
+
}
|
|
2308
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2309
|
+
}
|
|
2310
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbRating, decorators: [{
|
|
2311
|
+
type: Component,
|
|
2312
|
+
args: [{
|
|
2313
|
+
selector: 'nb-rating',
|
|
2314
|
+
template: `
|
|
2315
|
+
@for (i of stars(); track i) {
|
|
2316
|
+
<span [class]="i <= filled() ? filledClass : emptyClass">{{ i <= filled() ? '★' : '☆' }}</span>
|
|
2317
|
+
}
|
|
2318
|
+
@if (count() !== undefined) {
|
|
2319
|
+
<span class="text-xs font-bold text-(--nb-rating-empty) ml-0.5">({{ count() }})</span>
|
|
2320
|
+
}
|
|
2321
|
+
`,
|
|
2322
|
+
host: {
|
|
2323
|
+
'[class]': 'classes',
|
|
2324
|
+
'[attr.aria-label]': 'ariaLabel()',
|
|
2325
|
+
'[attr.role]': '"img"',
|
|
2326
|
+
},
|
|
2327
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2328
|
+
}]
|
|
2329
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }] } });
|
|
2330
|
+
|
|
1197
2331
|
const NB_DIALOG = new InjectionToken('NB_DIALOG');
|
|
1198
2332
|
|
|
1199
2333
|
class NbDialog {
|
|
1200
2334
|
isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
|
|
1201
2335
|
dialogEl = viewChild.required('dialogEl');
|
|
1202
|
-
classes = nbClass('
|
|
2336
|
+
classes = nbClass('w-[calc(100vw-2rem)] max-w-2xl', 'nb-tone', 'm-auto p-0 max-h-[90vh] overflow-x-hidden', 'open:flex open:flex-col');
|
|
1203
2337
|
open() {
|
|
1204
2338
|
if (this.isBrowser) {
|
|
1205
2339
|
this.dialogEl().nativeElement.showModal();
|
|
@@ -1216,7 +2350,19 @@ class NbDialog {
|
|
|
1216
2350
|
}
|
|
1217
2351
|
}
|
|
1218
2352
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1219
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NbDialog, isStandalone: true, selector: "nb-dialog", host: { properties: { "attr.data-slot": "\"dialog\"" } }, providers: [
|
|
2353
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: NbDialog, isStandalone: true, selector: "nb-dialog", host: { properties: { "attr.data-slot": "\"dialog\"" } }, providers: [
|
|
2354
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'dialog' },
|
|
2355
|
+
{
|
|
2356
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2357
|
+
useValue: {
|
|
2358
|
+
tone: 'white',
|
|
2359
|
+
radius: 'sm',
|
|
2360
|
+
shadow: 'hard',
|
|
2361
|
+
border: 'default',
|
|
2362
|
+
},
|
|
2363
|
+
},
|
|
2364
|
+
{ provide: NB_DIALOG, useExisting: NbDialog },
|
|
2365
|
+
], viewQueries: [{ propertyName: "dialogEl", first: true, predicate: ["dialogEl"], descendants: true, isSignal: true }], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0, template: `
|
|
1220
2366
|
<dialog
|
|
1221
2367
|
#dialogEl
|
|
1222
2368
|
data-nb-dialog
|
|
@@ -1241,8 +2387,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1241
2387
|
<ng-content />
|
|
1242
2388
|
</dialog>
|
|
1243
2389
|
`,
|
|
2390
|
+
providers: [
|
|
2391
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'dialog' },
|
|
2392
|
+
{
|
|
2393
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2394
|
+
useValue: {
|
|
2395
|
+
tone: 'white',
|
|
2396
|
+
radius: 'sm',
|
|
2397
|
+
shadow: 'hard',
|
|
2398
|
+
border: 'default',
|
|
2399
|
+
},
|
|
2400
|
+
},
|
|
2401
|
+
{ provide: NB_DIALOG, useExisting: NbDialog },
|
|
2402
|
+
],
|
|
2403
|
+
hostDirectives: [
|
|
2404
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
2405
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
2406
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
2407
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
2408
|
+
],
|
|
1244
2409
|
host: { '[attr.data-slot]': '"dialog"' },
|
|
1245
|
-
providers: [{ provide: NB_DIALOG, useExisting: NbDialog }],
|
|
1246
2410
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1247
2411
|
}]
|
|
1248
2412
|
}], propDecorators: { dialogEl: [{ type: i0.ViewChild, args: ['dialogEl', { isSignal: true }] }] } });
|
|
@@ -1326,11 +2490,1464 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
1326
2490
|
}]
|
|
1327
2491
|
}] });
|
|
1328
2492
|
|
|
2493
|
+
const STATUS_DOT_SIZE_MAP = {
|
|
2494
|
+
xs: '8px',
|
|
2495
|
+
sm: '10px',
|
|
2496
|
+
md: '12px',
|
|
2497
|
+
lg: '16px',
|
|
2498
|
+
};
|
|
2499
|
+
class NbStatusDot {
|
|
2500
|
+
state = input('online', ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
2501
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
2502
|
+
classes = computed(() => nbClass('inline-block shrink-0 rounded-full border-2 border-(--nb-border)', 'w-(--nb-status-dot-size) h-(--nb-status-dot-size)', this.stateClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
2503
|
+
ariaLabel = computed(() => `Status: ${this.state()}`, ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
2504
|
+
sizeVar = computed(() => STATUS_DOT_SIZE_MAP[this.size()], ...(ngDevMode ? [{ debugName: "sizeVar" }] : /* istanbul ignore next */ []));
|
|
2505
|
+
stateClass() {
|
|
2506
|
+
const map = {
|
|
2507
|
+
online: 'bg-(--nb-success)',
|
|
2508
|
+
offline: 'bg-(--nb-secondary-background)',
|
|
2509
|
+
live: 'bg-(--nb-danger) animate-pulse',
|
|
2510
|
+
};
|
|
2511
|
+
return map[this.state()];
|
|
2512
|
+
}
|
|
2513
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStatusDot, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2514
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbStatusDot, isStandalone: true, selector: "span[nbStatusDot]", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "style.--nb-status-dot-size": "sizeVar()", "attr.role": "\"img\"", "attr.aria-label": "ariaLabel()", "attr.data-state": "state()", "attr.data-size": "size()", "attr.data-nb-status-dot": "\"\"" } }, providers: [
|
|
2515
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'status-dot' },
|
|
2516
|
+
{
|
|
2517
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2518
|
+
useValue: { radius: 'md' },
|
|
2519
|
+
},
|
|
2520
|
+
], hostDirectives: [{ directive: NbRadiusCapability, inputs: ["radius", "radius"] }], ngImport: i0 });
|
|
2521
|
+
}
|
|
2522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStatusDot, decorators: [{
|
|
2523
|
+
type: Directive,
|
|
2524
|
+
args: [{
|
|
2525
|
+
selector: 'span[nbStatusDot]',
|
|
2526
|
+
providers: [
|
|
2527
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'status-dot' },
|
|
2528
|
+
{
|
|
2529
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2530
|
+
useValue: { radius: 'md' },
|
|
2531
|
+
},
|
|
2532
|
+
],
|
|
2533
|
+
hostDirectives: [
|
|
2534
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
2535
|
+
],
|
|
2536
|
+
host: {
|
|
2537
|
+
'[class]': 'classes()',
|
|
2538
|
+
'[style.--nb-status-dot-size]': 'sizeVar()',
|
|
2539
|
+
'[attr.role]': '"img"',
|
|
2540
|
+
'[attr.aria-label]': 'ariaLabel()',
|
|
2541
|
+
'[attr.data-state]': 'state()',
|
|
2542
|
+
'[attr.data-size]': 'size()',
|
|
2543
|
+
'[attr.data-nb-status-dot]': '""',
|
|
2544
|
+
},
|
|
2545
|
+
}]
|
|
2546
|
+
}], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
|
|
2547
|
+
|
|
2548
|
+
const paddingMap = {
|
|
2549
|
+
none: 'px-0 py-0',
|
|
2550
|
+
sm: 'px-2 py-0.5',
|
|
2551
|
+
md: 'px-2.5 py-0.5',
|
|
2552
|
+
lg: 'px-4 py-2',
|
|
2553
|
+
xl: 'px-5 py-2.5',
|
|
2554
|
+
};
|
|
2555
|
+
class NbChip {
|
|
2556
|
+
padding = input('md', ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
|
|
2557
|
+
// Optional leading icon, given as an SVG/image URL. Rendered through nbIcon
|
|
2558
|
+
// in mask mode so it tints to the chip's foreground color. For full-color
|
|
2559
|
+
// or labeled icons, compose an `nbIcon` (or any element) as projected
|
|
2560
|
+
// content instead — the leading slot is only used when `icon` is set.
|
|
2561
|
+
icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
2562
|
+
iconSize = input('sm', ...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
|
|
2563
|
+
classes = computed(() => nbClass('inline-flex items-center gap-1.5', 'text-xs font-bold', paddingMap[this.padding()], '[&_svg]:size-[var(--nb-chip-icon-size,0.75rem)] [&_svg]:shrink-0'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
2564
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbChip, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2565
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbChip, isStandalone: true, selector: "span[nbChip]", inputs: { padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-padding": "padding()", "attr.data-nb-chip": "\"\"" } }, providers: [
|
|
2566
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'chip' },
|
|
2567
|
+
{
|
|
2568
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2569
|
+
useValue: {
|
|
2570
|
+
tone: 'default',
|
|
2571
|
+
radius: 'none',
|
|
2572
|
+
shadow: 'sm',
|
|
2573
|
+
border: 'default',
|
|
2574
|
+
},
|
|
2575
|
+
},
|
|
2576
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0, template: `
|
|
2577
|
+
@if (icon()) {
|
|
2578
|
+
<span nbIcon [src]="icon()!" [size]="iconSize()" decorative></span>
|
|
2579
|
+
}
|
|
2580
|
+
<ng-content />
|
|
2581
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NbIcon, selector: "[nbIcon]", inputs: ["src", "mode", "size", "tone", "decorative", "label"], exportAs: ["nbIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2582
|
+
}
|
|
2583
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbChip, decorators: [{
|
|
2584
|
+
type: Component,
|
|
2585
|
+
args: [{
|
|
2586
|
+
selector: 'span[nbChip]',
|
|
2587
|
+
imports: [NbIcon],
|
|
2588
|
+
providers: [
|
|
2589
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'chip' },
|
|
2590
|
+
{
|
|
2591
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2592
|
+
useValue: {
|
|
2593
|
+
tone: 'default',
|
|
2594
|
+
radius: 'none',
|
|
2595
|
+
shadow: 'sm',
|
|
2596
|
+
border: 'default',
|
|
2597
|
+
},
|
|
2598
|
+
},
|
|
2599
|
+
],
|
|
2600
|
+
hostDirectives: [
|
|
2601
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
2602
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
2603
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
2604
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
2605
|
+
],
|
|
2606
|
+
template: `
|
|
2607
|
+
@if (icon()) {
|
|
2608
|
+
<span nbIcon [src]="icon()!" [size]="iconSize()" decorative></span>
|
|
2609
|
+
}
|
|
2610
|
+
<ng-content />
|
|
2611
|
+
`,
|
|
2612
|
+
host: {
|
|
2613
|
+
'[class]': 'classes()',
|
|
2614
|
+
'[attr.data-padding]': 'padding()',
|
|
2615
|
+
'[attr.data-nb-chip]': '""',
|
|
2616
|
+
},
|
|
2617
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2618
|
+
}]
|
|
2619
|
+
}], propDecorators: { padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconSize", required: false }] }] } });
|
|
2620
|
+
const chipGroupAlignMap = {
|
|
2621
|
+
start: 'items-start',
|
|
2622
|
+
center: 'items-center',
|
|
2623
|
+
end: 'items-end',
|
|
2624
|
+
stretch: 'items-stretch',
|
|
2625
|
+
};
|
|
2626
|
+
const chipGroupTrackingMap = {
|
|
2627
|
+
tight: '-0.025em',
|
|
2628
|
+
normal: null,
|
|
2629
|
+
wide: '0.025em',
|
|
2630
|
+
wider: '0.05em',
|
|
2631
|
+
};
|
|
2632
|
+
/**
|
|
2633
|
+
* Layout + shared style context for a set of chips. Owns the row/column layout
|
|
2634
|
+
* (direction, gap, align) and broadcasts chip-level styling — radius, shadow,
|
|
2635
|
+
* text transform, tracking — to every child `nbChip` through CSS variables and
|
|
2636
|
+
* inherited text properties, so chips don't repeat the same inputs. Individual
|
|
2637
|
+
* `nbChip` inputs still override the group (explicit input beats context token).
|
|
2638
|
+
*/
|
|
2639
|
+
class NbChipGroup {
|
|
2640
|
+
direction = input('horizontal', ...(ngDevMode ? [{ debugName: "direction" }] : /* istanbul ignore next */ []));
|
|
2641
|
+
gap = input('sm', ...(ngDevMode ? [{ debugName: "gap" }] : /* istanbul ignore next */ []));
|
|
2642
|
+
align = input('stretch', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
2643
|
+
radius = input(undefined, ...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
|
|
2644
|
+
shadow = input(undefined, ...(ngDevMode ? [{ debugName: "shadow" }] : /* istanbul ignore next */ []));
|
|
2645
|
+
transform = input('none', ...(ngDevMode ? [{ debugName: "transform" }] : /* istanbul ignore next */ []));
|
|
2646
|
+
tracking = input('normal', ...(ngDevMode ? [{ debugName: "tracking" }] : /* istanbul ignore next */ []));
|
|
2647
|
+
classes = computed(() => nbClass('flex min-w-0', this.direction() === 'vertical' ? 'flex-col' : 'flex-wrap', chipGroupAlignMap[this.align()]), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
2648
|
+
gapValue = computed(() => nbSpacingValue(this.gap()), ...(ngDevMode ? [{ debugName: "gapValue" }] : /* istanbul ignore next */ []));
|
|
2649
|
+
chipRadiusValue = computed(() => {
|
|
2650
|
+
const radius = this.radius();
|
|
2651
|
+
return radius ? nbRadiusValue(radius) : null;
|
|
2652
|
+
}, ...(ngDevMode ? [{ debugName: "chipRadiusValue" }] : /* istanbul ignore next */ []));
|
|
2653
|
+
chipShadowValue = computed(() => {
|
|
2654
|
+
const shadow = this.shadow();
|
|
2655
|
+
return shadow ? nbShadowValue(shadow) : null;
|
|
2656
|
+
}, ...(ngDevMode ? [{ debugName: "chipShadowValue" }] : /* istanbul ignore next */ []));
|
|
2657
|
+
transformValue = computed(() => {
|
|
2658
|
+
const transform = this.transform();
|
|
2659
|
+
return transform === 'none' ? null : transform;
|
|
2660
|
+
}, ...(ngDevMode ? [{ debugName: "transformValue" }] : /* istanbul ignore next */ []));
|
|
2661
|
+
trackingValue = computed(() => chipGroupTrackingMap[this.tracking()], ...(ngDevMode ? [{ debugName: "trackingValue" }] : /* istanbul ignore next */ []));
|
|
2662
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbChipGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2663
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbChipGroup, isStandalone: true, selector: "[nbChipGroup]", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, shadow: { classPropertyName: "shadow", publicName: "shadow", isSignal: true, isRequired: false, transformFunction: null }, transform: { classPropertyName: "transform", publicName: "transform", isSignal: true, isRequired: false, transformFunction: null }, tracking: { classPropertyName: "tracking", publicName: "tracking", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "style.gap": "gapValue()", "style.--nb-chip-radius": "chipRadiusValue()", "style.--nb-chip-shadow": "chipShadowValue()", "style.text-transform": "transformValue()", "style.letter-spacing": "trackingValue()", "attr.data-nb-chip-group": "\"\"" } }, ngImport: i0 });
|
|
2664
|
+
}
|
|
2665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbChipGroup, decorators: [{
|
|
2666
|
+
type: Directive,
|
|
2667
|
+
args: [{
|
|
2668
|
+
selector: '[nbChipGroup]',
|
|
2669
|
+
host: {
|
|
2670
|
+
'[class]': 'classes()',
|
|
2671
|
+
'[style.gap]': 'gapValue()',
|
|
2672
|
+
'[style.--nb-chip-radius]': 'chipRadiusValue()',
|
|
2673
|
+
'[style.--nb-chip-shadow]': 'chipShadowValue()',
|
|
2674
|
+
'[style.text-transform]': 'transformValue()',
|
|
2675
|
+
'[style.letter-spacing]': 'trackingValue()',
|
|
2676
|
+
'[attr.data-nb-chip-group]': '""',
|
|
2677
|
+
},
|
|
2678
|
+
}]
|
|
2679
|
+
}], propDecorators: { direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], shadow: [{ type: i0.Input, args: [{ isSignal: true, alias: "shadow", required: false }] }], transform: [{ type: i0.Input, args: [{ isSignal: true, alias: "transform", required: false }] }], tracking: [{ type: i0.Input, args: [{ isSignal: true, alias: "tracking", required: false }] }] } });
|
|
2680
|
+
|
|
2681
|
+
// Each size sets the square touch target plus a matching glyph size. The glyph
|
|
2682
|
+
// size feeds both the projected `<svg>` (via `[&_svg]:size-*`) and the internal
|
|
2683
|
+
// `nbIcon` (via `iconSize`) so the two authoring styles render identically.
|
|
2684
|
+
const sizeMap$1 = {
|
|
2685
|
+
sm: 'size-8 [&_svg]:size-4',
|
|
2686
|
+
md: 'size-10 [&_svg]:size-5',
|
|
2687
|
+
lg: 'size-12 [&_svg]:size-6',
|
|
2688
|
+
xl: 'size-14 [&_svg]:size-8',
|
|
2689
|
+
};
|
|
2690
|
+
const iconSizeMap = {
|
|
2691
|
+
sm: 'sm',
|
|
2692
|
+
md: 'md',
|
|
2693
|
+
lg: 'lg',
|
|
2694
|
+
xl: 'xl',
|
|
2695
|
+
};
|
|
2696
|
+
class NbIconButton {
|
|
2697
|
+
shape = input('square', ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
2698
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
2699
|
+
// Optional icon, given as an SVG/image URL. Rendered through nbIcon in mask
|
|
2700
|
+
// mode so it tints to the button's foreground color and sizes to match the
|
|
2701
|
+
// button. For full-color or custom icons, project an `<svg>`/`nbIcon` as
|
|
2702
|
+
// content instead — the internal slot is only used when `icon` is set.
|
|
2703
|
+
icon = input(...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
2704
|
+
iconSize = computed(() => iconSizeMap[this.size()], ...(ngDevMode ? [{ debugName: "iconSize" }] : /* istanbul ignore next */ []));
|
|
2705
|
+
classes = computed(() => nbClass('inline-flex items-center justify-center shrink-0 select-none', 'hover:translate-x-(--nb-shadow-offset-x) hover:translate-y-(--nb-shadow-offset-y) hover:shadow-none', 'transition-all duration-150 ease-out', '[&_svg]:pointer-events-none [&_svg]:shrink-0', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--nb-border) focus-visible:ring-offset-2', 'disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none', sizeMap$1[this.size()], this.shape() === 'circle' && 'rounded-full'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
2706
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2707
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbIconButton, isStandalone: true, selector: "button[nbIconButton]", inputs: { shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-shape": "shape()", "attr.data-nb-icon-button": "\"\"" } }, providers: [
|
|
2708
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'icon-button' },
|
|
2709
|
+
{
|
|
2710
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2711
|
+
useValue: {
|
|
2712
|
+
tone: 'default',
|
|
2713
|
+
radius: 'none',
|
|
2714
|
+
shadow: 'default',
|
|
2715
|
+
border: 'default',
|
|
2716
|
+
},
|
|
2717
|
+
},
|
|
2718
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }], ngImport: i0, template: `
|
|
2719
|
+
@if (icon(); as iconSrc) {
|
|
2720
|
+
<span nbIcon [src]="iconSrc" [size]="iconSize()" decorative></span>
|
|
2721
|
+
}
|
|
2722
|
+
<ng-content />
|
|
2723
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NbIcon, selector: "[nbIcon]", inputs: ["src", "mode", "size", "tone", "decorative", "label"], exportAs: ["nbIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2724
|
+
}
|
|
2725
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbIconButton, decorators: [{
|
|
2726
|
+
type: Component,
|
|
2727
|
+
args: [{
|
|
2728
|
+
selector: 'button[nbIconButton]',
|
|
2729
|
+
imports: [NbIcon],
|
|
2730
|
+
providers: [
|
|
2731
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'icon-button' },
|
|
2732
|
+
{
|
|
2733
|
+
provide: NB_STYLE_DEFAULTS,
|
|
2734
|
+
useValue: {
|
|
2735
|
+
tone: 'default',
|
|
2736
|
+
radius: 'none',
|
|
2737
|
+
shadow: 'default',
|
|
2738
|
+
border: 'default',
|
|
2739
|
+
},
|
|
2740
|
+
},
|
|
2741
|
+
],
|
|
2742
|
+
hostDirectives: [
|
|
2743
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
2744
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
2745
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
2746
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
2747
|
+
],
|
|
2748
|
+
template: `
|
|
2749
|
+
@if (icon(); as iconSrc) {
|
|
2750
|
+
<span nbIcon [src]="iconSrc" [size]="iconSize()" decorative></span>
|
|
2751
|
+
}
|
|
2752
|
+
<ng-content />
|
|
2753
|
+
`,
|
|
2754
|
+
host: {
|
|
2755
|
+
'[class]': 'classes()',
|
|
2756
|
+
'[attr.data-shape]': 'shape()',
|
|
2757
|
+
'[attr.data-nb-icon-button]': '""',
|
|
2758
|
+
},
|
|
2759
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2760
|
+
}]
|
|
2761
|
+
}], propDecorators: { shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }] } });
|
|
2762
|
+
|
|
2763
|
+
class NbProgress {
|
|
2764
|
+
value = input(0, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
2765
|
+
max = input(100, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
2766
|
+
tone = input('default', ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
2767
|
+
label = input('', ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
2768
|
+
clampedValue = computed(() => Math.min(Math.max(this.value(), 0), this.max()), ...(ngDevMode ? [{ debugName: "clampedValue" }] : /* istanbul ignore next */ []));
|
|
2769
|
+
percentage = computed(() => (this.clampedValue() / this.max()) * 100, ...(ngDevMode ? [{ debugName: "percentage" }] : /* istanbul ignore next */ []));
|
|
2770
|
+
hostClass = computed(() => nbClass('block h-3 w-full overflow-hidden', 'border-2 border-(--nb-border)', 'bg-(--nb-secondary-background)', 'shadow-[var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_var(--nb-shadow)]'), ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
|
|
2771
|
+
fillClass = computed(() => {
|
|
2772
|
+
const map = {
|
|
2773
|
+
default: 'bg-(--nb-main)',
|
|
2774
|
+
success: 'bg-(--nb-success)',
|
|
2775
|
+
warning: 'bg-(--nb-warning)',
|
|
2776
|
+
danger: 'bg-(--nb-danger)',
|
|
2777
|
+
accent: 'bg-(--nb-accent)',
|
|
2778
|
+
};
|
|
2779
|
+
return map[this.tone()];
|
|
2780
|
+
}, ...(ngDevMode ? [{ debugName: "fillClass" }] : /* istanbul ignore next */ []));
|
|
2781
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2782
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NbProgress, isStandalone: true, selector: "nb-progress", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "hostClass()", "attr.data-tone": "tone()", "attr.data-nb-progress": "\"\"" } }, ngImport: i0, template: `
|
|
2783
|
+
<div
|
|
2784
|
+
role="progressbar"
|
|
2785
|
+
[attr.aria-valuenow]="clampedValue()"
|
|
2786
|
+
[attr.aria-valuemin]="0"
|
|
2787
|
+
[attr.aria-valuemax]="max()"
|
|
2788
|
+
[attr.aria-label]="label() || 'Progress'"
|
|
2789
|
+
class="relative h-full w-full overflow-hidden"
|
|
2790
|
+
>
|
|
2791
|
+
<div
|
|
2792
|
+
class="h-full transition-all duration-300 ease-out"
|
|
2793
|
+
[class]="fillClass()"
|
|
2794
|
+
[style.width.%]="percentage()"
|
|
2795
|
+
></div>
|
|
2796
|
+
</div>
|
|
2797
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2798
|
+
}
|
|
2799
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbProgress, decorators: [{
|
|
2800
|
+
type: Component,
|
|
2801
|
+
args: [{
|
|
2802
|
+
selector: 'nb-progress',
|
|
2803
|
+
template: `
|
|
2804
|
+
<div
|
|
2805
|
+
role="progressbar"
|
|
2806
|
+
[attr.aria-valuenow]="clampedValue()"
|
|
2807
|
+
[attr.aria-valuemin]="0"
|
|
2808
|
+
[attr.aria-valuemax]="max()"
|
|
2809
|
+
[attr.aria-label]="label() || 'Progress'"
|
|
2810
|
+
class="relative h-full w-full overflow-hidden"
|
|
2811
|
+
>
|
|
2812
|
+
<div
|
|
2813
|
+
class="h-full transition-all duration-300 ease-out"
|
|
2814
|
+
[class]="fillClass()"
|
|
2815
|
+
[style.width.%]="percentage()"
|
|
2816
|
+
></div>
|
|
2817
|
+
</div>
|
|
2818
|
+
`,
|
|
2819
|
+
host: {
|
|
2820
|
+
'[class]': 'hostClass()',
|
|
2821
|
+
'[attr.data-tone]': 'tone()',
|
|
2822
|
+
'[attr.data-nb-progress]': '""',
|
|
2823
|
+
},
|
|
2824
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2825
|
+
}]
|
|
2826
|
+
}], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
|
|
2827
|
+
|
|
2828
|
+
class NbAvatarGroup {
|
|
2829
|
+
overflow = input(0, ...(ngDevMode ? [{ debugName: "overflow" }] : /* istanbul ignore next */ []));
|
|
2830
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbAvatarGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2831
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbAvatarGroup, isStandalone: true, selector: "nb-avatar-group", inputs: { overflow: { classPropertyName: "overflow", publicName: "overflow", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"flex items-center [&>*]:-ml-3 [&>*:first-child]:ml-0\"", "attr.data-nb-avatar-group": "\"\"" } }, ngImport: i0, template: `
|
|
2832
|
+
<ng-content />
|
|
2833
|
+
@if (overflow() > 0) {
|
|
2834
|
+
<span
|
|
2835
|
+
class="relative inline-flex h-10 w-10 shrink-0 items-center justify-center
|
|
2836
|
+
rounded-full border-2 border-(--nb-border) bg-(--nb-surface)
|
|
2837
|
+
font-bold text-xs shadow-[2px_2px_0_0_var(--nb-shadow)]"
|
|
2838
|
+
[attr.aria-label]="overflow() + ' more'"
|
|
2839
|
+
>+{{ overflow() }}</span>
|
|
2840
|
+
}
|
|
2841
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2842
|
+
}
|
|
2843
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbAvatarGroup, decorators: [{
|
|
2844
|
+
type: Component,
|
|
2845
|
+
args: [{
|
|
2846
|
+
selector: 'nb-avatar-group',
|
|
2847
|
+
template: `
|
|
2848
|
+
<ng-content />
|
|
2849
|
+
@if (overflow() > 0) {
|
|
2850
|
+
<span
|
|
2851
|
+
class="relative inline-flex h-10 w-10 shrink-0 items-center justify-center
|
|
2852
|
+
rounded-full border-2 border-(--nb-border) bg-(--nb-surface)
|
|
2853
|
+
font-bold text-xs shadow-[2px_2px_0_0_var(--nb-shadow)]"
|
|
2854
|
+
[attr.aria-label]="overflow() + ' more'"
|
|
2855
|
+
>+{{ overflow() }}</span>
|
|
2856
|
+
}
|
|
2857
|
+
`,
|
|
2858
|
+
host: {
|
|
2859
|
+
'[class]': '"flex items-center [&>*]:-ml-3 [&>*:first-child]:ml-0"',
|
|
2860
|
+
'[attr.data-nb-avatar-group]': '""',
|
|
2861
|
+
},
|
|
2862
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2863
|
+
}]
|
|
2864
|
+
}], propDecorators: { overflow: [{ type: i0.Input, args: [{ isSignal: true, alias: "overflow", required: false }] }] } });
|
|
2865
|
+
|
|
2866
|
+
const NB_STICKER_PATHS = {
|
|
2867
|
+
burst: {
|
|
2868
|
+
viewBox: '0 0 160 160',
|
|
2869
|
+
shadowTransform: 'translate(7 7)',
|
|
2870
|
+
path: `
|
|
2871
|
+
M80 12
|
|
2872
|
+
L96 35
|
|
2873
|
+
L125 23
|
|
2874
|
+
L121 52
|
|
2875
|
+
L149 62
|
|
2876
|
+
L128 80
|
|
2877
|
+
L148 103
|
|
2878
|
+
L117 104
|
|
2879
|
+
L119 139
|
|
2880
|
+
L92 122
|
|
2881
|
+
L76 151
|
|
2882
|
+
L62 121
|
|
2883
|
+
L31 137
|
|
2884
|
+
L36 105
|
|
2885
|
+
L10 101
|
|
2886
|
+
L32 79
|
|
2887
|
+
L14 58
|
|
2888
|
+
L45 50
|
|
2889
|
+
L42 22
|
|
2890
|
+
L68 38
|
|
2891
|
+
Z
|
|
2892
|
+
`,
|
|
2893
|
+
},
|
|
2894
|
+
'burst-wide': {
|
|
2895
|
+
viewBox: '0 0 220 160',
|
|
2896
|
+
shadowTransform: 'translate(8 8)',
|
|
2897
|
+
path: `
|
|
2898
|
+
M108 10
|
|
2899
|
+
L126 38
|
|
2900
|
+
L164 20
|
|
2901
|
+
L162 50
|
|
2902
|
+
L211 58
|
|
2903
|
+
L179 78
|
|
2904
|
+
L211 101
|
|
2905
|
+
L169 105
|
|
2906
|
+
L172 143
|
|
2907
|
+
L135 126
|
|
2908
|
+
L112 153
|
|
2909
|
+
L92 126
|
|
2910
|
+
L53 145
|
|
2911
|
+
L57 108
|
|
2912
|
+
L12 103
|
|
2913
|
+
L43 81
|
|
2914
|
+
L12 59
|
|
2915
|
+
L57 50
|
|
2916
|
+
L53 21
|
|
2917
|
+
L91 39
|
|
2918
|
+
Z
|
|
2919
|
+
`,
|
|
2920
|
+
},
|
|
2921
|
+
star: {
|
|
2922
|
+
viewBox: '65 105 858 780',
|
|
2923
|
+
shadowTransform: 'translate(34 38)',
|
|
2924
|
+
path: `
|
|
2925
|
+
M296 178
|
|
2926
|
+
L512 302
|
|
2927
|
+
L724 182
|
|
2928
|
+
L690 392
|
|
2929
|
+
L884 510
|
|
2930
|
+
L680 610
|
|
2931
|
+
L670 866
|
|
2932
|
+
L482 692
|
|
2933
|
+
L250 788
|
|
2934
|
+
L304 564
|
|
2935
|
+
L120 468
|
|
2936
|
+
L314 386
|
|
2937
|
+
Z
|
|
2938
|
+
`,
|
|
2939
|
+
},
|
|
2940
|
+
splat: {
|
|
2941
|
+
viewBox: '0 0 108 108',
|
|
2942
|
+
shadowTransform: 'translate(6 6)',
|
|
2943
|
+
path: 'M50 5 L61 25 L84 15 L77 39 L97 50 L77 61 L86 86 L61 75 L50 98 L39 76 L15 86 L23 62 L3 50 L24 39 L15 14 L39 25 Z',
|
|
2944
|
+
},
|
|
2945
|
+
};
|
|
2946
|
+
|
|
2947
|
+
class NbSticker {
|
|
2948
|
+
shape = input('burst', ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
2949
|
+
tone = input('mint', ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
2950
|
+
decorative = input(false, { ...(ngDevMode ? { debugName: "decorative" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
2951
|
+
rotate = input(0, { ...(ngDevMode ? { debugName: "rotate" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
2952
|
+
size = input(1, { ...(ngDevMode ? { debugName: "size" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
2953
|
+
config = computed(() => NB_STICKER_PATHS[this.shape()], ...(ngDevMode ? [{ debugName: "config" }] : /* istanbul ignore next */ []));
|
|
2954
|
+
toneTokens = computed(() => {
|
|
2955
|
+
const tokens = nbToneTokens(this.tone());
|
|
2956
|
+
return {
|
|
2957
|
+
fill: tokens.bg,
|
|
2958
|
+
ink: tokens.fg,
|
|
2959
|
+
shadow: 'var(--nb-shadow, #050505)',
|
|
2960
|
+
};
|
|
2961
|
+
}, ...(ngDevMode ? [{ debugName: "toneTokens" }] : /* istanbul ignore next */ []));
|
|
2962
|
+
rotateStyle = computed(() => `${this.rotate()}deg`, ...(ngDevMode ? [{ debugName: "rotateStyle" }] : /* istanbul ignore next */ []));
|
|
2963
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSticker, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2964
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: NbSticker, isStandalone: true, selector: "nb-sticker", inputs: { shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null }, rotate: { classPropertyName: "rotate", publicName: "rotate", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-shape": "shape()", "attr.data-tone": "tone()", "attr.data-nb-sticker": "\"\"", "attr.aria-hidden": "decorative() ? \"true\" : null", "attr.role": "decorative() ? null : \"img\"", "style.--nb-sticker-fill": "toneTokens().fill", "style.--nb-sticker-ink": "toneTokens().ink", "style.--nb-sticker-shadow": "toneTokens().shadow", "style.--nb-sticker-rotate": "rotateStyle()", "style.--nb-sticker-scale": "size()" }, classAttribute: "nb-sticker" }, ngImport: i0, template: `
|
|
2965
|
+
<span class="nb-sticker__root">
|
|
2966
|
+
<svg
|
|
2967
|
+
class="nb-sticker__svg"
|
|
2968
|
+
[attr.viewBox]="config().viewBox"
|
|
2969
|
+
preserveAspectRatio="none"
|
|
2970
|
+
aria-hidden="true"
|
|
2971
|
+
focusable="false"
|
|
2972
|
+
>
|
|
2973
|
+
<path
|
|
2974
|
+
class="nb-sticker__shadow"
|
|
2975
|
+
[attr.d]="config().path"
|
|
2976
|
+
[attr.transform]="config().shadowTransform"
|
|
2977
|
+
/>
|
|
2978
|
+
<path class="nb-sticker__shape" [attr.d]="config().path" />
|
|
2979
|
+
</svg>
|
|
2980
|
+
|
|
2981
|
+
<span class="nb-sticker__content">
|
|
2982
|
+
<ng-content />
|
|
2983
|
+
</span>
|
|
2984
|
+
</span>
|
|
2985
|
+
`, isInline: true, styles: [":host{--nb-sticker-min-block-size: 8.75rem;--nb-sticker-padding-inline: 3.5rem;--nb-sticker-padding-block: 3rem;--nb-sticker-fill: var(--nb-mint, #9af7b5);--nb-sticker-ink: var(--nb-black, #050505);--nb-sticker-shadow: var(--nb-shadow, var(--nb-black, #050505));--nb-sticker-stroke-width: 5px;--nb-sticker-rotate: -6deg;--nb-sticker-font-size: 1.5rem;display:inline-block;vertical-align:middle}:host([data-shape=\"burst-wide\"]){--nb-sticker-padding-inline: 4rem;--nb-sticker-padding-block: 3rem;--nb-sticker-font-size: 1.5rem}:host([data-shape=\"star\"]){--nb-sticker-min-block-size: 7.5rem;--nb-sticker-padding-inline: 2.5rem;--nb-sticker-padding-block: 2.5rem;--nb-sticker-face-size: 3.5rem;--nb-sticker-rotate: 0deg;--nb-sticker-stroke-width: 5px}:host([data-shape=\"splat\"]){--nb-sticker-size: 6rem;--nb-sticker-shadow-x: 6px;--nb-sticker-shadow-y: 6px;--nb-sticker-stroke-width: 4px;--nb-sticker-rotate: -10deg}.nb-sticker__root{position:relative;isolation:isolate;display:inline-grid;place-items:center;box-sizing:border-box;min-block-size:var(--nb-sticker-min-block-size);inline-size:max-content;block-size:max-content;transform:rotate(var(--nb-sticker-rotate)) scale(var(--nb-sticker-scale, 1));transform-origin:center}:host([data-shape=\"splat\"]) .nb-sticker__root{inline-size:var(--nb-sticker-size);block-size:var(--nb-sticker-size);min-block-size:var(--nb-sticker-size)}.nb-sticker__svg{position:absolute;inset:0;z-index:-1;inline-size:100%;block-size:100%;overflow:visible}.nb-sticker__shadow{fill:var(--nb-sticker-shadow)}:host([data-shape=\"splat\"]) .nb-sticker__shadow{transform:translate(var(--nb-sticker-shadow-x),var(--nb-sticker-shadow-y))}.nb-sticker__shape{fill:var(--nb-sticker-fill);stroke:var(--nb-sticker-ink);stroke-width:var(--nb-sticker-stroke-width);stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.nb-sticker__content{color:var(--nb-sticker-ink);display:block;max-width:300px;padding-inline:var(--nb-sticker-padding-inline);padding-block:var(--nb-sticker-padding-block);overflow-wrap:break-word;font-family:var(--nb-font-display, system-ui, sans-serif);font-size:var(--nb-sticker-font-size);font-weight:950;line-height:.9;letter-spacing:0;text-align:center;text-transform:uppercase;pointer-events:none;-webkit-user-select:none;user-select:none}:host([data-shape=\"splat\"]) .nb-sticker__content{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2986
|
+
}
|
|
2987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSticker, decorators: [{
|
|
2988
|
+
type: Component,
|
|
2989
|
+
args: [{ selector: 'nb-sticker', template: `
|
|
2990
|
+
<span class="nb-sticker__root">
|
|
2991
|
+
<svg
|
|
2992
|
+
class="nb-sticker__svg"
|
|
2993
|
+
[attr.viewBox]="config().viewBox"
|
|
2994
|
+
preserveAspectRatio="none"
|
|
2995
|
+
aria-hidden="true"
|
|
2996
|
+
focusable="false"
|
|
2997
|
+
>
|
|
2998
|
+
<path
|
|
2999
|
+
class="nb-sticker__shadow"
|
|
3000
|
+
[attr.d]="config().path"
|
|
3001
|
+
[attr.transform]="config().shadowTransform"
|
|
3002
|
+
/>
|
|
3003
|
+
<path class="nb-sticker__shape" [attr.d]="config().path" />
|
|
3004
|
+
</svg>
|
|
3005
|
+
|
|
3006
|
+
<span class="nb-sticker__content">
|
|
3007
|
+
<ng-content />
|
|
3008
|
+
</span>
|
|
3009
|
+
</span>
|
|
3010
|
+
`, host: {
|
|
3011
|
+
class: 'nb-sticker',
|
|
3012
|
+
'[attr.data-shape]': 'shape()',
|
|
3013
|
+
'[attr.data-tone]': 'tone()',
|
|
3014
|
+
'[attr.data-nb-sticker]': '""',
|
|
3015
|
+
'[attr.aria-hidden]': 'decorative() ? "true" : null',
|
|
3016
|
+
'[attr.role]': 'decorative() ? null : "img"',
|
|
3017
|
+
'[style.--nb-sticker-fill]': 'toneTokens().fill',
|
|
3018
|
+
'[style.--nb-sticker-ink]': 'toneTokens().ink',
|
|
3019
|
+
'[style.--nb-sticker-shadow]': 'toneTokens().shadow',
|
|
3020
|
+
'[style.--nb-sticker-rotate]': 'rotateStyle()',
|
|
3021
|
+
'[style.--nb-sticker-scale]': 'size()',
|
|
3022
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--nb-sticker-min-block-size: 8.75rem;--nb-sticker-padding-inline: 3.5rem;--nb-sticker-padding-block: 3rem;--nb-sticker-fill: var(--nb-mint, #9af7b5);--nb-sticker-ink: var(--nb-black, #050505);--nb-sticker-shadow: var(--nb-shadow, var(--nb-black, #050505));--nb-sticker-stroke-width: 5px;--nb-sticker-rotate: -6deg;--nb-sticker-font-size: 1.5rem;display:inline-block;vertical-align:middle}:host([data-shape=\"burst-wide\"]){--nb-sticker-padding-inline: 4rem;--nb-sticker-padding-block: 3rem;--nb-sticker-font-size: 1.5rem}:host([data-shape=\"star\"]){--nb-sticker-min-block-size: 7.5rem;--nb-sticker-padding-inline: 2.5rem;--nb-sticker-padding-block: 2.5rem;--nb-sticker-face-size: 3.5rem;--nb-sticker-rotate: 0deg;--nb-sticker-stroke-width: 5px}:host([data-shape=\"splat\"]){--nb-sticker-size: 6rem;--nb-sticker-shadow-x: 6px;--nb-sticker-shadow-y: 6px;--nb-sticker-stroke-width: 4px;--nb-sticker-rotate: -10deg}.nb-sticker__root{position:relative;isolation:isolate;display:inline-grid;place-items:center;box-sizing:border-box;min-block-size:var(--nb-sticker-min-block-size);inline-size:max-content;block-size:max-content;transform:rotate(var(--nb-sticker-rotate)) scale(var(--nb-sticker-scale, 1));transform-origin:center}:host([data-shape=\"splat\"]) .nb-sticker__root{inline-size:var(--nb-sticker-size);block-size:var(--nb-sticker-size);min-block-size:var(--nb-sticker-size)}.nb-sticker__svg{position:absolute;inset:0;z-index:-1;inline-size:100%;block-size:100%;overflow:visible}.nb-sticker__shadow{fill:var(--nb-sticker-shadow)}:host([data-shape=\"splat\"]) .nb-sticker__shadow{transform:translate(var(--nb-sticker-shadow-x),var(--nb-sticker-shadow-y))}.nb-sticker__shape{fill:var(--nb-sticker-fill);stroke:var(--nb-sticker-ink);stroke-width:var(--nb-sticker-stroke-width);stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.nb-sticker__content{color:var(--nb-sticker-ink);display:block;max-width:300px;padding-inline:var(--nb-sticker-padding-inline);padding-block:var(--nb-sticker-padding-block);overflow-wrap:break-word;font-family:var(--nb-font-display, system-ui, sans-serif);font-size:var(--nb-sticker-font-size);font-weight:950;line-height:.9;letter-spacing:0;text-align:center;text-transform:uppercase;pointer-events:none;-webkit-user-select:none;user-select:none}:host([data-shape=\"splat\"]) .nb-sticker__content{display:none}\n"] }]
|
|
3023
|
+
}], propDecorators: { shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], decorative: [{ type: i0.Input, args: [{ isSignal: true, alias: "decorative", required: false }] }], rotate: [{ type: i0.Input, args: [{ isSignal: true, alias: "rotate", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
|
|
3024
|
+
|
|
3025
|
+
class NbStickerFace {
|
|
3026
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStickerFace, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3027
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: NbStickerFace, isStandalone: true, selector: "nb-sticker-face", host: { attributes: { "aria-hidden": "true" }, properties: { "attr.data-nb-sticker-face": "\"\"" }, classAttribute: "nb-sticker-face" }, ngImport: i0, template: `
|
|
3028
|
+
<svg
|
|
3029
|
+
class="nb-sticker-face__svg"
|
|
3030
|
+
viewBox="13 5 320 220"
|
|
3031
|
+
aria-hidden="true"
|
|
3032
|
+
focusable="false"
|
|
3033
|
+
>
|
|
3034
|
+
<ellipse class="nb-sticker-face__eye" cx="126" cy="64" rx="20" ry="35" />
|
|
3035
|
+
<ellipse class="nb-sticker-face__eye" cx="214" cy="64" rx="20" ry="35" />
|
|
3036
|
+
<path
|
|
3037
|
+
class="nb-sticker-face__smile"
|
|
3038
|
+
d="M78 132 C116 202 226 206 268 150"
|
|
3039
|
+
/>
|
|
3040
|
+
</svg>
|
|
3041
|
+
`, isInline: true, styles: [":host{--nb-sticker-face-ink: var(--nb-sticker-ink, #050505);display:block;width:var(--nb-sticker-face-size, 5.55rem);height:calc(var(--nb-sticker-face-size, 5.55rem) * .64)}.nb-sticker-face__svg{display:block;width:100%;height:100%;overflow:visible}.nb-sticker-face__eye{fill:var(--nb-sticker-face-ink)}.nb-sticker-face__smile{fill:none;stroke:var(--nb-sticker-face-ink);stroke-width:36;stroke-linecap:round}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3042
|
+
}
|
|
3043
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStickerFace, decorators: [{
|
|
3044
|
+
type: Component,
|
|
3045
|
+
args: [{ selector: 'nb-sticker-face', template: `
|
|
3046
|
+
<svg
|
|
3047
|
+
class="nb-sticker-face__svg"
|
|
3048
|
+
viewBox="13 5 320 220"
|
|
3049
|
+
aria-hidden="true"
|
|
3050
|
+
focusable="false"
|
|
3051
|
+
>
|
|
3052
|
+
<ellipse class="nb-sticker-face__eye" cx="126" cy="64" rx="20" ry="35" />
|
|
3053
|
+
<ellipse class="nb-sticker-face__eye" cx="214" cy="64" rx="20" ry="35" />
|
|
3054
|
+
<path
|
|
3055
|
+
class="nb-sticker-face__smile"
|
|
3056
|
+
d="M78 132 C116 202 226 206 268 150"
|
|
3057
|
+
/>
|
|
3058
|
+
</svg>
|
|
3059
|
+
`, host: {
|
|
3060
|
+
class: 'nb-sticker-face',
|
|
3061
|
+
'aria-hidden': 'true',
|
|
3062
|
+
'[attr.data-nb-sticker-face]': '""',
|
|
3063
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--nb-sticker-face-ink: var(--nb-sticker-ink, #050505);display:block;width:var(--nb-sticker-face-size, 5.55rem);height:calc(var(--nb-sticker-face-size, 5.55rem) * .64)}.nb-sticker-face__svg{display:block;width:100%;height:100%;overflow:visible}.nb-sticker-face__eye{fill:var(--nb-sticker-face-ink)}.nb-sticker-face__smile{fill:none;stroke:var(--nb-sticker-face-ink);stroke-width:36;stroke-linecap:round}\n"] }]
|
|
3064
|
+
}] });
|
|
3065
|
+
|
|
3066
|
+
const DEFAULT_SHAPE = 'square';
|
|
3067
|
+
const DEFAULT_ROWS = 7;
|
|
3068
|
+
const DEFAULT_COLUMNS = 7;
|
|
3069
|
+
const DEFAULT_DOT_SIZE = 6;
|
|
3070
|
+
const DEFAULT_DOT_GAP = 5;
|
|
3071
|
+
const RECTANGLE_DEFAULT_ROWS = 3;
|
|
3072
|
+
const RECTANGLE_DEFAULT_COLUMNS = 13;
|
|
3073
|
+
class NbHalftone {
|
|
3074
|
+
shape = input(DEFAULT_SHAPE, ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
3075
|
+
color = input(null, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
3076
|
+
size = input(null, { ...(ngDevMode ? { debugName: "size" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
3077
|
+
gap = input(null, { ...(ngDevMode ? { debugName: "gap" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
3078
|
+
gapX = input(null, { ...(ngDevMode ? { debugName: "gapX" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
3079
|
+
gapY = input(null, { ...(ngDevMode ? { debugName: "gapY" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
3080
|
+
rows = input(null, { ...(ngDevMode ? { debugName: "rows" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
3081
|
+
columns = input(null, { ...(ngDevMode ? { debugName: "columns" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
3082
|
+
resolvedColor = computed(() => this.color() ?? 'var(--nb-border)', ...(ngDevMode ? [{ debugName: "resolvedColor" }] : /* istanbul ignore next */ []));
|
|
3083
|
+
resolvedSize = computed(() => this.size() ?? DEFAULT_DOT_SIZE, ...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
|
|
3084
|
+
resolvedGap = computed(() => this.gap() ?? DEFAULT_DOT_GAP, ...(ngDevMode ? [{ debugName: "resolvedGap" }] : /* istanbul ignore next */ []));
|
|
3085
|
+
resolvedGapXInput = computed(() => this.gapX() ?? this.gap(), ...(ngDevMode ? [{ debugName: "resolvedGapXInput" }] : /* istanbul ignore next */ []));
|
|
3086
|
+
resolvedGapYInput = computed(() => this.gapY() ?? this.gap(), ...(ngDevMode ? [{ debugName: "resolvedGapYInput" }] : /* istanbul ignore next */ []));
|
|
3087
|
+
resolvedRows = computed(() => this.rows() ??
|
|
3088
|
+
(this.shape() === 'rectangle' ? RECTANGLE_DEFAULT_ROWS : DEFAULT_ROWS), ...(ngDevMode ? [{ debugName: "resolvedRows" }] : /* istanbul ignore next */ []));
|
|
3089
|
+
resolvedColumns = computed(() => this.columns() ??
|
|
3090
|
+
(this.shape() === 'rectangle' ? RECTANGLE_DEFAULT_COLUMNS : DEFAULT_COLUMNS), ...(ngDevMode ? [{ debugName: "resolvedColumns" }] : /* istanbul ignore next */ []));
|
|
3091
|
+
svgW = computed(() => this.resolvedColumns() * (this.resolvedSize() + this.resolvedGap()) -
|
|
3092
|
+
this.resolvedGap(), ...(ngDevMode ? [{ debugName: "svgW" }] : /* istanbul ignore next */ []));
|
|
3093
|
+
svgH = computed(() => this.resolvedRows() * (this.resolvedSize() + this.resolvedGap()) -
|
|
3094
|
+
this.resolvedGap(), ...(ngDevMode ? [{ debugName: "svgH" }] : /* istanbul ignore next */ []));
|
|
3095
|
+
dotR = computed(() => this.resolvedSize() / 2, ...(ngDevMode ? [{ debugName: "dotR" }] : /* istanbul ignore next */ []));
|
|
3096
|
+
dots = computed(() => {
|
|
3097
|
+
const s = this.resolvedSize();
|
|
3098
|
+
const g = this.resolvedGap();
|
|
3099
|
+
const rows = this.resolvedRows();
|
|
3100
|
+
const cols = this.resolvedColumns();
|
|
3101
|
+
const total = s + g;
|
|
3102
|
+
const r = s / 2;
|
|
3103
|
+
const result = [];
|
|
3104
|
+
for (let row = 0; row < rows; row++) {
|
|
3105
|
+
for (let col = 0; col < cols; col++) {
|
|
3106
|
+
result.push({ cx: col * total + r, cy: row * total + r });
|
|
3107
|
+
}
|
|
3108
|
+
}
|
|
3109
|
+
return result;
|
|
3110
|
+
}, ...(ngDevMode ? [{ debugName: "dots" }] : /* istanbul ignore next */ []));
|
|
3111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbHalftone, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbHalftone, isStandalone: true, selector: "nb-halftone, [nbHalftone]", inputs: { shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, gapX: { classPropertyName: "gapX", publicName: "gapX", isSignal: true, isRequired: false, transformFunction: null }, gapY: { classPropertyName: "gapY", publicName: "gapY", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.pointer-events-none": "true", "class.nb-halftone--square": "shape() === \"square\"", "class.nb-halftone--circle": "shape() === \"circle\"", "class.nb-halftone--rectangle": "shape() === \"rectangle\"", "attr.aria-hidden": "\"true\"", "attr.data-shape": "shape()", "attr.data-nb-halftone": "\"\"", "style.--nb-halftone-color": "color()", "style.--nb-halftone-dot-size.px": "size()", "style.--nb-halftone-gap-x.px": "resolvedGapXInput()", "style.--nb-halftone-gap-y.px": "resolvedGapYInput()", "style.--nb-halftone-rows": "resolvedRows()", "style.--nb-halftone-columns": "resolvedColumns()" }, classAttribute: "nb-halftone" }, ngImport: i0, template: `
|
|
3113
|
+
@if (shape() !== 'rectangle') {
|
|
3114
|
+
<svg [attr.width]="svgW()" [attr.height]="svgH()" aria-hidden="true">
|
|
3115
|
+
@for (dot of dots(); track $index) {
|
|
3116
|
+
<circle [attr.cx]="dot.cx" [attr.cy]="dot.cy" [attr.r]="dotR()" [attr.fill]="resolvedColor()" />
|
|
3117
|
+
}
|
|
3118
|
+
</svg>
|
|
3119
|
+
}
|
|
3120
|
+
`, isInline: true, styles: [":host{pointer-events:none}:host(.nb-halftone--rectangle){--nb-halftone-color: var(--nb-border);--nb-halftone-dot-size: 8px;--nb-halftone-gap-x: 28px;--nb-halftone-gap-y: 27px;display:block;overflow:hidden;width:calc(var(--nb-halftone-columns) * var(--nb-halftone-gap-x));height:calc(var(--nb-halftone-rows) * var(--nb-halftone-gap-y));background-image:radial-gradient(circle at center,var(--nb-halftone-color) 0 calc(var(--nb-halftone-dot-size) / 2),transparent calc((var(--nb-halftone-dot-size) / 2) + 1px));background-size:var(--nb-halftone-gap-x) var(--nb-halftone-gap-y);background-repeat:repeat;background-position:0 0}:host(.nb-halftone--circle){border-radius:9999px;overflow:hidden}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3121
|
+
}
|
|
3122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbHalftone, decorators: [{
|
|
3123
|
+
type: Component,
|
|
3124
|
+
args: [{ selector: 'nb-halftone, [nbHalftone]', template: `
|
|
3125
|
+
@if (shape() !== 'rectangle') {
|
|
3126
|
+
<svg [attr.width]="svgW()" [attr.height]="svgH()" aria-hidden="true">
|
|
3127
|
+
@for (dot of dots(); track $index) {
|
|
3128
|
+
<circle [attr.cx]="dot.cx" [attr.cy]="dot.cy" [attr.r]="dotR()" [attr.fill]="resolvedColor()" />
|
|
3129
|
+
}
|
|
3130
|
+
</svg>
|
|
3131
|
+
}
|
|
3132
|
+
`, host: {
|
|
3133
|
+
'class': 'nb-halftone',
|
|
3134
|
+
'[class.pointer-events-none]': 'true',
|
|
3135
|
+
'[class.nb-halftone--square]': 'shape() === "square"',
|
|
3136
|
+
'[class.nb-halftone--circle]': 'shape() === "circle"',
|
|
3137
|
+
'[class.nb-halftone--rectangle]': 'shape() === "rectangle"',
|
|
3138
|
+
'[attr.aria-hidden]': '"true"',
|
|
3139
|
+
'[attr.data-shape]': 'shape()',
|
|
3140
|
+
'[attr.data-nb-halftone]': '""',
|
|
3141
|
+
'[style.--nb-halftone-color]': 'color()',
|
|
3142
|
+
'[style.--nb-halftone-dot-size.px]': 'size()',
|
|
3143
|
+
'[style.--nb-halftone-gap-x.px]': 'resolvedGapXInput()',
|
|
3144
|
+
'[style.--nb-halftone-gap-y.px]': 'resolvedGapYInput()',
|
|
3145
|
+
'[style.--nb-halftone-rows]': 'resolvedRows()',
|
|
3146
|
+
'[style.--nb-halftone-columns]': 'resolvedColumns()',
|
|
3147
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{pointer-events:none}:host(.nb-halftone--rectangle){--nb-halftone-color: var(--nb-border);--nb-halftone-dot-size: 8px;--nb-halftone-gap-x: 28px;--nb-halftone-gap-y: 27px;display:block;overflow:hidden;width:calc(var(--nb-halftone-columns) * var(--nb-halftone-gap-x));height:calc(var(--nb-halftone-rows) * var(--nb-halftone-gap-y));background-image:radial-gradient(circle at center,var(--nb-halftone-color) 0 calc(var(--nb-halftone-dot-size) / 2),transparent calc((var(--nb-halftone-dot-size) / 2) + 1px));background-size:var(--nb-halftone-gap-x) var(--nb-halftone-gap-y);background-repeat:repeat;background-position:0 0}:host(.nb-halftone--circle){border-radius:9999px;overflow:hidden}\n"] }]
|
|
3148
|
+
}], propDecorators: { shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], gapX: [{ type: i0.Input, args: [{ isSignal: true, alias: "gapX", required: false }] }], gapY: [{ type: i0.Input, args: [{ isSignal: true, alias: "gapY", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }] } });
|
|
3149
|
+
|
|
3150
|
+
class NbSurface {
|
|
3151
|
+
size = input('auto', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
3152
|
+
layout = input('block', ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
3153
|
+
padding = input('none', ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
|
|
3154
|
+
edge = input('none', ...(ngDevMode ? [{ debugName: "edge" }] : /* istanbul ignore next */ []));
|
|
3155
|
+
clip = input(false, { ...(ngDevMode ? { debugName: "clip" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3156
|
+
// Tone, radius, shadow, and border-width are written as `--nb-surface-*`
|
|
3157
|
+
// variables by the composed capabilities; here we only *consume* them.
|
|
3158
|
+
classes = computed(() => nbClass('relative', this.clip() && 'overflow-hidden', this.sizeClass(), this.layoutClass(), this.edgeClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3159
|
+
sizeClass() {
|
|
3160
|
+
const map = {
|
|
3161
|
+
auto: '',
|
|
3162
|
+
sm: 'size-8 shrink-0',
|
|
3163
|
+
md: 'size-10 shrink-0',
|
|
3164
|
+
lg: 'size-11 shrink-0',
|
|
3165
|
+
xl: 'size-12 shrink-0',
|
|
3166
|
+
};
|
|
3167
|
+
return map[this.size()];
|
|
3168
|
+
}
|
|
3169
|
+
layoutClass() {
|
|
3170
|
+
const map = {
|
|
3171
|
+
block: '',
|
|
3172
|
+
center: 'inline-flex items-center justify-center',
|
|
3173
|
+
row: 'flex items-center',
|
|
3174
|
+
stack: 'flex flex-col',
|
|
3175
|
+
};
|
|
3176
|
+
return map[this.layout()];
|
|
3177
|
+
}
|
|
3178
|
+
edgeClass() {
|
|
3179
|
+
const map = {
|
|
3180
|
+
none: '',
|
|
3181
|
+
top: '[--nb-surface-edge-width:2px] [--nb-surface-edge-color:var(--nb-border)] border-t-(length:--nb-surface-edge-width) border-t-(--nb-surface-edge-color)',
|
|
3182
|
+
bottom: '[--nb-surface-edge-width:2px] [--nb-surface-edge-color:var(--nb-border)] border-b-(length:--nb-surface-edge-width) border-b-(--nb-surface-edge-color)',
|
|
3183
|
+
};
|
|
3184
|
+
return map[this.edge()];
|
|
3185
|
+
}
|
|
3186
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSurface, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3187
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbSurface, isStandalone: true, selector: "[nbSurface]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, edge: { classPropertyName: "edge", publicName: "edge", isSignal: true, isRequired: false, transformFunction: null }, clip: { classPropertyName: "clip", publicName: "clip", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-surface": "\"\"", "attr.data-size": "size()", "attr.data-layout": "layout()", "attr.data-padding": "padding()", "attr.data-edge": "edge()" } }, providers: [
|
|
3188
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'surface' },
|
|
3189
|
+
{
|
|
3190
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3191
|
+
useValue: {
|
|
3192
|
+
tone: 'default',
|
|
3193
|
+
radius: 'md',
|
|
3194
|
+
shadow: 'default',
|
|
3195
|
+
border: 'default',
|
|
3196
|
+
padding: 'none',
|
|
3197
|
+
},
|
|
3198
|
+
},
|
|
3199
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbRadiusCapability, inputs: ["radius", "radius"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }, { directive: NbBorderCapability, inputs: ["border", "border"] }, { directive: NbPaddingCapability, inputs: ["padding", "padding"] }, { directive: NbTypography, inputs: ["font", "typography"] }], ngImport: i0 });
|
|
3200
|
+
}
|
|
3201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSurface, decorators: [{
|
|
3202
|
+
type: Directive,
|
|
3203
|
+
args: [{
|
|
3204
|
+
selector: '[nbSurface]',
|
|
3205
|
+
providers: [
|
|
3206
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'surface' },
|
|
3207
|
+
{
|
|
3208
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3209
|
+
useValue: {
|
|
3210
|
+
tone: 'default',
|
|
3211
|
+
radius: 'md',
|
|
3212
|
+
shadow: 'default',
|
|
3213
|
+
border: 'default',
|
|
3214
|
+
padding: 'none',
|
|
3215
|
+
},
|
|
3216
|
+
},
|
|
3217
|
+
],
|
|
3218
|
+
hostDirectives: [
|
|
3219
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
3220
|
+
{ directive: NbRadiusCapability, inputs: ['radius'] },
|
|
3221
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
3222
|
+
{ directive: NbBorderCapability, inputs: ['border'] },
|
|
3223
|
+
{ directive: NbPaddingCapability, inputs: ['padding'] },
|
|
3224
|
+
// Typography context — exposes nbTypography's `font` input as `typography`.
|
|
3225
|
+
{ directive: NbTypography, inputs: ['font: typography'] },
|
|
3226
|
+
],
|
|
3227
|
+
host: {
|
|
3228
|
+
'[class]': 'classes()',
|
|
3229
|
+
'[attr.data-nb-surface]': '""',
|
|
3230
|
+
'[attr.data-size]': 'size()',
|
|
3231
|
+
'[attr.data-layout]': 'layout()',
|
|
3232
|
+
'[attr.data-padding]': 'padding()',
|
|
3233
|
+
'[attr.data-edge]': 'edge()',
|
|
3234
|
+
},
|
|
3235
|
+
}]
|
|
3236
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], edge: [{ type: i0.Input, args: [{ isSignal: true, alias: "edge", required: false }] }], clip: [{ type: i0.Input, args: [{ isSignal: true, alias: "clip", required: false }] }] } });
|
|
3237
|
+
|
|
3238
|
+
class NbStack {
|
|
3239
|
+
align = input('stretch', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3240
|
+
justify = input('start', ...(ngDevMode ? [{ debugName: "justify" }] : /* istanbul ignore next */ []));
|
|
3241
|
+
separator = input('none', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
|
|
3242
|
+
classes = computed(() => nbClass('flex min-w-0 flex-col', this.alignClass(), this.justifyClass(), this.separatorClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3243
|
+
alignClass() {
|
|
3244
|
+
const map = {
|
|
3245
|
+
stretch: 'items-stretch',
|
|
3246
|
+
start: 'items-start',
|
|
3247
|
+
center: 'items-center',
|
|
3248
|
+
end: 'items-end',
|
|
3249
|
+
};
|
|
3250
|
+
return map[this.align()];
|
|
3251
|
+
}
|
|
3252
|
+
justifyClass() {
|
|
3253
|
+
const map = {
|
|
3254
|
+
start: 'justify-start',
|
|
3255
|
+
center: 'justify-center',
|
|
3256
|
+
end: 'justify-end',
|
|
3257
|
+
between: 'justify-between',
|
|
3258
|
+
};
|
|
3259
|
+
return map[this.justify()];
|
|
3260
|
+
}
|
|
3261
|
+
separatorClass() {
|
|
3262
|
+
const map = {
|
|
3263
|
+
none: '',
|
|
3264
|
+
solid: nbClass('[&>*+*]:border-t-(length:--nb-border-width)', '[&>*+*]:border-solid', '[&>*+*]:[border-top-color:var(--nb-border)]', '[&>*+*]:pt-[var(--nb-stack-gap)]'),
|
|
3265
|
+
dashed: nbClass('[&>*+*]:border-t-(length:--nb-border-width)', '[&>*+*]:border-dashed', '[&>*+*]:[border-top-color:var(--nb-border)]', '[&>*+*]:pt-[var(--nb-stack-gap)]'),
|
|
3266
|
+
thick: nbClass('[&>*+*]:border-t-4', '[&>*+*]:border-solid', '[&>*+*]:[border-top-color:var(--nb-border)]', '[&>*+*]:pt-[var(--nb-stack-gap)]'),
|
|
3267
|
+
};
|
|
3268
|
+
return map[this.separator()];
|
|
3269
|
+
}
|
|
3270
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStack, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3271
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbStack, isStandalone: true, selector: "[nbStack]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-stack": "\"\"", "attr.data-align": "align()", "attr.data-justify": "justify()", "attr.data-separator": "separator()" } }, providers: [
|
|
3272
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'stack' },
|
|
3273
|
+
{
|
|
3274
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3275
|
+
useValue: { gap: 'md' },
|
|
3276
|
+
},
|
|
3277
|
+
], hostDirectives: [{ directive: NbGapCapability, inputs: ["gap", "gap"] }], ngImport: i0 });
|
|
3278
|
+
}
|
|
3279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbStack, decorators: [{
|
|
3280
|
+
type: Directive,
|
|
3281
|
+
args: [{
|
|
3282
|
+
selector: '[nbStack]',
|
|
3283
|
+
providers: [
|
|
3284
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'stack' },
|
|
3285
|
+
{
|
|
3286
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3287
|
+
useValue: { gap: 'md' },
|
|
3288
|
+
},
|
|
3289
|
+
],
|
|
3290
|
+
hostDirectives: [{ directive: NbGapCapability, inputs: ['gap'] }],
|
|
3291
|
+
host: {
|
|
3292
|
+
'[class]': 'classes()',
|
|
3293
|
+
'[attr.data-nb-stack]': '""',
|
|
3294
|
+
'[attr.data-align]': 'align()',
|
|
3295
|
+
'[attr.data-justify]': 'justify()',
|
|
3296
|
+
'[attr.data-separator]': 'separator()',
|
|
3297
|
+
},
|
|
3298
|
+
}]
|
|
3299
|
+
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
|
|
3300
|
+
|
|
3301
|
+
class NbCluster {
|
|
3302
|
+
align = input('center', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3303
|
+
justify = input('start', ...(ngDevMode ? [{ debugName: "justify" }] : /* istanbul ignore next */ []));
|
|
3304
|
+
wrap = input('wrap', ...(ngDevMode ? [{ debugName: "wrap" }] : /* istanbul ignore next */ []));
|
|
3305
|
+
separator = input('none', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
|
|
3306
|
+
separatorColumnGapStyle = computed(() => this.separator() === 'none' ? null : '0px', ...(ngDevMode ? [{ debugName: "separatorColumnGapStyle" }] : /* istanbul ignore next */ []));
|
|
3307
|
+
classes = computed(() => nbClass('flex min-w-0', this.gapClass(), this.alignClass(), this.justifyClass(), this.wrapClass(), this.separatorClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3308
|
+
gapClass() {
|
|
3309
|
+
// With a separator, gap collapses on the inline axis (the separator owns
|
|
3310
|
+
// the inline spacing) and survives only on the block axis for wrapped rows.
|
|
3311
|
+
if (this.separator() !== 'none') {
|
|
3312
|
+
return 'gap-x-0';
|
|
3313
|
+
}
|
|
3314
|
+
return '';
|
|
3315
|
+
}
|
|
3316
|
+
alignClass() {
|
|
3317
|
+
const map = {
|
|
3318
|
+
start: 'items-start',
|
|
3319
|
+
center: 'items-center',
|
|
3320
|
+
end: 'items-end',
|
|
3321
|
+
baseline: 'items-baseline',
|
|
3322
|
+
stretch: 'items-stretch',
|
|
3323
|
+
};
|
|
3324
|
+
return map[this.align()];
|
|
3325
|
+
}
|
|
3326
|
+
justifyClass() {
|
|
3327
|
+
const map = {
|
|
3328
|
+
start: 'justify-start',
|
|
3329
|
+
center: 'justify-center',
|
|
3330
|
+
end: 'justify-end',
|
|
3331
|
+
between: 'justify-between',
|
|
3332
|
+
};
|
|
3333
|
+
return map[this.justify()];
|
|
3334
|
+
}
|
|
3335
|
+
wrapClass() {
|
|
3336
|
+
const map = {
|
|
3337
|
+
wrap: 'flex-wrap',
|
|
3338
|
+
nowrap: 'flex-nowrap',
|
|
3339
|
+
};
|
|
3340
|
+
return map[this.wrap()];
|
|
3341
|
+
}
|
|
3342
|
+
separatorClass() {
|
|
3343
|
+
const separator = this.separator();
|
|
3344
|
+
if (separator === 'none')
|
|
3345
|
+
return '';
|
|
3346
|
+
return nbClass(separatorBaseClass$1, separatorStyleClass$1[separator]);
|
|
3347
|
+
}
|
|
3348
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbCluster, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3349
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbCluster, isStandalone: true, selector: "[nbCluster]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-cluster": "\"\"", "attr.data-align": "align()", "attr.data-justify": "justify()", "attr.data-wrap": "wrap()", "attr.data-separator": "separator()", "style.column-gap": "separatorColumnGapStyle()" } }, providers: [
|
|
3350
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'cluster' },
|
|
3351
|
+
{
|
|
3352
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3353
|
+
useValue: { gap: 'md', padding: 'none' },
|
|
3354
|
+
},
|
|
3355
|
+
], hostDirectives: [{ directive: NbGapCapability, inputs: ["gap", "gap"] }, { directive: NbPaddingCapability, inputs: ["padding", "padding"] }], ngImport: i0 });
|
|
3356
|
+
}
|
|
3357
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbCluster, decorators: [{
|
|
3358
|
+
type: Directive,
|
|
3359
|
+
args: [{
|
|
3360
|
+
selector: '[nbCluster]',
|
|
3361
|
+
providers: [
|
|
3362
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'cluster' },
|
|
3363
|
+
{
|
|
3364
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3365
|
+
useValue: { gap: 'md', padding: 'none' },
|
|
3366
|
+
},
|
|
3367
|
+
],
|
|
3368
|
+
hostDirectives: [
|
|
3369
|
+
{ directive: NbGapCapability, inputs: ['gap'] },
|
|
3370
|
+
{ directive: NbPaddingCapability, inputs: ['padding'] },
|
|
3371
|
+
],
|
|
3372
|
+
host: {
|
|
3373
|
+
'[class]': 'classes()',
|
|
3374
|
+
'[attr.data-nb-cluster]': '""',
|
|
3375
|
+
'[attr.data-align]': 'align()',
|
|
3376
|
+
'[attr.data-justify]': 'justify()',
|
|
3377
|
+
'[attr.data-wrap]': 'wrap()',
|
|
3378
|
+
'[attr.data-separator]': 'separator()',
|
|
3379
|
+
'[style.column-gap]': 'separatorColumnGapStyle()',
|
|
3380
|
+
},
|
|
3381
|
+
}]
|
|
3382
|
+
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
|
|
3383
|
+
// Written as module-level constants so Tailwind's static scanner emits the classes.
|
|
3384
|
+
const separatorBaseClass$1 = nbClass('[--nb-cluster-separator-gap:calc(var(--_nb-gap-resolved)*0.5)]', '[--nb-cluster-separator-color:var(--nb-border)]', '[&>*+*]:[margin-inline-start:var(--nb-cluster-separator-gap)]', '[&>*+*]:[padding-inline-start:var(--nb-cluster-separator-gap)]', '[&>*+*]:[border-inline-start-color:var(--nb-cluster-separator-color)]');
|
|
3385
|
+
const separatorStyleClass$1 = {
|
|
3386
|
+
solid: nbClass('[--nb-cluster-separator-thickness:2px]', '[&>*+*]:[border-inline-start-width:var(--nb-cluster-separator-thickness)]', '[&>*+*]:[border-inline-start-style:solid]'),
|
|
3387
|
+
dashed: nbClass('[--nb-cluster-separator-thickness:2px]', '[&>*+*]:[border-inline-start-width:var(--nb-cluster-separator-thickness)]', '[&>*+*]:[border-inline-start-style:dashed]'),
|
|
3388
|
+
thick: nbClass('[--nb-cluster-separator-thickness:4px]', '[&>*+*]:[border-inline-start-width:var(--nb-cluster-separator-thickness)]', '[&>*+*]:[border-inline-start-style:solid]'),
|
|
3389
|
+
};
|
|
3390
|
+
|
|
3391
|
+
class NbSplit {
|
|
3392
|
+
ratio = input('1:1', ...(ngDevMode ? [{ debugName: "ratio" }] : /* istanbul ignore next */ []));
|
|
3393
|
+
collapse = input('md', ...(ngDevMode ? [{ debugName: "collapse" }] : /* istanbul ignore next */ []));
|
|
3394
|
+
align = input('stretch', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3395
|
+
separator = input('none', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
|
|
3396
|
+
classes = computed(() => nbClass('grid min-w-0', this.alignClass(), this.ratioClass(), this.collapseClass(), this.separatorClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3397
|
+
alignClass() {
|
|
3398
|
+
const map = {
|
|
3399
|
+
start: 'items-start',
|
|
3400
|
+
center: 'items-center',
|
|
3401
|
+
end: 'items-end',
|
|
3402
|
+
stretch: 'items-stretch',
|
|
3403
|
+
};
|
|
3404
|
+
return map[this.align()];
|
|
3405
|
+
}
|
|
3406
|
+
ratioClass() {
|
|
3407
|
+
const map = {
|
|
3408
|
+
'1:1': '[--nb-split-columns:minmax(0,1fr)_minmax(0,1fr)]',
|
|
3409
|
+
'2:1': '[--nb-split-columns:minmax(0,2fr)_minmax(0,1fr)]',
|
|
3410
|
+
'3:1': '[--nb-split-columns:minmax(0,3fr)_minmax(0,1fr)]',
|
|
3411
|
+
'1:2': '[--nb-split-columns:minmax(0,1fr)_minmax(0,2fr)]',
|
|
3412
|
+
'1:3': '[--nb-split-columns:minmax(0,1fr)_minmax(0,3fr)]',
|
|
3413
|
+
'fill:auto': '[--nb-split-columns:minmax(0,1fr)_auto]',
|
|
3414
|
+
'auto:fill': '[--nb-split-columns:auto_minmax(0,1fr)]',
|
|
3415
|
+
};
|
|
3416
|
+
return map[this.ratio()];
|
|
3417
|
+
}
|
|
3418
|
+
collapseClass() {
|
|
3419
|
+
const map = {
|
|
3420
|
+
none: 'grid-cols-[var(--nb-split-columns)]',
|
|
3421
|
+
sm: 'grid-cols-1 sm:grid-cols-[var(--nb-split-columns)]',
|
|
3422
|
+
md: 'grid-cols-1 md:grid-cols-[var(--nb-split-columns)]',
|
|
3423
|
+
lg: 'grid-cols-1 lg:grid-cols-[var(--nb-split-columns)]',
|
|
3424
|
+
};
|
|
3425
|
+
return map[this.collapse()];
|
|
3426
|
+
}
|
|
3427
|
+
separatorClass() {
|
|
3428
|
+
const separator = this.separator();
|
|
3429
|
+
if (separator === 'none') {
|
|
3430
|
+
return '';
|
|
3431
|
+
}
|
|
3432
|
+
return nbClass(separatorBaseClass, separatorStyleClass[separator], separatorVisibilityClass[this.collapse()]);
|
|
3433
|
+
}
|
|
3434
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSplit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3435
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbSplit, isStandalone: true, selector: "[nbSplit]", inputs: { ratio: { classPropertyName: "ratio", publicName: "ratio", isSignal: true, isRequired: false, transformFunction: null }, collapse: { classPropertyName: "collapse", publicName: "collapse", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-split": "\"\"", "attr.data-ratio": "ratio()", "attr.data-collapse": "collapse()", "attr.data-align": "align()", "attr.data-separator": "separator()" } }, providers: [
|
|
3436
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'split' },
|
|
3437
|
+
{
|
|
3438
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3439
|
+
useValue: { gap: 'lg', padding: 'none' },
|
|
3440
|
+
},
|
|
3441
|
+
], hostDirectives: [{ directive: NbGapCapability, inputs: ["gap", "gap"] }, { directive: NbPaddingCapability, inputs: ["padding", "padding"] }], ngImport: i0 });
|
|
3442
|
+
}
|
|
3443
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSplit, decorators: [{
|
|
3444
|
+
type: Directive,
|
|
3445
|
+
args: [{
|
|
3446
|
+
selector: '[nbSplit]',
|
|
3447
|
+
providers: [
|
|
3448
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'split' },
|
|
3449
|
+
{
|
|
3450
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3451
|
+
useValue: { gap: 'lg', padding: 'none' },
|
|
3452
|
+
},
|
|
3453
|
+
],
|
|
3454
|
+
hostDirectives: [
|
|
3455
|
+
{ directive: NbGapCapability, inputs: ['gap'] },
|
|
3456
|
+
{ directive: NbPaddingCapability, inputs: ['padding'] },
|
|
3457
|
+
],
|
|
3458
|
+
host: {
|
|
3459
|
+
'[class]': 'classes()',
|
|
3460
|
+
'[attr.data-nb-split]': '""',
|
|
3461
|
+
'[attr.data-ratio]': 'ratio()',
|
|
3462
|
+
'[attr.data-collapse]': 'collapse()',
|
|
3463
|
+
'[attr.data-align]': 'align()',
|
|
3464
|
+
'[attr.data-separator]': 'separator()',
|
|
3465
|
+
},
|
|
3466
|
+
}]
|
|
3467
|
+
}], propDecorators: { ratio: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratio", required: false }] }], collapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapse", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }] } });
|
|
3468
|
+
// A `::after` pseudo-element on the first column draws the vertical line,
|
|
3469
|
+
// centered in the gap. These class strings are written out literally (rather
|
|
3470
|
+
// than assembled at runtime) so Tailwind's static scanner can emit them.
|
|
3471
|
+
const separatorBaseClass = nbClass('[&>*:first-child]:relative', '[&>*:first-child]:after:pointer-events-none', '[&>*:first-child]:after:absolute', '[&>*:first-child]:after:inset-y-0', '[&>*:first-child]:after:[inset-inline-end:calc(var(--_nb-gap-resolved)/-2)]', '[&>*:first-child]:after:[border-inline-end-color:var(--nb-border)]', '[&>*:first-child]:after:content-[""]');
|
|
3472
|
+
const separatorStyleClass = {
|
|
3473
|
+
solid: nbClass('[&>*:first-child]:after:[border-inline-end-width:var(--nb-border-width)]', '[&>*:first-child]:after:border-solid'),
|
|
3474
|
+
dashed: nbClass('[&>*:first-child]:after:[border-inline-end-width:var(--nb-border-width)]', '[&>*:first-child]:after:border-dashed'),
|
|
3475
|
+
thick: nbClass('[&>*:first-child]:after:[border-inline-end-width:4px]', '[&>*:first-child]:after:border-solid'),
|
|
3476
|
+
};
|
|
3477
|
+
// Hide the separator while the split is stacked into a single column, then
|
|
3478
|
+
// reveal it at the same breakpoint where the columns appear, so the line stays
|
|
3479
|
+
// in sync with `collapse` (and tracks Tailwind's breakpoint config).
|
|
3480
|
+
const separatorVisibilityClass = {
|
|
3481
|
+
none: '',
|
|
3482
|
+
sm: '[&>*:first-child]:after:hidden sm:[&>*:first-child]:after:block',
|
|
3483
|
+
md: '[&>*:first-child]:after:hidden md:[&>*:first-child]:after:block',
|
|
3484
|
+
lg: '[&>*:first-child]:after:hidden lg:[&>*:first-child]:after:block',
|
|
3485
|
+
};
|
|
3486
|
+
|
|
3487
|
+
class NbSection {
|
|
3488
|
+
divider = input('none', ...(ngDevMode ? [{ debugName: "divider" }] : /* istanbul ignore next */ []));
|
|
3489
|
+
dividerStyle = input('solid', ...(ngDevMode ? [{ debugName: "dividerStyle" }] : /* istanbul ignore next */ []));
|
|
3490
|
+
layout = input('default', ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
3491
|
+
align = input('stretch', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3492
|
+
flush = input(false, { ...(ngDevMode ? { debugName: "flush" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3493
|
+
classes = computed(() => nbClass('box-border min-w-0', this.layoutClass(), this.alignClass(), this.dividerClass(), this.flush() &&
|
|
3494
|
+
'mx-[calc(var(--nb-padding-token,var(--_nb-padding-default))*-1)]'), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3495
|
+
layoutClass() {
|
|
3496
|
+
const map = {
|
|
3497
|
+
default: 'block',
|
|
3498
|
+
center: 'flex justify-center gap-[var(--nb-spacing-md,1rem)]',
|
|
3499
|
+
between: 'flex justify-between gap-[var(--nb-spacing-md,1rem)]',
|
|
3500
|
+
};
|
|
3501
|
+
return map[this.layout()];
|
|
3502
|
+
}
|
|
3503
|
+
alignClass() {
|
|
3504
|
+
if (this.layout() === 'default') {
|
|
3505
|
+
return '';
|
|
3506
|
+
}
|
|
3507
|
+
const map = {
|
|
3508
|
+
stretch: 'items-stretch',
|
|
3509
|
+
start: 'items-start',
|
|
3510
|
+
center: 'items-center',
|
|
3511
|
+
end: 'items-end',
|
|
3512
|
+
};
|
|
3513
|
+
return map[this.align()];
|
|
3514
|
+
}
|
|
3515
|
+
dividerClass() {
|
|
3516
|
+
const side = this.divider();
|
|
3517
|
+
if (side === 'none') {
|
|
3518
|
+
return '';
|
|
3519
|
+
}
|
|
3520
|
+
const style = this.dividerStyleClass();
|
|
3521
|
+
const widthMap = {
|
|
3522
|
+
top: 'border-t-(length:--nb-border-width)',
|
|
3523
|
+
right: 'border-r-(length:--nb-border-width)',
|
|
3524
|
+
bottom: 'border-b-(length:--nb-border-width)',
|
|
3525
|
+
left: 'border-l-(length:--nb-border-width)',
|
|
3526
|
+
block: 'border-y-(length:--nb-border-width)',
|
|
3527
|
+
inline: 'border-x-(length:--nb-border-width)',
|
|
3528
|
+
all: 'border-(length:--nb-border-width)',
|
|
3529
|
+
};
|
|
3530
|
+
return nbClass(widthMap[side], 'border-(--nb-border)', style);
|
|
3531
|
+
}
|
|
3532
|
+
dividerStyleClass() {
|
|
3533
|
+
const map = {
|
|
3534
|
+
solid: 'border-solid',
|
|
3535
|
+
dashed: 'border-dashed',
|
|
3536
|
+
dotted: 'border-dotted',
|
|
3537
|
+
};
|
|
3538
|
+
return map[this.dividerStyle()];
|
|
3539
|
+
}
|
|
3540
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSection, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3541
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbSection, isStandalone: true, selector: "[nbSection]", inputs: { divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null }, dividerStyle: { classPropertyName: "dividerStyle", publicName: "dividerStyle", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, flush: { classPropertyName: "flush", publicName: "flush", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-section": "\"\"", "attr.data-divider": "divider()", "attr.data-divider-style": "dividerStyle()", "attr.data-layout": "layout()", "attr.data-align": "align()", "attr.data-flush": "flush() ? \"\" : null" } }, providers: [
|
|
3542
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'section' },
|
|
3543
|
+
{
|
|
3544
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3545
|
+
useValue: { padding: 'md' },
|
|
3546
|
+
},
|
|
3547
|
+
], exportAs: ["nbSection"], hostDirectives: [{ directive: NbPaddingCapability, inputs: ["padding", "padding"] }], ngImport: i0 });
|
|
3548
|
+
}
|
|
3549
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbSection, decorators: [{
|
|
3550
|
+
type: Directive,
|
|
3551
|
+
args: [{
|
|
3552
|
+
selector: '[nbSection]',
|
|
3553
|
+
exportAs: 'nbSection',
|
|
3554
|
+
providers: [
|
|
3555
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'section' },
|
|
3556
|
+
{
|
|
3557
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3558
|
+
useValue: { padding: 'md' },
|
|
3559
|
+
},
|
|
3560
|
+
],
|
|
3561
|
+
hostDirectives: [{ directive: NbPaddingCapability, inputs: ['padding'] }],
|
|
3562
|
+
host: {
|
|
3563
|
+
'[class]': 'classes()',
|
|
3564
|
+
'[attr.data-nb-section]': '""',
|
|
3565
|
+
'[attr.data-divider]': 'divider()',
|
|
3566
|
+
'[attr.data-divider-style]': 'dividerStyle()',
|
|
3567
|
+
'[attr.data-layout]': 'layout()',
|
|
3568
|
+
'[attr.data-align]': 'align()',
|
|
3569
|
+
'[attr.data-flush]': 'flush() ? "" : null',
|
|
3570
|
+
},
|
|
3571
|
+
}]
|
|
3572
|
+
}], propDecorators: { divider: [{ type: i0.Input, args: [{ isSignal: true, alias: "divider", required: false }] }], dividerStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "dividerStyle", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], flush: [{ type: i0.Input, args: [{ isSignal: true, alias: "flush", required: false }] }] } });
|
|
3573
|
+
|
|
3574
|
+
class NbCallout {
|
|
3575
|
+
size = input('lg', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
3576
|
+
layout = input('inline', ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
3577
|
+
radius = input(undefined, ...(ngDevMode ? [{ debugName: "radius" }] : /* istanbul ignore next */ []));
|
|
3578
|
+
classes = computed(() => nbClass('relative inline-flex items-center gap-3', 'border-(length:--nb-callout-border-width)', 'rounded-(--nb-callout-radius)', 'font-black uppercase leading-none', this.sizeClass(), this.layoutClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3579
|
+
// Inline style wins over the size-derived `--nb-callout-radius` class, so an
|
|
3580
|
+
// explicit `radius` always takes precedence; null leaves the size default.
|
|
3581
|
+
radiusStyle = computed(() => {
|
|
3582
|
+
const r = this.radius();
|
|
3583
|
+
return r !== undefined ? nbRadiusValue(r) : null;
|
|
3584
|
+
}, ...(ngDevMode ? [{ debugName: "radiusStyle" }] : /* istanbul ignore next */ []));
|
|
3585
|
+
sizeClass() {
|
|
3586
|
+
const map = {
|
|
3587
|
+
sm: 'min-h-9 px-3 py-2 text-sm [--nb-callout-radius:0.5rem] [--nb-callout-border-width:2px]',
|
|
3588
|
+
md: 'min-h-11 px-4 py-2 text-base [--nb-callout-radius:0.625rem] [--nb-callout-border-width:2px]',
|
|
3589
|
+
lg: 'min-h-14 px-5 py-3 text-2xl [--nb-callout-radius:0.75rem] [--nb-callout-border-width:3px]',
|
|
3590
|
+
xl: 'min-h-20 px-6 py-4 text-5xl [--nb-callout-radius:0.875rem] [--nb-callout-border-width:4px]',
|
|
3591
|
+
};
|
|
3592
|
+
return map[this.size()];
|
|
3593
|
+
}
|
|
3594
|
+
layoutClass() {
|
|
3595
|
+
const map = {
|
|
3596
|
+
inline: 'justify-start',
|
|
3597
|
+
between: 'w-full justify-between',
|
|
3598
|
+
center: 'justify-center text-center',
|
|
3599
|
+
};
|
|
3600
|
+
return map[this.layout()];
|
|
3601
|
+
}
|
|
3602
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbCallout, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3603
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbCallout, isStandalone: true, selector: "[nbCallout]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-callout": "\"\"", "attr.data-size": "size()", "attr.data-layout": "layout()", "attr.data-radius": "radius() ?? null", "style.--nb-callout-radius": "radiusStyle()" } }, providers: [
|
|
3604
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'callout' },
|
|
3605
|
+
{
|
|
3606
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3607
|
+
useValue: { tone: 'yellow', shadow: 'hard' },
|
|
3608
|
+
},
|
|
3609
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }, { directive: NbShadowCapability, inputs: ["shadow", "shadow"] }], ngImport: i0 });
|
|
3610
|
+
}
|
|
3611
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbCallout, decorators: [{
|
|
3612
|
+
type: Directive,
|
|
3613
|
+
args: [{
|
|
3614
|
+
selector: '[nbCallout]',
|
|
3615
|
+
providers: [
|
|
3616
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'callout' },
|
|
3617
|
+
{
|
|
3618
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3619
|
+
useValue: { tone: 'yellow', shadow: 'hard' },
|
|
3620
|
+
},
|
|
3621
|
+
],
|
|
3622
|
+
hostDirectives: [
|
|
3623
|
+
{ directive: NbToneCapability, inputs: ['tone'] },
|
|
3624
|
+
{ directive: NbShadowCapability, inputs: ['shadow'] },
|
|
3625
|
+
],
|
|
3626
|
+
host: {
|
|
3627
|
+
'[class]': 'classes()',
|
|
3628
|
+
'[attr.data-nb-callout]': '""',
|
|
3629
|
+
'[attr.data-size]': 'size()',
|
|
3630
|
+
'[attr.data-layout]': 'layout()',
|
|
3631
|
+
'[attr.data-radius]': 'radius() ?? null',
|
|
3632
|
+
'[style.--nb-callout-radius]': 'radiusStyle()',
|
|
3633
|
+
},
|
|
3634
|
+
}]
|
|
3635
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }] } });
|
|
3636
|
+
|
|
3637
|
+
class NbMediaItem {
|
|
3638
|
+
variant = input('plain', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
3639
|
+
orientation = input('horizontal', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
3640
|
+
align = input('start', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
3641
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
3642
|
+
icon = input(undefined, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
3643
|
+
iconAlt = input('', ...(ngDevMode ? [{ debugName: "iconAlt" }] : /* istanbul ignore next */ []));
|
|
3644
|
+
iconBackground = input(undefined, ...(ngDevMode ? [{ debugName: "iconBackground" }] : /* istanbul ignore next */ []));
|
|
3645
|
+
title = input(undefined, ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
|
|
3646
|
+
description = input(undefined, ...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
|
|
3647
|
+
classes = computed(() => nbClass('relative min-w-0', 'inline-flex font-bold leading-tight', '[--nb-media-item-description-opacity:0.7]', '[&_svg]:shrink-0 [&_img]:shrink-0 [&_[data-nb-media-item-icon]]:shrink-0 [&_[nbSurface]]:shrink-0', '[&_svg]:rounded-[calc(var(--nb-media-item-radius)-0.25rem)]', '[&_img]:rounded-[calc(var(--nb-media-item-radius)-0.25rem)]', '[&_svg]:h-[var(--nb-media-item-icon-size)] [&_svg]:max-w-[var(--nb-media-item-icon-size)] [&_svg]:w-auto', '[&_img]:h-[var(--nb-media-item-icon-size)] [&_img]:max-w-[var(--nb-media-item-icon-size)] [&_img]:w-auto [&_img]:object-contain', '[&_[data-nb-media-item-title]]:block', '[&_[data-nb-media-item-title]]:[font-family:var(--nb-media-item-title-font-family,inherit)]', '[&_[data-nb-media-item-title]]:font-black', '[&_[data-nb-media-item-title]]:leading-none', '[&_[data-nb-media-item-title]]:text-[length:var(--nb-media-item-title-size,var(--nb-media-item-title-default-size))]', '[&_[data-nb-media-item-description]]:mt-1', '[&_[data-nb-media-item-description]]:block', '[&_[data-nb-media-item-description]]:text-[length:var(--nb-media-item-description-size,var(--nb-media-item-description-default-size))]', '[&_[data-nb-media-item-description]]:font-bold', '[&_[data-nb-media-item-description]]:leading-none', '[&_[data-nb-media-item-description]]:opacity-[var(--nb-media-item-description-opacity)]', this.variantClass(), this.orientationClass(), this.alignClass(), this.sizeClass()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3648
|
+
iconClasses = computed(() => mediaItemIconClasses(), ...(ngDevMode ? [{ debugName: "iconClasses" }] : /* istanbul ignore next */ []));
|
|
3649
|
+
variantClass() {
|
|
3650
|
+
const map = {
|
|
3651
|
+
plain: '[--nb-media-item-radius:var(--nb-radius)] bg-transparent',
|
|
3652
|
+
boxed: 'border-[var(--nb-border-width)] border-[var(--nb-media-item-border-color)] bg-[var(--nb-media-item-bg)] shadow-[var(--nb-shadow-offset-x)_var(--nb-shadow-offset-y)_0_0_var(--nb-shadow)] [--nb-media-item-radius:var(--nb-radius)] rounded-[var(--nb-media-item-radius)]',
|
|
3653
|
+
chip: 'border-[var(--nb-border-width)] border-[var(--nb-media-item-border-color)] bg-[var(--nb-media-item-bg)] [--nb-media-item-radius:9999px] rounded-[var(--nb-media-item-radius)]',
|
|
3654
|
+
};
|
|
3655
|
+
return map[this.variant()];
|
|
3656
|
+
}
|
|
3657
|
+
orientationClass() {
|
|
3658
|
+
const map = {
|
|
3659
|
+
horizontal: 'flex-row items-center',
|
|
3660
|
+
vertical: 'flex-col',
|
|
3661
|
+
};
|
|
3662
|
+
return map[this.orientation()];
|
|
3663
|
+
}
|
|
3664
|
+
alignClass() {
|
|
3665
|
+
const map = {
|
|
3666
|
+
start: 'justify-start text-left',
|
|
3667
|
+
center: 'justify-center text-center',
|
|
3668
|
+
between: 'w-full justify-between',
|
|
3669
|
+
};
|
|
3670
|
+
return map[this.align()];
|
|
3671
|
+
}
|
|
3672
|
+
sizeClass() {
|
|
3673
|
+
const map = {
|
|
3674
|
+
xs: nbClass('gap-[var(--nb-media-item-gap)] text-[0.6875rem]', '[--nb-media-item-gap:0.375rem]', '[--nb-media-item-icon-size:1rem]', '[--nb-media-item-surface-size:2rem]', '[--nb-media-item-title-default-size:0.75rem]', '[--nb-media-item-description-default-size:0.5625rem]', this.variant() === 'plain' ? '' : 'px-2 py-1'),
|
|
3675
|
+
sm: nbClass('gap-[var(--nb-media-item-gap)] text-xs', '[--nb-media-item-gap:0.5rem]', '[--nb-media-item-icon-size:1rem]', '[--nb-media-item-surface-size:2.25rem]', '[--nb-media-item-title-default-size:0.75rem]', '[--nb-media-item-description-default-size:0.625rem]', this.variant() === 'plain' ? '' : 'px-2.5 py-1.5'),
|
|
3676
|
+
md: nbClass('gap-[var(--nb-media-item-gap)] text-sm', '[--nb-media-item-gap:0.75rem]', '[--nb-media-item-icon-size:1.25rem]', '[--nb-media-item-surface-size:2.75rem]', '[--nb-media-item-title-default-size:0.875rem]', '[--nb-media-item-description-default-size:0.65625rem]', this.variant() === 'plain' ? '' : 'px-3 py-2'),
|
|
3677
|
+
lg: nbClass('gap-[var(--nb-media-item-gap)] text-base', '[--nb-media-item-gap:1rem]', '[--nb-media-item-icon-size:1.5rem]', '[--nb-media-item-surface-size:3.25rem]', '[--nb-media-item-title-default-size:1rem]', '[--nb-media-item-description-default-size:0.75rem]', this.variant() === 'plain' ? '' : 'px-4 py-3'),
|
|
3678
|
+
};
|
|
3679
|
+
return map[this.size()];
|
|
3680
|
+
}
|
|
3681
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3682
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: NbMediaItem, isStandalone: true, selector: "nb-media-item, [nbMediaItem]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconAlt: { classPropertyName: "iconAlt", publicName: "iconAlt", isSignal: true, isRequired: false, transformFunction: null }, iconBackground: { classPropertyName: "iconBackground", publicName: "iconBackground", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-media-item": "\"\"", "attr.data-variant": "variant()", "attr.data-orientation": "orientation()", "attr.data-align": "align()", "attr.data-size": "size()" } }, providers: [
|
|
3683
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'media-item' },
|
|
3684
|
+
{
|
|
3685
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3686
|
+
useValue: { tone: 'default' },
|
|
3687
|
+
},
|
|
3688
|
+
], hostDirectives: [{ directive: NbToneCapability, inputs: ["tone", "tone"] }], ngImport: i0, template: `
|
|
3689
|
+
@if (icon()) {
|
|
3690
|
+
@if (iconBackground()) {
|
|
3691
|
+
<span
|
|
3692
|
+
data-nb-media-item-icon
|
|
3693
|
+
data-surface="true"
|
|
3694
|
+
[attr.data-background]="iconBackground()"
|
|
3695
|
+
[class]="iconClasses()"
|
|
3696
|
+
[style.--nb-media-item-icon-bg]="iconBackground()"
|
|
3697
|
+
>
|
|
3698
|
+
<img [src]="icon()" [alt]="iconAlt()" />
|
|
3699
|
+
</span>
|
|
3700
|
+
} @else {
|
|
3701
|
+
<img [src]="icon()" [alt]="iconAlt()" />
|
|
3702
|
+
}
|
|
3703
|
+
} @else {
|
|
3704
|
+
<ng-content select="nb-media-item-icon, [nbMediaItemIcon], [nbSurface], img, svg" />
|
|
3705
|
+
}
|
|
3706
|
+
|
|
3707
|
+
<div data-nb-media-item-content class="min-w-0">
|
|
3708
|
+
@if (title()) {
|
|
3709
|
+
<span data-nb-media-item-title>{{ title() }}</span>
|
|
3710
|
+
} @else {
|
|
3711
|
+
<ng-content select="nb-media-item-title, [nbMediaItemTitle]" />
|
|
3712
|
+
}
|
|
3713
|
+
@if (description()) {
|
|
3714
|
+
<span data-nb-media-item-description>{{ description() }}</span>
|
|
3715
|
+
} @else {
|
|
3716
|
+
<ng-content select="nb-media-item-description, [nbMediaItemDescription]" />
|
|
3717
|
+
}
|
|
3718
|
+
@if (!title() && !description()) {
|
|
3719
|
+
<ng-content />
|
|
3720
|
+
}
|
|
3721
|
+
</div>
|
|
3722
|
+
|
|
3723
|
+
<ng-content select="nb-media-item-action, [nbMediaItemAction]" />
|
|
3724
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3725
|
+
}
|
|
3726
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItem, decorators: [{
|
|
3727
|
+
type: Component,
|
|
3728
|
+
args: [{
|
|
3729
|
+
selector: 'nb-media-item, [nbMediaItem]',
|
|
3730
|
+
providers: [
|
|
3731
|
+
{ provide: NB_STYLE_NAMESPACE, useValue: 'media-item' },
|
|
3732
|
+
{
|
|
3733
|
+
provide: NB_STYLE_DEFAULTS,
|
|
3734
|
+
useValue: { tone: 'default' },
|
|
3735
|
+
},
|
|
3736
|
+
],
|
|
3737
|
+
hostDirectives: [{ directive: NbToneCapability, inputs: ['tone'] }],
|
|
3738
|
+
template: `
|
|
3739
|
+
@if (icon()) {
|
|
3740
|
+
@if (iconBackground()) {
|
|
3741
|
+
<span
|
|
3742
|
+
data-nb-media-item-icon
|
|
3743
|
+
data-surface="true"
|
|
3744
|
+
[attr.data-background]="iconBackground()"
|
|
3745
|
+
[class]="iconClasses()"
|
|
3746
|
+
[style.--nb-media-item-icon-bg]="iconBackground()"
|
|
3747
|
+
>
|
|
3748
|
+
<img [src]="icon()" [alt]="iconAlt()" />
|
|
3749
|
+
</span>
|
|
3750
|
+
} @else {
|
|
3751
|
+
<img [src]="icon()" [alt]="iconAlt()" />
|
|
3752
|
+
}
|
|
3753
|
+
} @else {
|
|
3754
|
+
<ng-content select="nb-media-item-icon, [nbMediaItemIcon], [nbSurface], img, svg" />
|
|
3755
|
+
}
|
|
3756
|
+
|
|
3757
|
+
<div data-nb-media-item-content class="min-w-0">
|
|
3758
|
+
@if (title()) {
|
|
3759
|
+
<span data-nb-media-item-title>{{ title() }}</span>
|
|
3760
|
+
} @else {
|
|
3761
|
+
<ng-content select="nb-media-item-title, [nbMediaItemTitle]" />
|
|
3762
|
+
}
|
|
3763
|
+
@if (description()) {
|
|
3764
|
+
<span data-nb-media-item-description>{{ description() }}</span>
|
|
3765
|
+
} @else {
|
|
3766
|
+
<ng-content select="nb-media-item-description, [nbMediaItemDescription]" />
|
|
3767
|
+
}
|
|
3768
|
+
@if (!title() && !description()) {
|
|
3769
|
+
<ng-content />
|
|
3770
|
+
}
|
|
3771
|
+
</div>
|
|
3772
|
+
|
|
3773
|
+
<ng-content select="nb-media-item-action, [nbMediaItemAction]" />
|
|
3774
|
+
`,
|
|
3775
|
+
host: {
|
|
3776
|
+
'[class]': 'classes()',
|
|
3777
|
+
'[attr.data-nb-media-item]': '""',
|
|
3778
|
+
'[attr.data-variant]': 'variant()',
|
|
3779
|
+
'[attr.data-orientation]': 'orientation()',
|
|
3780
|
+
'[attr.data-align]': 'align()',
|
|
3781
|
+
'[attr.data-size]': 'size()',
|
|
3782
|
+
},
|
|
3783
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3784
|
+
}]
|
|
3785
|
+
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], iconAlt: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconAlt", required: false }] }], iconBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconBackground", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }] } });
|
|
3786
|
+
class NbMediaItemIcon {
|
|
3787
|
+
surface = input(false, { ...(ngDevMode ? { debugName: "surface" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
3788
|
+
background = input('var(--nb-surface)', ...(ngDevMode ? [{ debugName: "background" }] : /* istanbul ignore next */ []));
|
|
3789
|
+
classes = computed(() => nbClass('shrink-0', this.surface() && mediaItemIconClasses()), ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
|
|
3790
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItemIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3791
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbMediaItemIcon, isStandalone: true, selector: "nb-media-item-icon, [nbMediaItemIcon]", inputs: { surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.data-nb-media-item-icon": "\"\"", "attr.data-surface": "surface()", "attr.data-background": "surface() ? background() : null", "style.--nb-media-item-icon-bg": "surface() ? background() : null" } }, ngImport: i0 });
|
|
3792
|
+
}
|
|
3793
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItemIcon, decorators: [{
|
|
3794
|
+
type: Directive,
|
|
3795
|
+
args: [{
|
|
3796
|
+
selector: 'nb-media-item-icon, [nbMediaItemIcon]',
|
|
3797
|
+
host: {
|
|
3798
|
+
'[class]': 'classes()',
|
|
3799
|
+
'[attr.data-nb-media-item-icon]': '""',
|
|
3800
|
+
'[attr.data-surface]': 'surface()',
|
|
3801
|
+
'[attr.data-background]': 'surface() ? background() : null',
|
|
3802
|
+
'[style.--nb-media-item-icon-bg]': 'surface() ? background() : null',
|
|
3803
|
+
},
|
|
3804
|
+
}]
|
|
3805
|
+
}], propDecorators: { surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], background: [{ type: i0.Input, args: [{ isSignal: true, alias: "background", required: false }] }] } });
|
|
3806
|
+
class NbMediaItemTitle {
|
|
3807
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItemTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3808
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NbMediaItemTitle, isStandalone: true, selector: "nb-media-item-title, [nbMediaItemTitle]", host: { properties: { "attr.data-nb-media-item-title": "\"\"" } }, ngImport: i0 });
|
|
3809
|
+
}
|
|
3810
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItemTitle, decorators: [{
|
|
3811
|
+
type: Directive,
|
|
3812
|
+
args: [{
|
|
3813
|
+
selector: 'nb-media-item-title, [nbMediaItemTitle]',
|
|
3814
|
+
host: {
|
|
3815
|
+
'[attr.data-nb-media-item-title]': '""',
|
|
3816
|
+
},
|
|
3817
|
+
}]
|
|
3818
|
+
}] });
|
|
3819
|
+
class NbMediaItemDescription {
|
|
3820
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItemDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3821
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: NbMediaItemDescription, isStandalone: true, selector: "nb-media-item-description, [nbMediaItemDescription]", host: { properties: { "attr.data-nb-media-item-description": "\"\"" } }, ngImport: i0 });
|
|
3822
|
+
}
|
|
3823
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbMediaItemDescription, decorators: [{
|
|
3824
|
+
type: Directive,
|
|
3825
|
+
args: [{
|
|
3826
|
+
selector: 'nb-media-item-description, [nbMediaItemDescription]',
|
|
3827
|
+
host: {
|
|
3828
|
+
'[attr.data-nb-media-item-description]': '""',
|
|
3829
|
+
},
|
|
3830
|
+
}]
|
|
3831
|
+
}] });
|
|
3832
|
+
function mediaItemIconClasses() {
|
|
3833
|
+
return nbClass('relative inline-flex size-[var(--nb-media-item-surface-size)] items-center justify-center', 'rounded-lg border-[var(--nb-border-width)] border-[var(--nb-border)]', 'bg-(--nb-media-item-icon-bg) text-black');
|
|
3834
|
+
}
|
|
3835
|
+
|
|
3836
|
+
const sizeMap = {
|
|
3837
|
+
xs: '0.75rem',
|
|
3838
|
+
sm: '0.875rem',
|
|
3839
|
+
md: '1rem',
|
|
3840
|
+
lg: '1.125rem',
|
|
3841
|
+
xl: '1.25rem',
|
|
3842
|
+
'2xl': '1.5rem',
|
|
3843
|
+
'3xl': '1.875rem',
|
|
3844
|
+
};
|
|
3845
|
+
const defaultLineHeightMap = {
|
|
3846
|
+
xs: '1rem',
|
|
3847
|
+
sm: '1.25rem',
|
|
3848
|
+
md: '1.5rem',
|
|
3849
|
+
lg: '1.75rem',
|
|
3850
|
+
xl: '1.875rem',
|
|
3851
|
+
'2xl': '2rem',
|
|
3852
|
+
'3xl': '2.25rem',
|
|
3853
|
+
};
|
|
3854
|
+
const leadingMap = {
|
|
3855
|
+
none: '1',
|
|
3856
|
+
tight: '1.15',
|
|
3857
|
+
normal: null,
|
|
3858
|
+
relaxed: '1.65',
|
|
3859
|
+
};
|
|
3860
|
+
const toneMap = {
|
|
3861
|
+
default: 'var(--nb-foreground)',
|
|
3862
|
+
muted: 'color-mix(in srgb, var(--nb-foreground) 80%, transparent)',
|
|
3863
|
+
subtle: 'color-mix(in srgb, var(--nb-foreground) 65%, transparent)',
|
|
3864
|
+
inverse: 'var(--nb-background)',
|
|
3865
|
+
primary: 'var(--nb-primary)',
|
|
3866
|
+
secondary: 'var(--nb-secondary)',
|
|
3867
|
+
accent: 'var(--nb-accent)',
|
|
3868
|
+
danger: 'var(--nb-danger)',
|
|
3869
|
+
success: 'var(--nb-success)',
|
|
3870
|
+
warning: 'var(--nb-warning)',
|
|
3871
|
+
};
|
|
3872
|
+
const trackingMap = {
|
|
3873
|
+
tight: '-0.025em',
|
|
3874
|
+
// Explicit 'normal' resets any inherited letter-spacing; do not collapse to null.
|
|
3875
|
+
normal: 'normal',
|
|
3876
|
+
wide: '0.025em',
|
|
3877
|
+
wider: '0.05em',
|
|
3878
|
+
};
|
|
3879
|
+
const measureMap = {
|
|
3880
|
+
none: 'none',
|
|
3881
|
+
xs: '20rem',
|
|
3882
|
+
sm: '28rem',
|
|
3883
|
+
md: '36rem',
|
|
3884
|
+
lg: '44rem',
|
|
3885
|
+
};
|
|
3886
|
+
class NbText {
|
|
3887
|
+
size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
3888
|
+
weight = input('normal', ...(ngDevMode ? [{ debugName: "weight" }] : /* istanbul ignore next */ []));
|
|
3889
|
+
tone = input('default', ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
3890
|
+
transform = input('none', ...(ngDevMode ? [{ debugName: "transform" }] : /* istanbul ignore next */ []));
|
|
3891
|
+
tracking = input('normal', ...(ngDevMode ? [{ debugName: "tracking" }] : /* istanbul ignore next */ []));
|
|
3892
|
+
measure = input('none', ...(ngDevMode ? [{ debugName: "measure" }] : /* istanbul ignore next */ []));
|
|
3893
|
+
leading = input('normal', ...(ngDevMode ? [{ debugName: "leading" }] : /* istanbul ignore next */ []));
|
|
3894
|
+
// underline / underlineGap / underlineWidth / reset → composed capabilities
|
|
3895
|
+
sizeValue = computed(() => sizeMap[this.size()], ...(ngDevMode ? [{ debugName: "sizeValue" }] : /* istanbul ignore next */ []));
|
|
3896
|
+
lineHeightValue = computed(() => {
|
|
3897
|
+
const explicitLeading = leadingMap[this.leading()];
|
|
3898
|
+
return explicitLeading ?? defaultLineHeightMap[this.size()];
|
|
3899
|
+
}, ...(ngDevMode ? [{ debugName: "lineHeightValue" }] : /* istanbul ignore next */ []));
|
|
3900
|
+
weightValue = computed(() => nbFontWeightValue(this.weight()), ...(ngDevMode ? [{ debugName: "weightValue" }] : /* istanbul ignore next */ []));
|
|
3901
|
+
colorValue = computed(() => toneMap[this.tone()], ...(ngDevMode ? [{ debugName: "colorValue" }] : /* istanbul ignore next */ []));
|
|
3902
|
+
transformValue = computed(() => this.transform(), ...(ngDevMode ? [{ debugName: "transformValue" }] : /* istanbul ignore next */ []));
|
|
3903
|
+
trackingValue = computed(() => trackingMap[this.tracking()], ...(ngDevMode ? [{ debugName: "trackingValue" }] : /* istanbul ignore next */ []));
|
|
3904
|
+
measureValue = computed(() => {
|
|
3905
|
+
const val = measureMap[this.measure()];
|
|
3906
|
+
return val === 'none' ? null : val;
|
|
3907
|
+
}, ...(ngDevMode ? [{ debugName: "measureValue" }] : /* istanbul ignore next */ []));
|
|
3908
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbText, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3909
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: NbText, isStandalone: true, selector: "[nbText]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, weight: { classPropertyName: "weight", publicName: "weight", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, transform: { classPropertyName: "transform", publicName: "transform", isSignal: true, isRequired: false, transformFunction: null }, tracking: { classPropertyName: "tracking", publicName: "tracking", isSignal: true, isRequired: false, transformFunction: null }, measure: { classPropertyName: "measure", publicName: "measure", isSignal: true, isRequired: false, transformFunction: null }, leading: { classPropertyName: "leading", publicName: "leading", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-nb-text": "\"\"", "attr.data-size": "size()", "attr.data-weight": "weight()", "attr.data-tone": "tone()", "attr.data-transform": "transform()", "attr.data-tracking": "tracking()", "attr.data-measure": "measure()", "attr.data-leading": "leading()", "style.color": "colorValue()", "style.font-size": "sizeValue()", "style.line-height": "lineHeightValue()", "style.font-weight": "weightValue()", "style.text-transform": "transformValue()", "style.letter-spacing": "trackingValue()", "style.max-width": "measureValue()" } }, exportAs: ["nbText"], hostDirectives: [{ directive: NbUnderlineCapability, inputs: ["underline", "underline", "underlineGap", "underlineGap", "underlineWidth", "underlineWidth"] }, { directive: NbResetMarginCapability, inputs: ["reset", "reset"] }], ngImport: i0 });
|
|
3910
|
+
}
|
|
3911
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NbText, decorators: [{
|
|
3912
|
+
type: Directive,
|
|
3913
|
+
args: [{
|
|
3914
|
+
selector: '[nbText]',
|
|
3915
|
+
standalone: true,
|
|
3916
|
+
exportAs: 'nbText',
|
|
3917
|
+
hostDirectives: [
|
|
3918
|
+
// underline variant + optional gap/width overrides → data-underline + CSS vars
|
|
3919
|
+
{
|
|
3920
|
+
directive: NbUnderlineCapability,
|
|
3921
|
+
inputs: ['underline', 'underlineGap', 'underlineWidth'],
|
|
3922
|
+
},
|
|
3923
|
+
// reset input → margin: 0 (removes native paragraph/heading margin)
|
|
3924
|
+
{ directive: NbResetMarginCapability, inputs: ['reset'] },
|
|
3925
|
+
],
|
|
3926
|
+
host: {
|
|
3927
|
+
'[attr.data-nb-text]': '""',
|
|
3928
|
+
'[attr.data-size]': 'size()',
|
|
3929
|
+
'[attr.data-weight]': 'weight()',
|
|
3930
|
+
'[attr.data-tone]': 'tone()',
|
|
3931
|
+
'[attr.data-transform]': 'transform()',
|
|
3932
|
+
'[attr.data-tracking]': 'tracking()',
|
|
3933
|
+
'[attr.data-measure]': 'measure()',
|
|
3934
|
+
'[attr.data-leading]': 'leading()',
|
|
3935
|
+
'[style.color]': 'colorValue()',
|
|
3936
|
+
'[style.font-size]': 'sizeValue()',
|
|
3937
|
+
'[style.line-height]': 'lineHeightValue()',
|
|
3938
|
+
'[style.font-weight]': 'weightValue()',
|
|
3939
|
+
'[style.text-transform]': 'transformValue()',
|
|
3940
|
+
'[style.letter-spacing]': 'trackingValue()',
|
|
3941
|
+
'[style.max-width]': 'measureValue()',
|
|
3942
|
+
},
|
|
3943
|
+
}]
|
|
3944
|
+
}], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], weight: [{ type: i0.Input, args: [{ isSignal: true, alias: "weight", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], transform: [{ type: i0.Input, args: [{ isSignal: true, alias: "transform", required: false }] }], tracking: [{ type: i0.Input, args: [{ isSignal: true, alias: "tracking", required: false }] }], measure: [{ type: i0.Input, args: [{ isSignal: true, alias: "measure", required: false }] }], leading: [{ type: i0.Input, args: [{ isSignal: true, alias: "leading", required: false }] }] } });
|
|
3945
|
+
|
|
1329
3946
|
// Foundation
|
|
1330
3947
|
|
|
1331
3948
|
/**
|
|
1332
3949
|
* Generated bundle index. Do not edit.
|
|
1333
3950
|
*/
|
|
1334
3951
|
|
|
1335
|
-
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 };
|
|
3952
|
+
export { NB_THEME_CONFIG, NbAccordion, NbAccordionContent, NbAccordionItem, NbAccordionTrigger, NbAvatar, NbAvatarGroup, NbBadge, NbButton, NbButtonTrailingIcon, NbCallout, NbCard, NbCardActions, NbCardContent, NbCardDescription, NbCardFooter, NbCardHeader, NbCardTitle, NbCheckbox, NbChip, NbChipGroup, NbCluster, NbDialog, NbDialogActions, NbDialogClose, NbDialogContent, NbDialogDescription, NbDialogTitle, NbDisplay, NbHalftone, NbIcon, NbIconButton, NbImageCard, NbImageCardCaption, NbInput, NbInputGroup, NbInputPrefix, NbInputSuffix, NbLabel, NbMarquee, NbMarqueeItem, NbMediaFrame, NbMediaItem, NbMediaItemDescription, NbMediaItemIcon, NbMediaItemTitle, NbNativeSelect, NbProgress, NbRating, NbSection, NbSelect, NbSelectOption, NbSeparator, NbSplit, NbStack, NbStat, NbStatusDot, NbSticker, NbStickerFace, NbSurface, NbText, NbTextarea, NbTitle, NbTypography, nbBorderWidthValue, nbClass, nbFontWeightValue, nbPaddingValue, nbRadiusValue, nbShadowValue, nbSpacingValue, nbToneTokens, nbToneVars, nbTypographyFontValue, nbUnderlineGapValue, nbUnderlineWidthValue, provideNgBrutalism, NB_STYLE_DEFAULTS as ɵNB_STYLE_DEFAULTS, NB_STYLE_NAMESPACE as ɵNB_STYLE_NAMESPACE, NbBorderCapability as ɵNbBorderCapability, NbGapCapability as ɵNbGapCapability, NbPaddingCapability as ɵNbPaddingCapability, NbRadiusCapability as ɵNbRadiusCapability, NbResetMarginCapability as ɵNbResetMarginCapability, NbShadowCapability as ɵNbShadowCapability, NbToneCapability as ɵNbToneCapability, NbUnderlineCapability as ɵNbUnderlineCapability };
|
|
1336
3953
|
//# sourceMappingURL=ng-brutalism-ui.mjs.map
|