Skip to content

Commit 9b19227

Browse files
committed
Merge branch 'main' into spright-chat-input-spec
2 parents 8348833 + b5ede3b commit 9b19227

File tree

373 files changed

+4213
-950
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

373 files changed

+4213
-950
lines changed

package-lock.json

Lines changed: 627 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
"packages/nimble-tokens",
4646
"packages/nimble-components",
4747
"packages/spright-components",
48+
"packages/react-workspace/nimble-react",
49+
"packages/react-workspace/spright-react",
50+
"packages/react-workspace/react-client-app",
4851
"packages/storybook",
4952
"packages/angular-workspace",
5053
"packages/angular-workspace/nimble-angular",

packages/angular-workspace/nimble-angular/CHANGELOG.json

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,51 @@
11
{
22
"name": "@ni/nimble-angular",
33
"entries": [
4+
{
5+
"date": "Thu, 29 May 2025 01:50:59 GMT",
6+
"version": "30.3.1",
7+
"tag": "@ni/nimble-angular_v30.3.1",
8+
"comments": {
9+
"patch": [
10+
{
11+
"author": "beachball",
12+
"package": "@ni/nimble-angular",
13+
"comment": "Bump @ni/nimble-components to v33.8.1",
14+
"commit": "not available"
15+
}
16+
]
17+
}
18+
},
19+
{
20+
"date": "Tue, 27 May 2025 23:07:08 GMT",
21+
"version": "30.3.0",
22+
"tag": "@ni/nimble-angular_v30.3.0",
23+
"comments": {
24+
"minor": [
25+
{
26+
"author": "[email protected]",
27+
"package": "@ni/nimble-angular",
28+
"commit": "f0b7dc3cf5ba1326de7f57147b228553df081e36",
29+
"comment": "Update nimble-select, nimble-combobox, nimble-text-area, nimble-number-field, and nimble-text-field to support appearance-readonly and full-bleed"
30+
}
31+
]
32+
}
33+
},
34+
{
35+
"date": "Fri, 23 May 2025 21:40:15 GMT",
36+
"version": "30.2.1",
37+
"tag": "@ni/nimble-angular_v30.2.1",
38+
"comments": {
39+
"patch": [
40+
{
41+
"author": "beachball",
42+
"package": "@ni/nimble-angular",
43+
"comment": "Bump @ni/nimble-components to v33.8.0",
44+
"commit": "not available"
45+
}
46+
]
47+
}
48+
},
449
{
550
"date": "Tue, 20 May 2025 23:06:06 GMT",
651
"version": "30.2.0",

packages/angular-workspace/nimble-angular/CHANGELOG.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,33 @@
11
# Change Log - @ni/nimble-angular
22

3-
<!-- This log was last generated on Tue, 20 May 2025 23:06:06 GMT and should not be manually modified. -->
3+
<!-- This log was last generated on Thu, 29 May 2025 01:50:59 GMT and should not be manually modified. -->
44

55
<!-- Start content -->
66

7+
## 30.3.1
8+
9+
Thu, 29 May 2025 01:50:59 GMT
10+
11+
### Patches
12+
13+
- Bump @ni/nimble-components to v33.8.1
14+
15+
## 30.3.0
16+
17+
Tue, 27 May 2025 23:07:08 GMT
18+
19+
### Minor changes
20+
21+
- Update nimble-select, nimble-combobox, nimble-text-area, nimble-number-field, and nimble-text-field to support appearance-readonly and full-bleed ([ni/nimble@f0b7dc3](https://github.com/ni/nimble/commit/f0b7dc3cf5ba1326de7f57147b228553df081e36))
22+
23+
## 30.2.1
24+
25+
Fri, 23 May 2025 21:40:15 GMT
26+
27+
### Patches
28+
29+
- Bump @ni/nimble-components to v33.8.0
30+
731
## 30.2.0
832

933
Tue, 20 May 2025 23:06:06 GMT

packages/angular-workspace/nimble-angular/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@ni/nimble-angular",
3-
"version": "30.2.0",
3+
"version": "30.3.1",
44
"description": "Angular components for the NI Nimble Design System",
55
"scripts": {
66
"invoke-publish": "npm run invoke-publish:setup && cd ../dist/nimble-angular && npm publish",
@@ -32,7 +32,7 @@
3232
"@angular/forms": "^18.2.13",
3333
"@angular/localize": "^18.2.13",
3434
"@angular/router": "^18.2.13",
35-
"@ni/nimble-components": "^33.7.0"
35+
"@ni/nimble-components": "^33.8.1"
3636
},
3737
"dependencies": {
3838
"tslib": "^2.2.0"

packages/angular-workspace/nimble-angular/src/directives/combobox/nimble-combobox.directive.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,21 @@ export class NimbleComboboxDirective {
8383
this.renderer.setProperty(this.elementRef.nativeElement, 'requiredVisible', toBooleanProperty(value));
8484
}
8585

86+
public get appearanceReadOnly(): boolean {
87+
return this.elementRef.nativeElement.appearanceReadOnly;
88+
}
89+
90+
@Input('appearance-readonly') public set appearanceReadOnly(value: BooleanValueOrAttribute) {
91+
this.renderer.setProperty(this.elementRef.nativeElement, 'appearanceReadOnly', toBooleanProperty(value));
92+
}
93+
94+
public get fullBleed(): boolean {
95+
return this.elementRef.nativeElement.fullBleed;
96+
}
97+
98+
@Input('full-bleed') public set fullBleed(value: BooleanValueOrAttribute) {
99+
this.renderer.setProperty(this.elementRef.nativeElement, 'fullBleed', toBooleanProperty(value));
100+
}
101+
86102
public constructor(private readonly renderer: Renderer2, private readonly elementRef: ElementRef<Combobox>) {}
87103
}

packages/angular-workspace/nimble-angular/src/directives/combobox/tests/nimble-combobox.directive.spec.ts

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,28 @@ describe('Nimble combobox', () => {
101101
expect(directive.requiredVisible).toBeTrue();
102102
expect(nativeElement.requiredVisible).toBeTrue();
103103
});
104+
105+
it('has expected defaults for appearanceReadOnly', () => {
106+
expect(directive.appearanceReadOnly).toBeFalse();
107+
expect(nativeElement.appearanceReadOnly).toBeFalse();
108+
});
109+
110+
it('can use the directive to set appearanceReadOnly', () => {
111+
directive.appearanceReadOnly = true;
112+
expect(directive.appearanceReadOnly).toBeTrue();
113+
expect(nativeElement.appearanceReadOnly).toBeTrue();
114+
});
115+
116+
it('has expected defaults for fullBleed', () => {
117+
expect(directive.fullBleed).toBeFalse();
118+
expect(nativeElement.fullBleed).toBeFalse();
119+
});
120+
121+
it('can use the directive to set fullBleed', () => {
122+
directive.fullBleed = true;
123+
expect(directive.fullBleed).toBeTrue();
124+
expect(nativeElement.fullBleed).toBeTrue();
125+
});
104126
});
105127

106128
describe('with template string values', () => {
@@ -115,6 +137,8 @@ describe('Nimble combobox', () => {
115137
error-visible
116138
open
117139
required-visible
140+
appearance-readonly
141+
full-bleed
118142
>
119143
</nimble-combobox>`
120144
})
@@ -177,6 +201,16 @@ describe('Nimble combobox', () => {
177201
expect(directive.requiredVisible).toBeTrue();
178202
expect(nativeElement.requiredVisible).toBeTrue();
179203
});
204+
205+
it('will use template string values for appearanceReadOnly', () => {
206+
expect(directive.appearanceReadOnly).toBeTrue();
207+
expect(nativeElement.appearanceReadOnly).toBeTrue();
208+
});
209+
210+
it('will use template string values for fullBleed', () => {
211+
expect(directive.fullBleed).toBeTrue();
212+
expect(nativeElement.fullBleed).toBeTrue();
213+
});
180214
});
181215

182216
describe('with property bound values', () => {
@@ -191,6 +225,8 @@ describe('Nimble combobox', () => {
191225
[error-visible]="errorVisible"
192226
[open]="open"
193227
[required-visible]="requiredVisible"
228+
[appearance-readonly]="appearanceReadOnly"
229+
[full-bleed]="fullBleed"
194230
>
195231
</nimble-combobox>
196232
`
@@ -206,6 +242,8 @@ describe('Nimble combobox', () => {
206242
public errorVisible = false;
207243
public open = false;
208244
public requiredVisible = false;
245+
public appearanceReadOnly = false;
246+
public fullBleed = false;
209247
}
210248

211249
let fixture: ComponentFixture<TestHostComponent>;
@@ -311,6 +349,28 @@ describe('Nimble combobox', () => {
311349
expect(directive.requiredVisible).toBeTrue();
312350
expect(nativeElement.requiredVisible).toBeTrue();
313351
});
352+
353+
it('can be configured with property binding for appearanceReadOnly', () => {
354+
expect(directive.appearanceReadOnly).toBeFalse();
355+
expect(nativeElement.appearanceReadOnly).toBeFalse();
356+
357+
fixture.componentInstance.appearanceReadOnly = true;
358+
fixture.detectChanges();
359+
360+
expect(directive.appearanceReadOnly).toBeTrue();
361+
expect(nativeElement.appearanceReadOnly).toBeTrue();
362+
});
363+
364+
it('can be configured with property binding for fullBleed', () => {
365+
expect(directive.fullBleed).toBeFalse();
366+
expect(nativeElement.fullBleed).toBeFalse();
367+
368+
fixture.componentInstance.fullBleed = true;
369+
fixture.detectChanges();
370+
371+
expect(directive.fullBleed).toBeTrue();
372+
expect(nativeElement.fullBleed).toBeTrue();
373+
});
314374
});
315375

316376
describe('with attribute bound values', () => {
@@ -325,6 +385,8 @@ describe('Nimble combobox', () => {
325385
[attr.error-visible]="errorVisible"
326386
[attr.open]="open"
327387
[attr.required-visible]="requiredVisible"
388+
[attr.appearance-readonly]="appearanceReadOnly"
389+
[attr.full-bleed]="fullBleed"
328390
>
329391
</nimble-combobox>
330392
`
@@ -340,6 +402,8 @@ describe('Nimble combobox', () => {
340402
public errorVisible: BooleanValueOrAttribute = null;
341403
public open: BooleanValueOrAttribute = null;
342404
public requiredVisible: BooleanValueOrAttribute = null;
405+
public appearanceReadOnly: BooleanValueOrAttribute = null;
406+
public fullBleed: BooleanValueOrAttribute = null;
343407
}
344408

345409
let fixture: ComponentFixture<TestHostComponent>;
@@ -445,6 +509,28 @@ describe('Nimble combobox', () => {
445509
expect(directive.requiredVisible).toBeTrue();
446510
expect(nativeElement.requiredVisible).toBeTrue();
447511
});
512+
513+
it('can be configured with attribute binding for appearanceReadOnly', () => {
514+
expect(directive.appearanceReadOnly).toBeFalse();
515+
expect(nativeElement.appearanceReadOnly).toBeFalse();
516+
517+
fixture.componentInstance.appearanceReadOnly = '';
518+
fixture.detectChanges();
519+
520+
expect(directive.appearanceReadOnly).toBeTrue();
521+
expect(nativeElement.appearanceReadOnly).toBeTrue();
522+
});
523+
524+
it('can be configured with attribute binding for fullBleed', () => {
525+
expect(directive.fullBleed).toBeFalse();
526+
expect(nativeElement.fullBleed).toBeFalse();
527+
528+
fixture.componentInstance.fullBleed = '';
529+
fixture.detectChanges();
530+
531+
expect(directive.fullBleed).toBeTrue();
532+
expect(nativeElement.fullBleed).toBeTrue();
533+
});
448534
});
449535

450536
describe('can access value through directive', () => {

packages/angular-workspace/nimble-angular/src/directives/number-field/nimble-number-field.directive.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,5 +96,21 @@ export class NimbleNumberFieldDirective {
9696
this.renderer.setProperty(this.elementRef.nativeElement, 'requiredVisible', toBooleanProperty(value));
9797
}
9898

99+
public get appearanceReadOnly(): boolean {
100+
return this.elementRef.nativeElement.appearanceReadOnly;
101+
}
102+
103+
@Input('appearance-readonly') public set appearanceReadOnly(value: BooleanValueOrAttribute) {
104+
this.renderer.setProperty(this.elementRef.nativeElement, 'appearanceReadOnly', toBooleanProperty(value));
105+
}
106+
107+
public get fullBleed(): boolean {
108+
return this.elementRef.nativeElement.fullBleed;
109+
}
110+
111+
@Input('full-bleed') public set fullBleed(value: BooleanValueOrAttribute) {
112+
this.renderer.setProperty(this.elementRef.nativeElement, 'fullBleed', toBooleanProperty(value));
113+
}
114+
99115
public constructor(private readonly renderer: Renderer2, private readonly elementRef: ElementRef<NumberField>) {}
100116
}

0 commit comments

Comments
 (0)