@ngb-bootstrap/core 0.0.0 → 0.1.0-next.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.
Files changed (76) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +18 -0
  3. package/README.md +26 -0
  4. package/fesm2022/ngb-bootstrap-core-alert.mjs +154 -0
  5. package/fesm2022/ngb-bootstrap-core-alert.mjs.map +1 -0
  6. package/fesm2022/ngb-bootstrap-core-badge.mjs +100 -0
  7. package/fesm2022/ngb-bootstrap-core-badge.mjs.map +1 -0
  8. package/fesm2022/ngb-bootstrap-core-breadcrumb.mjs +135 -0
  9. package/fesm2022/ngb-bootstrap-core-breadcrumb.mjs.map +1 -0
  10. package/fesm2022/ngb-bootstrap-core-button.mjs +513 -0
  11. package/fesm2022/ngb-bootstrap-core-button.mjs.map +1 -0
  12. package/fesm2022/ngb-bootstrap-core-card.mjs +540 -0
  13. package/fesm2022/ngb-bootstrap-core-card.mjs.map +1 -0
  14. package/fesm2022/ngb-bootstrap-core-cdk.mjs +282 -0
  15. package/fesm2022/ngb-bootstrap-core-cdk.mjs.map +1 -0
  16. package/fesm2022/ngb-bootstrap-core-checkbox.mjs +165 -0
  17. package/fesm2022/ngb-bootstrap-core-checkbox.mjs.map +1 -0
  18. package/fesm2022/ngb-bootstrap-core-chips.mjs +512 -0
  19. package/fesm2022/ngb-bootstrap-core-chips.mjs.map +1 -0
  20. package/fesm2022/ngb-bootstrap-core-floating-label.mjs +83 -0
  21. package/fesm2022/ngb-bootstrap-core-floating-label.mjs.map +1 -0
  22. package/fesm2022/ngb-bootstrap-core-footer.mjs +48 -0
  23. package/fesm2022/ngb-bootstrap-core-footer.mjs.map +1 -0
  24. package/fesm2022/ngb-bootstrap-core-icon.mjs +243 -0
  25. package/fesm2022/ngb-bootstrap-core-icon.mjs.map +1 -0
  26. package/fesm2022/ngb-bootstrap-core-input.mjs +540 -0
  27. package/fesm2022/ngb-bootstrap-core-input.mjs.map +1 -0
  28. package/fesm2022/ngb-bootstrap-core-layout.mjs +272 -0
  29. package/fesm2022/ngb-bootstrap-core-layout.mjs.map +1 -0
  30. package/fesm2022/ngb-bootstrap-core-navbar.mjs +150 -0
  31. package/fesm2022/ngb-bootstrap-core-navbar.mjs.map +1 -0
  32. package/fesm2022/ngb-bootstrap-core-radio.mjs +279 -0
  33. package/fesm2022/ngb-bootstrap-core-radio.mjs.map +1 -0
  34. package/fesm2022/ngb-bootstrap-core-sidebar.mjs +425 -0
  35. package/fesm2022/ngb-bootstrap-core-sidebar.mjs.map +1 -0
  36. package/fesm2022/ngb-bootstrap-core-spinner.mjs +126 -0
  37. package/fesm2022/ngb-bootstrap-core-spinner.mjs.map +1 -0
  38. package/fesm2022/ngb-bootstrap-core-switch.mjs +147 -0
  39. package/fesm2022/ngb-bootstrap-core-switch.mjs.map +1 -0
  40. package/fesm2022/ngb-bootstrap-core.mjs +69 -0
  41. package/fesm2022/ngb-bootstrap-core.mjs.map +1 -0
  42. package/ngb-bootstrap.css +827 -0
  43. package/package.json +118 -4
  44. package/styles/_breadcrumb.scss +9 -0
  45. package/styles/_button.scss +14 -0
  46. package/styles/_card.scss +86 -0
  47. package/styles/_chip.scss +10 -0
  48. package/styles/_choice.scss +14 -0
  49. package/styles/_contrast.scss +23 -0
  50. package/styles/_icon.scss +62 -0
  51. package/styles/_index.scss +33 -0
  52. package/styles/_input.scss +9 -0
  53. package/styles/_layout.scss +602 -0
  54. package/styles/_overlay.scss +14 -0
  55. package/styles/_tokens.scss +29 -0
  56. package/styles/_typography.scss +77 -0
  57. package/styles/ngb-bootstrap.scss +2 -0
  58. package/types/ngb-bootstrap-core-alert.d.ts +65 -0
  59. package/types/ngb-bootstrap-core-badge.d.ts +38 -0
  60. package/types/ngb-bootstrap-core-breadcrumb.d.ts +32 -0
  61. package/types/ngb-bootstrap-core-button.d.ts +177 -0
  62. package/types/ngb-bootstrap-core-card.d.ts +154 -0
  63. package/types/ngb-bootstrap-core-cdk.d.ts +165 -0
  64. package/types/ngb-bootstrap-core-checkbox.d.ts +53 -0
  65. package/types/ngb-bootstrap-core-chips.d.ts +170 -0
  66. package/types/ngb-bootstrap-core-floating-label.d.ts +22 -0
  67. package/types/ngb-bootstrap-core-footer.d.ts +16 -0
  68. package/types/ngb-bootstrap-core-icon.d.ts +99 -0
  69. package/types/ngb-bootstrap-core-input.d.ts +208 -0
  70. package/types/ngb-bootstrap-core-layout.d.ts +102 -0
  71. package/types/ngb-bootstrap-core-navbar.d.ts +33 -0
  72. package/types/ngb-bootstrap-core-radio.d.ts +96 -0
  73. package/types/ngb-bootstrap-core-sidebar.d.ts +62 -0
  74. package/types/ngb-bootstrap-core-spinner.d.ts +49 -0
  75. package/types/ngb-bootstrap-core-switch.d.ts +44 -0
  76. package/types/ngb-bootstrap-core.d.ts +82 -0
