@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,279 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, booleanAttribute, computed, inject, input } from "@angular/core";
3
+ import { NgbValueAccessor, ngbId, provideNgbValueAccessor } from "@ngb-bootstrap/core/cdk";
4
+ var NgbRadioGroup = class NgbRadioGroup extends NgbValueAccessor {
5
+ name = input(ngbId("ngb-radio-group"), ...ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []);
6
+ label = input(...ngDevMode ? [void 0, { debugName: "label" }] : /* istanbul ignore next */ []);
7
+ orientation = input("vertical", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
8
+ color = input(...ngDevMode ? [void 0, { debugName: "color" }] : /* istanbul ignore next */ []);
9
+ size = input("md", ...ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []);
10
+ classes = computed(() => this.orientation() === "horizontal" ? "ngb-choice-group ngb-choice-group-inline" : "ngb-choice-group", ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
11
+ static ɵfac = i0.ɵɵngDeclareFactory({
12
+ minVersion: "12.0.0",
13
+ version: "22.2.3",
14
+ ngImport: i0,
15
+ type: NgbRadioGroup,
16
+ deps: null,
17
+ target: i0.ɵɵFactoryTarget.Component
18
+ });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({
20
+ minVersion: "17.1.0",
21
+ version: "22.2.3",
22
+ type: NgbRadioGroup,
23
+ isStandalone: true,
24
+ selector: "ngb-radio-group",
25
+ inputs: {
26
+ name: {
27
+ classPropertyName: "name",
28
+ publicName: "name",
29
+ isSignal: true,
30
+ isRequired: false,
31
+ transformFunction: null
32
+ },
33
+ label: {
34
+ classPropertyName: "label",
35
+ publicName: "label",
36
+ isSignal: true,
37
+ isRequired: false,
38
+ transformFunction: null
39
+ },
40
+ orientation: {
41
+ classPropertyName: "orientation",
42
+ publicName: "orientation",
43
+ isSignal: true,
44
+ isRequired: false,
45
+ transformFunction: null
46
+ },
47
+ color: {
48
+ classPropertyName: "color",
49
+ publicName: "color",
50
+ isSignal: true,
51
+ isRequired: false,
52
+ transformFunction: null
53
+ },
54
+ size: {
55
+ classPropertyName: "size",
56
+ publicName: "size",
57
+ isSignal: true,
58
+ isRequired: false,
59
+ transformFunction: null
60
+ }
61
+ },
62
+ host: {
63
+ attributes: { "role": "radiogroup" },
64
+ properties: {
65
+ "class": "classes()",
66
+ "attr.aria-label": "label()",
67
+ "attr.aria-invalid": "isInvalid() ? \"true\" : null"
68
+ }
69
+ },
70
+ providers: [provideNgbValueAccessor(() => NgbRadioGroup)],
71
+ usesInheritance: true,
72
+ ngImport: i0,
73
+ template: "<ng-content />",
74
+ isInline: true,
75
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
76
+ });
77
+ };
78
+ i0.ɵɵngDeclareClassMetadata({
79
+ minVersion: "12.0.0",
80
+ version: "22.2.3",
81
+ ngImport: i0,
82
+ type: NgbRadioGroup,
83
+ decorators: [{
84
+ type: Component,
85
+ args: [{
86
+ selector: "ngb-radio-group",
87
+ providers: [provideNgbValueAccessor(() => NgbRadioGroup)],
88
+ template: "<ng-content />",
89
+ changeDetection: ChangeDetectionStrategy.OnPush,
90
+ host: {
91
+ role: "radiogroup",
92
+ "[class]": "classes()",
93
+ "[attr.aria-label]": "label()",
94
+ "[attr.aria-invalid]": "isInvalid() ? \"true\" : null"
95
+ }
96
+ }]
97
+ }],
98
+ propDecorators: {
99
+ name: [{
100
+ type: i0.Input,
101
+ args: [{
102
+ isSignal: true,
103
+ alias: "name",
104
+ required: false
105
+ }]
106
+ }],
107
+ label: [{
108
+ type: i0.Input,
109
+ args: [{
110
+ isSignal: true,
111
+ alias: "label",
112
+ required: false
113
+ }]
114
+ }],
115
+ orientation: [{
116
+ type: i0.Input,
117
+ args: [{
118
+ isSignal: true,
119
+ alias: "orientation",
120
+ required: false
121
+ }]
122
+ }],
123
+ color: [{
124
+ type: i0.Input,
125
+ args: [{
126
+ isSignal: true,
127
+ alias: "color",
128
+ required: false
129
+ }]
130
+ }],
131
+ size: [{
132
+ type: i0.Input,
133
+ args: [{
134
+ isSignal: true,
135
+ alias: "size",
136
+ required: false
137
+ }]
138
+ }]
139
+ }
140
+ });
141
+ var NgbRadio = class NgbRadio {
142
+ group = inject(NgbRadioGroup);
143
+ id = ngbId("ngb-radio");
144
+ hintId = `${this.id}-hint`;
145
+ value = input.required(...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
146
+ hint = input(...ngDevMode ? [void 0, { debugName: "hint" }] : /* istanbul ignore next */ []);
147
+ disabled = input(false, {
148
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
149
+ transform: booleanAttribute
150
+ });
151
+ classes = computed(() => {
152
+ const classes = ["radio"];
153
+ if (this.group.color()) classes.push(`theme-${this.group.color()}`);
154
+ if (this.group.size() !== "md") classes.push(`radio-${this.group.size()}`);
155
+ if (this.group.isInvalid()) classes.push("is-invalid");
156
+ return classes.join(" ");
157
+ }, ...ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []);
158
+ static ɵfac = i0.ɵɵngDeclareFactory({
159
+ minVersion: "12.0.0",
160
+ version: "22.2.3",
161
+ ngImport: i0,
162
+ type: NgbRadio,
163
+ deps: [],
164
+ target: i0.ɵɵFactoryTarget.Component
165
+ });
166
+ static ɵcmp = i0.ɵɵngDeclareComponent({
167
+ minVersion: "17.0.0",
168
+ version: "22.2.3",
169
+ type: NgbRadio,
170
+ isStandalone: true,
171
+ selector: "ngb-radio",
172
+ inputs: {
173
+ value: {
174
+ classPropertyName: "value",
175
+ publicName: "value",
176
+ isSignal: true,
177
+ isRequired: true,
178
+ transformFunction: null
179
+ },
180
+ hint: {
181
+ classPropertyName: "hint",
182
+ publicName: "hint",
183
+ isSignal: true,
184
+ isRequired: false,
185
+ transformFunction: null
186
+ },
187
+ disabled: {
188
+ classPropertyName: "disabled",
189
+ publicName: "disabled",
190
+ isSignal: true,
191
+ isRequired: false,
192
+ transformFunction: null
193
+ }
194
+ },
195
+ host: { classAttribute: "form-field" },
196
+ ngImport: i0,
197
+ template: `
198
+ <input
199
+ type="radio"
200
+ [id]="id"
201
+ [class]="classes()"
202
+ [name]="group.name()"
203
+ [checked]="group.value() === value()"
204
+ [disabled]="group.isDisabled() || disabled()"
205
+ [attr.aria-invalid]="group.isInvalid() ? 'true' : null"
206
+ [attr.aria-describedby]="hint() ? hintId : null"
207
+ (change)="group.setValue(value())"
208
+ (blur)="group.markTouched()"
209
+ />
210
+ <label [for]="id"><ng-content /></label>
211
+ @if (hint()) {
212
+ <div class="form-text" [id]="hintId">{{ hint() }}</div>
213
+ }
214
+ `,
215
+ isInline: true,
216
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
217
+ });
218
+ };
219
+ i0.ɵɵngDeclareClassMetadata({
220
+ minVersion: "12.0.0",
221
+ version: "22.2.3",
222
+ ngImport: i0,
223
+ type: NgbRadio,
224
+ decorators: [{
225
+ type: Component,
226
+ args: [{
227
+ selector: "ngb-radio",
228
+ template: `
229
+ <input
230
+ type="radio"
231
+ [id]="id"
232
+ [class]="classes()"
233
+ [name]="group.name()"
234
+ [checked]="group.value() === value()"
235
+ [disabled]="group.isDisabled() || disabled()"
236
+ [attr.aria-invalid]="group.isInvalid() ? 'true' : null"
237
+ [attr.aria-describedby]="hint() ? hintId : null"
238
+ (change)="group.setValue(value())"
239
+ (blur)="group.markTouched()"
240
+ />
241
+ <label [for]="id"><ng-content /></label>
242
+ @if (hint()) {
243
+ <div class="form-text" [id]="hintId">{{ hint() }}</div>
244
+ }
245
+ `,
246
+ changeDetection: ChangeDetectionStrategy.OnPush,
247
+ host: { class: "form-field" }
248
+ }]
249
+ }],
250
+ propDecorators: {
251
+ value: [{
252
+ type: i0.Input,
253
+ args: [{
254
+ isSignal: true,
255
+ alias: "value",
256
+ required: true
257
+ }]
258
+ }],
259
+ hint: [{
260
+ type: i0.Input,
261
+ args: [{
262
+ isSignal: true,
263
+ alias: "hint",
264
+ required: false
265
+ }]
266
+ }],
267
+ disabled: [{
268
+ type: i0.Input,
269
+ args: [{
270
+ isSignal: true,
271
+ alias: "disabled",
272
+ required: false
273
+ }]
274
+ }]
275
+ }
276
+ });
277
+ export { NgbRadio, NgbRadioGroup };
278
+
279
+ //# sourceMappingURL=ngb-bootstrap-core-radio.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngb-bootstrap-core-radio.mjs","names":[],"sources":["../../../../projects/core/radio/radio-group.ts","../../../../projects/core/radio/radio.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { NgbThemeColor } from '@ngb-bootstrap/core';\nimport { NgbValueAccessor, ngbId, provideNgbValueAccessor } from '@ngb-bootstrap/core/cdk';\n\nexport type NgbRadioSize = 'sm' | 'md' | 'lg';\nexport type NgbRadioOrientation = 'vertical' | 'horizontal';\n\n/**\n * Owns the value of a set of `<ngb-radio>` items. The items are native radios sharing one\n * `name`, so the browser provides the arrow-key behaviour: one tab stop for the group, arrows\n * move the selection. The model is `value`, the value of the selected item.\n *\n * ```html\n * <ngb-radio-group label=\"Plan\" [(value)]=\"plan\">\n * <ngb-radio value=\"free\">Free</ngb-radio>\n * <ngb-radio value=\"pro\">Pro</ngb-radio>\n * </ngb-radio-group>\n * ```\n */\n@Component({\n selector: 'ngb-radio-group',\n providers: [provideNgbValueAccessor(() => NgbRadioGroup)],\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'radiogroup',\n '[class]': 'classes()',\n '[attr.aria-label]': 'label()',\n '[attr.aria-invalid]': 'isInvalid() ? \"true\" : null',\n },\n})\nexport class NgbRadioGroup<T = unknown> extends NgbValueAccessor<T> {\n /** Shared `name` of the radios. Defaults to a unique id. */\n readonly name = input<string>(ngbId('ngb-radio-group'));\n /** Accessible name of the group. Use it when the group has no visible heading. */\n readonly label = input<string>();\n /** `vertical` (default) or `horizontal`. */\n readonly orientation = input<NgbRadioOrientation>('vertical');\n /** Theme colour (Bootstrap `.theme-*`) for every radio. */\n readonly color = input<NgbThemeColor>();\n /** `sm`, `md` (default) or `lg`, for every radio. */\n readonly size = input<NgbRadioSize>('md');\n\n protected readonly classes = computed(() =>\n this.orientation() === 'horizontal'\n ? 'ngb-choice-group ngb-choice-group-inline'\n : 'ngb-choice-group',\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { ngbId } from '@ngb-bootstrap/core/cdk';\nimport { NgbRadioGroup } from './radio-group';\n\n/**\n * One option of an `<ngb-radio-group>`, built on Bootstrap 6 `.radio` over a native\n * `<input type=\"radio\">`. The projected content is the label.\n *\n * ```html\n * <ngb-radio value=\"pro\" hint=\"Unlimited projects.\">Pro</ngb-radio>\n * ```\n */\n@Component({\n selector: 'ngb-radio',\n template: `\n <input\n type=\"radio\"\n [id]=\"id\"\n [class]=\"classes()\"\n [name]=\"group.name()\"\n [checked]=\"group.value() === value()\"\n [disabled]=\"group.isDisabled() || disabled()\"\n [attr.aria-invalid]=\"group.isInvalid() ? 'true' : null\"\n [attr.aria-describedby]=\"hint() ? hintId : null\"\n (change)=\"group.setValue(value())\"\n (blur)=\"group.markTouched()\"\n />\n <label [for]=\"id\"><ng-content /></label>\n @if (hint()) {\n <div class=\"form-text\" [id]=\"hintId\">{{ hint() }}</div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'form-field' },\n})\nexport class NgbRadio {\n protected readonly group = inject(NgbRadioGroup);\n protected readonly id = ngbId('ngb-radio');\n protected readonly hintId = `${this.id}-hint`;\n\n /** The value the group takes when this radio is selected. */\n readonly value = input.required<unknown>();\n /** Description shown under the label and linked with `aria-describedby`. */\n readonly hint = input<string>();\n /** Disables this radio. The group can disable all of them. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly classes = computed(() => {\n const classes = ['radio'];\n if (this.group.color()) classes.push(`theme-${this.group.color()}`);\n if (this.group.size() !== 'md') classes.push(`radio-${this.group.size()}`);\n if (this.group.isInvalid()) classes.push('is-invalid');\n return classes.join(' ');\n });\n}\n"],"mappings":"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"}