@@ -0,0 +1,540 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, Directive, booleanAttribute, computed, contentChild, inject, input, model } from "@angular/core";
3
+ import { NGB_CONFIG, NGB_I18N } from "@ngb-bootstrap/core";
4
+ import { NgbIconButton } from "@ngb-bootstrap/core/button";
5
+ import { ngbId } from "@ngb-bootstrap/core/cdk";
6
+ import { ngbIconDown } from "@ngb-bootstrap/icons";
7
+ var NgbCard = class NgbCard {
8
+ color = input(...ngDevMode ? [void 0, { debugName: "color" }] : /* istanbul ignore next */ []);
9
+ variant = input("default", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
10
+ classes = computed(() => {
11
+ const classes = ["card"];
12
+ const color = this.color();
13
+ if (color) classes.push(`theme-${color}`);
14
+ if (this.variant() === "subtle") classes.push("card-subtle");
15
+ return classes.join(" ");
16
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
17
+ static ɵfac = i0.ɵɵngDeclareFactory({
18
+ minVersion: "12.0.0",
19
+ version: "22.2.3",
20
+ ngImport: i0,
21
+ type: NgbCard,
22
+ deps: [],
23
+ target: i0.ɵɵFactoryTarget.Component
24
+ });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({
26
+ minVersion: "17.1.0",
27
+ version: "22.2.3",
28
+ type: NgbCard,
29
+ isStandalone: true,
30
+ selector: "ngb-card",
31
+ inputs: {
32
+ color: {
33
+ classPropertyName: "color",
34
+ publicName: "color",
35
+ isSignal: true,
36
+ isRequired: false,
37
+ transformFunction: null
38
+ },
39
+ variant: {
40
+ classPropertyName: "variant",
41
+ publicName: "variant",
42
+ isSignal: true,
43
+ isRequired: false,
44
+ transformFunction: null
45
+ }
46
+ },
47
+ host: { properties: { "class": "classes()" } },
48
+ ngImport: i0,
49
+ template: "<ng-content />",
50
+ isInline: true,
51
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
52
+ });
53
+ };
54
+ i0.ɵɵngDeclareClassMetadata({
55
+ minVersion: "12.0.0",
56
+ version: "22.2.3",
57
+ ngImport: i0,
58
+ type: NgbCard,
59
+ decorators: [{
60
+ type: Component,
61
+ args: [{
62
+ selector: "ngb-card",
63
+ template: "<ng-content />",
64
+ changeDetection: ChangeDetectionStrategy.OnPush,
65
+ host: { "[class]": "classes()" }
66
+ }]
67
+ }],
68
+ propDecorators: {
69
+ color: [{
70
+ type: i0.Input,
71
+ args: [{
72
+ isSignal: true,
73
+ alias: "color",
74
+ required: false
75
+ }]
76
+ }],
77
+ variant: [{
78
+ type: i0.Input,
79
+ args: [{
80
+ isSignal: true,
81
+ alias: "variant",
82
+ required: false
83
+ }]
84
+ }]
85
+ }
86
+ });
87
+ var NgbCardHeader = class NgbCardHeader {
88
+ static ɵfac = i0.ɵɵngDeclareFactory({
89
+ minVersion: "12.0.0",
90
+ version: "22.2.3",
91
+ ngImport: i0,
92
+ type: NgbCardHeader,
93
+ deps: [],
94
+ target: i0.ɵɵFactoryTarget.Directive
95
+ });
96
+ static ɵdir = i0.ɵɵngDeclareDirective({
97
+ minVersion: "14.0.0",
98
+ version: "22.2.3",
99
+ type: NgbCardHeader,
100
+ isStandalone: true,
101
+ selector: "[ngbCardHeader]",
102
+ host: { classAttribute: "card-header" },
103
+ ngImport: i0
104
+ });
105
+ };
106
+ i0.ɵɵngDeclareClassMetadata({
107
+ minVersion: "12.0.0",
108
+ version: "22.2.3",
109
+ ngImport: i0,
110
+ type: NgbCardHeader,
111
+ decorators: [{
112
+ type: Directive,
113
+ args: [{
114
+ selector: "[ngbCardHeader]",
115
+ host: { class: "card-header" }
116
+ }]
117
+ }]
118
+ });
119
+ var NgbCardBody = class NgbCardBody {
120
+ static ɵfac = i0.ɵɵngDeclareFactory({
121
+ minVersion: "12.0.0",
122
+ version: "22.2.3",
123
+ ngImport: i0,
124
+ type: NgbCardBody,
125
+ deps: [],
126
+ target: i0.ɵɵFactoryTarget.Directive
127
+ });
128
+ static ɵdir = i0.ɵɵngDeclareDirective({
129
+ minVersion: "14.0.0",
130
+ version: "22.2.3",
131
+ type: NgbCardBody,
132
+ isStandalone: true,
133
+ selector: "[ngbCardBody]",
134
+ host: { classAttribute: "card-body" },
135
+ ngImport: i0
136
+ });
137
+ };
138
+ i0.ɵɵngDeclareClassMetadata({
139
+ minVersion: "12.0.0",
140
+ version: "22.2.3",
141
+ ngImport: i0,
142
+ type: NgbCardBody,
143
+ decorators: [{
144
+ type: Directive,
145
+ args: [{
146
+ selector: "[ngbCardBody]",
147
+ host: { class: "card-body" }
148
+ }]
149
+ }]
150
+ });
151
+ var NgbCardSubtitle = class NgbCardSubtitle {
152
+ static ɵfac = i0.ɵɵngDeclareFactory({
153
+ minVersion: "12.0.0",
154
+ version: "22.2.3",
155
+ ngImport: i0,
156
+ type: NgbCardSubtitle,
157
+ deps: [],
158
+ target: i0.ɵɵFactoryTarget.Directive
159
+ });
160
+ static ɵdir = i0.ɵɵngDeclareDirective({
161
+ minVersion: "14.0.0",
162
+ version: "22.2.3",
163
+ type: NgbCardSubtitle,
164
+ isStandalone: true,
165
+ selector: "[ngbCardSubtitle]",
166
+ host: { classAttribute: "card-subtitle" },
167
+ ngImport: i0
168
+ });
169
+ };
170
+ i0.ɵɵngDeclareClassMetadata({
171
+ minVersion: "12.0.0",
172
+ version: "22.2.3",
173
+ ngImport: i0,
174
+ type: NgbCardSubtitle,
175
+ decorators: [{
176
+ type: Directive,
177
+ args: [{
178
+ selector: "[ngbCardSubtitle]",
179
+ host: { class: "card-subtitle" }
180
+ }]
181
+ }]
182
+ });
183
+ var NgbCardFooter = class NgbCardFooter {
184
+ static ɵfac = i0.ɵɵngDeclareFactory({
185
+ minVersion: "12.0.0",
186
+ version: "22.2.3",
187
+ ngImport: i0,
188
+ type: NgbCardFooter,
189
+ deps: [],
190
+ target: i0.ɵɵFactoryTarget.Directive
191
+ });
192
+ static ɵdir = i0.ɵɵngDeclareDirective({
193
+ minVersion: "14.0.0",
194
+ version: "22.2.3",
195
+ type: NgbCardFooter,
196
+ isStandalone: true,
197
+ selector: "[ngbCardFooter]",
198
+ host: { classAttribute: "card-footer" },
199
+ ngImport: i0
200
+ });
201
+ };
202
+ i0.ɵɵngDeclareClassMetadata({
203
+ minVersion: "12.0.0",
204
+ version: "22.2.3",
205
+ ngImport: i0,
206
+ type: NgbCardFooter,
207
+ decorators: [{
208
+ type: Directive,
209
+ args: [{
210
+ selector: "[ngbCardFooter]",
211
+ host: { class: "card-footer" }
212
+ }]
213
+ }]
214
+ });
215
+ var NgbCardImg = class NgbCardImg {
216
+ ngbCardImg = input("top", ...ngDevMode ? [{ debugName: "ngbCardImg" }] : /* istanbul ignore next */ []);
217
+ classes = computed(() => this.ngbCardImg() === "bottom" ? "card-img-bottom" : "card-img-top", ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
218
+ static ɵfac = i0.ɵɵngDeclareFactory({
219
+ minVersion: "12.0.0",
220
+ version: "22.2.3",
221
+ ngImport: i0,
222
+ type: NgbCardImg,
223
+ deps: [],
224
+ target: i0.ɵɵFactoryTarget.Directive
225
+ });
226
+ static ɵdir = i0.ɵɵngDeclareDirective({
227
+ minVersion: "17.1.0",
228
+ version: "22.2.3",
229
+ type: NgbCardImg,
230
+ isStandalone: true,
231
+ selector: "img[ngbCardImg]",
232
+ inputs: { ngbCardImg: {
233
+ classPropertyName: "ngbCardImg",
234
+ publicName: "ngbCardImg",
235
+ isSignal: true,
236
+ isRequired: false,
237
+ transformFunction: null
238
+ } },
239
+ host: { properties: { "class": "classes()" } },
240
+ ngImport: i0
241
+ });
242
+ };
243
+ i0.ɵɵngDeclareClassMetadata({
244
+ minVersion: "12.0.0",
245
+ version: "22.2.3",
246
+ ngImport: i0,
247
+ type: NgbCardImg,
248
+ decorators: [{
249
+ type: Directive,
250
+ args: [{
251
+ selector: "img[ngbCardImg]",
252
+ host: { "[class]": "classes()" }
253
+ }]
254
+ }],
255
+ propDecorators: { ngbCardImg: [{
256
+ type: i0.Input,
257
+ args: [{
258
+ isSignal: true,
259
+ alias: "ngbCardImg",
260
+ required: false
261
+ }]
262
+ }] }
263
+ });
264
+ var NgbCollapsibleTitle = class NgbCollapsibleTitle {
265
+ id = ngbId("ngb-collapsible-title");
266
+ static ɵfac = i0.ɵɵngDeclareFactory({
267
+ minVersion: "12.0.0",
268
+ version: "22.2.3",
269
+ ngImport: i0,
270
+ type: NgbCollapsibleTitle,
271
+ deps: [],
272
+ target: i0.ɵɵFactoryTarget.Directive
273
+ });
274
+ static ɵdir = i0.ɵɵngDeclareDirective({
275
+ minVersion: "14.0.0",
276
+ version: "22.2.3",
277
+ type: NgbCollapsibleTitle,
278
+ isStandalone: true,
279
+ selector: "[ngbCollapsibleTitle]",
280
+ host: { properties: { "id": "id" } },
281
+ ngImport: i0
282
+ });
283
+ };
284
+ i0.ɵɵngDeclareClassMetadata({
285
+ minVersion: "12.0.0",
286
+ version: "22.2.3",
287
+ ngImport: i0,
288
+ type: NgbCollapsibleTitle,
289
+ decorators: [{
290
+ type: Directive,
291
+ args: [{
292
+ selector: "[ngbCollapsibleTitle]",
293
+ host: { "[id]": "id" }
294
+ }]
295
+ }]
296
+ });
297
+ var NgbCollapsibleContent = class NgbCollapsibleContent {
298
+ static ɵfac = i0.ɵɵngDeclareFactory({
299
+ minVersion: "12.0.0",
300
+ version: "22.2.3",
301
+ ngImport: i0,
302
+ type: NgbCollapsibleContent,
303
+ deps: [],
304
+ target: i0.ɵɵFactoryTarget.Directive
305
+ });
306
+ static ɵdir = i0.ɵɵngDeclareDirective({
307
+ minVersion: "14.0.0",
308
+ version: "22.2.3",
309
+ type: NgbCollapsibleContent,
310
+ isStandalone: true,
311
+ selector: "[ngbCollapsibleContent]",
312
+ ngImport: i0
313
+ });
314
+ };
315
+ i0.ɵɵngDeclareClassMetadata({
316
+ minVersion: "12.0.0",
317
+ version: "22.2.3",
318
+ ngImport: i0,
319
+ type: NgbCollapsibleContent,
320
+ decorators: [{
321
+ type: Directive,
322
+ args: [{ selector: "[ngbCollapsibleContent]" }]
323
+ }]
324
+ });
325
+ var NgbCollapsibleCard = class NgbCollapsibleCard {
326
+ animation = inject(NGB_CONFIG).animation;
327
+ i18n = inject(NGB_I18N);
328
+ toggleId = ngbId("ngb-collapsible-toggle");
329
+ regionId = ngbId("ngb-collapsible-region");
330
+ chevron = ngbIconDown;
331
+ title = contentChild(NgbCollapsibleTitle, ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
332
+ expanded = model(false, ...ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []);
333
+ disabled = input(false, {
334
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
335
+ transform: booleanAttribute
336
+ });
337
+ expandLabel = input(...ngDevMode ? [void 0, { debugName: "expandLabel" }] : /* istanbul ignore next */ []);
338
+ collapseLabel = input(...ngDevMode ? [void 0, { debugName: "collapseLabel" }] : /* istanbul ignore next */ []);
339
+ label = computed(() => this.expanded() ? this.collapseLabel() ?? this.i18n.collapse : this.expandLabel() ?? this.i18n.expand, ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
340
+ classes = computed(() => {
341
+ const classes = ["card", "ngb-collapsible-card"];
342
+ if (this.expanded()) classes.push("ngb-collapsible-expanded");
343
+ if (!this.animation) classes.push("ngb-collapsible-static");
344
+ return classes.join(" ");
345
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
346
+ static ɵfac = i0.ɵɵngDeclareFactory({
347
+ minVersion: "12.0.0",
348
+ version: "22.2.3",
349
+ ngImport: i0,
350
+ type: NgbCollapsibleCard,
351
+ deps: [],
352
+ target: i0.ɵɵFactoryTarget.Component
353
+ });
354
+ static ɵcmp = i0.ɵɵngDeclareComponent({
355
+ minVersion: "17.2.0",
356
+ version: "22.2.3",
357
+ type: NgbCollapsibleCard,
358
+ isStandalone: true,
359
+ selector: "ngb-collapsible-card",
360
+ inputs: {
361
+ expanded: {
362
+ classPropertyName: "expanded",
363
+ publicName: "expanded",
364
+ isSignal: true,
365
+ isRequired: false,
366
+ transformFunction: null
367
+ },
368
+ disabled: {
369
+ classPropertyName: "disabled",
370
+ publicName: "disabled",
371
+ isSignal: true,
372
+ isRequired: false,
373
+ transformFunction: null
374
+ },
375
+ expandLabel: {
376
+ classPropertyName: "expandLabel",
377
+ publicName: "expandLabel",
378
+ isSignal: true,
379
+ isRequired: false,
380
+ transformFunction: null
381
+ },
382
+ collapseLabel: {
383
+ classPropertyName: "collapseLabel",
384
+ publicName: "collapseLabel",
385
+ isSignal: true,
386
+ isRequired: false,
387
+ transformFunction: null
388
+ }
389
+ },
390
+ outputs: { expanded: "expandedChange" },
391
+ host: { properties: { "class": "classes()" } },
392
+ queries: [{
393
+ propertyName: "title",
394
+ first: true,
395
+ predicate: NgbCollapsibleTitle,
396
+ descendants: true,
397
+ isSignal: true
398
+ }],
399
+ ngImport: i0,
400
+ template: `
401
+ <div class="row g-3">
402
+ <div class="col"><ng-content /></div>
403
+ <div class="col-auto align-self-end">
404
+ <button
405
+ ngbIconButton
406
+ color="secondary"
407
+ variant="subtle"
408
+ size="sm"
409
+ class="ngb-collapsible-toggle"
410
+ [icon]="chevron"
411
+ [label]="label()"
412
+ [id]="toggleId"
413
+ [disabled]="disabled()"
414
+ [attr.aria-expanded]="expanded()"
415
+ [attr.aria-controls]="regionId"
416
+ (click)="expanded.set(!expanded())"
417
+ ></button>
418
+ </div>
419
+ </div>
420
+ <div
421
+ class="ngb-collapsible-region"
422
+ role="region"
423
+ [id]="regionId"
424
+ [attr.aria-labelledby]="title()?.id ?? toggleId"
425
+ [attr.inert]="expanded() ? null : ''"
426
+ >
427
+ <div class="ngb-collapsible-region-inner">
428
+ <div class="ngb-collapsible-region-content">
429
+ <ng-content select="[ngbCollapsibleContent]" />
430
+ </div>
431
+ </div>
432
+ </div>
433
+ `,
434
+ isInline: true,
435
+ dependencies: [{
436
+ kind: "component",
437
+ type: NgbIconButton,
438
+ selector: "button[ngbIconButton], a[ngbIconButton]",
439
+ inputs: [
440
+ "label",
441
+ "icon",
442
+ "name"
443
+ ]
444
+ }],
445
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
446
+ });
447
+ };
448
+ i0.ɵɵngDeclareClassMetadata({
449
+ minVersion: "12.0.0",
450
+ version: "22.2.3",
451
+ ngImport: i0,
452
+ type: NgbCollapsibleCard,
453
+ decorators: [{
454
+ type: Component,
455
+ args: [{
456
+ selector: "ngb-collapsible-card",
457
+ imports: [NgbIconButton],
458
+ template: `
459
+ <div class="row g-3">
460
+ <div class="col"><ng-content /></div>
461
+ <div class="col-auto align-self-end">
462
+ <button
463
+ ngbIconButton
464
+ color="secondary"
465
+ variant="subtle"
466
+ size="sm"
467
+ class="ngb-collapsible-toggle"
468
+ [icon]="chevron"
469
+ [label]="label()"
470
+ [id]="toggleId"
471
+ [disabled]="disabled()"
472
+ [attr.aria-expanded]="expanded()"
473
+ [attr.aria-controls]="regionId"
474
+ (click)="expanded.set(!expanded())"
475
+ ></button>
476
+ </div>
477
+ </div>
478
+ <div
479
+ class="ngb-collapsible-region"
480
+ role="region"
481
+ [id]="regionId"
482
+ [attr.aria-labelledby]="title()?.id ?? toggleId"
483
+ [attr.inert]="expanded() ? null : ''"
484
+ >
485
+ <div class="ngb-collapsible-region-inner">
486
+ <div class="ngb-collapsible-region-content">
487
+ <ng-content select="[ngbCollapsibleContent]" />
488
+ </div>
489
+ </div>
490
+ </div>
491
+ `,
492
+ changeDetection: ChangeDetectionStrategy.OnPush,
493
+ host: { "[class]": "classes()" }
494
+ }]
495
+ }],
496
+ propDecorators: {
497
+ title: [{
498
+ type: i0.ContentChild,
499
+ args: [i0.forwardRef(() => NgbCollapsibleTitle), { isSignal: true }]
500
+ }],
501
+ expanded: [{
502
+ type: i0.Input,
503
+ args: [{
504
+ isSignal: true,
505
+ alias: "expanded",
506
+ required: false
507
+ }]
508
+ }, {
509
+ type: i0.Output,
510
+ args: ["expandedChange"]
511
+ }],
512
+ disabled: [{
513
+ type: i0.Input,
514
+ args: [{
515
+ isSignal: true,
516
+ alias: "disabled",
517
+ required: false
518
+ }]
519
+ }],
520
+ expandLabel: [{
521
+ type: i0.Input,
522
+ args: [{
523
+ isSignal: true,
524
+ alias: "expandLabel",
525
+ required: false
526
+ }]
527
+ }],
528
+ collapseLabel: [{
529
+ type: i0.Input,
530
+ args: [{
531
+ isSignal: true,
532
+ alias: "collapseLabel",
533
+ required: false
534
+ }]
535
+ }]
536
+ }
537
+ });
538
+ export { NgbCard, NgbCardBody, NgbCardFooter, NgbCardHeader, NgbCardImg, NgbCardSubtitle, NgbCollapsibleCard, NgbCollapsibleContent, NgbCollapsibleTitle };
539
+
540
+ //# sourceMappingURL=ngb-bootstrap-core-card.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngb-bootstrap-core-card.mjs","names":[],"sources":["../../../../projects/core/card/card.ts","../../../../projects/core/card/card-parts.ts","../../../../projects/core/card/collapsible-card.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgbThemeColor } from '@ngb-bootstrap/core';\n\nexport type NgbCardVariant = 'default' | 'subtle';\n\n/**\n * Container built on Bootstrap 6 `.card`. Fill it with the `ngbCard*` directives\n * (`ngbCardHeader`, `ngbCardBody`, `ngbCardFooter`, `ngbCardSubtitle`, `ngbCardImg`).\n *\n * ```html\n * <ngb-card color=\"info\" variant=\"subtle\">\n * <div ngbCardHeader>Featured</div>\n * <div ngbCardBody>\n * <h5>Title</h5>\n * <p>Some text.</p>\n * </div>\n * </ngb-card>\n * ```\n */\n@Component({\n selector: 'ngb-card',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n },\n})\nexport class NgbCard {\n /** Theme colour (Bootstrap `.theme-*`): border and header take it. Default is neutral. */\n readonly color = input<NgbThemeColor>();\n /** `default` or `subtle` (`.card-subtle`, tinted header and footer). */\n readonly variant = input<NgbCardVariant>('default');\n\n protected readonly classes = computed(() => {\n const classes = ['card'];\n const color = this.color();\n if (color) classes.push(`theme-${color}`);\n if (this.variant() === 'subtle') classes.push('card-subtle');\n return classes.join(' ');\n });\n}\n","import { Directive, computed, input } from '@angular/core';\n\n/*\n * The card parts are directives, not components: each one only adds a Bootstrap class to an\n * element the author picks (`<header>`, `<h5>`, `<img>`, `<a>`...), so the markup stays semantic\n * and Bootstrap's `.card > ...` selectors keep matching direct children.\n */\n\n/** `.card-header` on any element. */\n@Directive({ selector: '[ngbCardHeader]', host: { class: 'card-header' } })\nexport class NgbCardHeader {}\n\n/** `.card-body` on any element. */\n@Directive({ selector: '[ngbCardBody]', host: { class: 'card-body' } })\nexport class NgbCardBody {}\n\n/** `.card-subtitle` on any element, usually a heading inside the body. */\n@Directive({ selector: '[ngbCardSubtitle]', host: { class: 'card-subtitle' } })\nexport class NgbCardSubtitle {}\n\n/** `.card-footer` on any element. */\n@Directive({ selector: '[ngbCardFooter]', host: { class: 'card-footer' } })\nexport class NgbCardFooter {}\n\n/**\n * Card image, `.card-img-top` by default. Give it `alt` text, or `alt=\"\"` when it is decorative.\n *\n * ```html\n * <img ngbCardImg src=\"a.jpg\" alt=\"\" /> <img ngbCardImg=\"bottom\" src=\"b.jpg\" alt=\"\" />\n * ```\n */\n@Directive({ selector: 'img[ngbCardImg]', host: { '[class]': 'classes()' } })\nexport class NgbCardImg {\n /** `top` (default) or `bottom`. */\n readonly ngbCardImg = input<'top' | 'bottom' | ''>('top');\n\n protected readonly classes = computed(() =>\n this.ngbCardImg() === 'bottom' ? 'card-img-bottom' : 'card-img-top',\n );\n}\n","// Behaviour adapted from Taiga UI (Apache-2.0), see NOTICE.\nimport {\n ChangeDetectionStrategy,\n Component,\n Directive,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { NGB_CONFIG, NGB_I18N } from '@ngb-bootstrap/core';\nimport { NgbIconButton } from '@ngb-bootstrap/core/button';\nimport { ngbId } from '@ngb-bootstrap/core/cdk';\nimport { ngbIconDown } from '@ngb-bootstrap/icons';\n\n/**\n * Names the card. Put it on the title element inside the summary. The hidden region is labelled by\n * it, so a screen reader announces \"Order 42, region\" rather than the button's own label.\n */\n@Directive({\n selector: '[ngbCollapsibleTitle]',\n host: { '[id]': 'id' },\n})\nexport class NgbCollapsibleTitle {\n readonly id = ngbId('ngb-collapsible-title');\n}\n\n/**\n * Marks the content that is hidden while the card is collapsed. It renders inside the card, below\n * the summary.\n */\n@Directive({\n selector: '[ngbCollapsibleContent]',\n})\nexport class NgbCollapsibleContent {}\n\n/**\n * Large card with a summary that is always visible and extra content that folds away under it,\n * like Taiga UI's collapsible large card. A small icon button at the bottom-end of the summary\n * toggles it. While collapsed, a narrower strip peeks out under the card to hint at what is hidden.\n *\n * The default projected content is the summary. Mark the hidden part with `ngbCollapsibleContent`\n * and the title with `ngbCollapsibleTitle` (it names the region). The hidden content stays in the\n * DOM while collapsed, but is `inert` and invisible.\n *\n * ```html\n * <ngb-collapsible-card [(expanded)]=\"open\">\n * <h3 ngbCollapsibleTitle class=\"h5\">Order 42</h3>\n * <p>Shipped on Monday.</p>\n * <div ngbCollapsibleContent>…</div>\n * </ngb-collapsible-card>\n * ```\n */\n@Component({\n selector: 'ngb-collapsible-card',\n imports: [NgbIconButton],\n template: `\n <div class=\"row g-3\">\n <div class=\"col\"><ng-content /></div>\n <div class=\"col-auto align-self-end\">\n <button\n ngbIconButton\n color=\"secondary\"\n variant=\"subtle\"\n size=\"sm\"\n class=\"ngb-collapsible-toggle\"\n [icon]=\"chevron\"\n [label]=\"label()\"\n [id]=\"toggleId\"\n [disabled]=\"disabled()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"regionId\"\n (click)=\"expanded.set(!expanded())\"\n ></button>\n </div>\n </div>\n <div\n class=\"ngb-collapsible-region\"\n role=\"region\"\n [id]=\"regionId\"\n [attr.aria-labelledby]=\"title()?.id ?? toggleId\"\n [attr.inert]=\"expanded() ? null : ''\"\n >\n <div class=\"ngb-collapsible-region-inner\">\n <div class=\"ngb-collapsible-region-content\">\n <ng-content select=\"[ngbCollapsibleContent]\" />\n </div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'classes()',\n },\n})\nexport class NgbCollapsibleCard {\n private readonly animation = inject(NGB_CONFIG).animation;\n private readonly i18n = inject(NGB_I18N);\n protected readonly toggleId = ngbId('ngb-collapsible-toggle');\n protected readonly regionId = ngbId('ngb-collapsible-region');\n protected readonly chevron = ngbIconDown;\n protected readonly title = contentChild(NgbCollapsibleTitle);\n\n /** Whether the hidden content is open. Two-way: `[(expanded)]`. Defaults to collapsed. */\n readonly expanded = model(false);\n /** Stops the toggle from working. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Accessible name of the toggle while collapsed. Defaults to the `expand` i18n string. */\n readonly expandLabel = input<string>();\n /** Accessible name of the toggle while expanded. Defaults to the `collapse` i18n string. */\n readonly collapseLabel = input<string>();\n\n protected readonly label = computed(() =>\n this.expanded()\n ? (this.collapseLabel() ?? this.i18n.collapse)\n : (this.expandLabel() ?? this.i18n.expand),\n );\n\n protected readonly classes = computed(() => {\n const classes = ['card', 'ngb-collapsible-card'];\n if (this.expanded()) classes.push('ngb-collapsible-expanded');\n if (!this.animation) classes.push('ngb-collapsible-static');\n return classes.join(' ');\n });\n}\n"],"mappings":"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"}