@kouji-ui/core 0.0.3 → 0.0.4
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/.turbo/turbo-build.log +3 -3
- package/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/src/button/button.spec.ts +1 -1
- package/src/dialog/dialog.spec.ts +1 -1
- package/src/primitives/forms/form-control.spec.ts +3 -3
- package/src/primitives/overlay/overlay.spec.ts +5 -5
- package/src/primitives/overlay/overlay.ts +5 -1
- package/src/select/select.ts +2 -2
- package/src/table/table.spec.ts +1 -1
- package/src/toast/toast.spec.ts +15 -14
- package/src/toast/toast.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
|
|
2
|
-
> @kouji-ui/core@0.0.
|
|
2
|
+
> @kouji-ui/core@0.0.4 build /home/runner/work/kouji-ui/kouji-ui/packages/core
|
|
3
3
|
> ng-packagr -p ng-package.json
|
|
4
4
|
|
|
5
5
|
Building Angular Package
|
|
6
6
|
|
|
7
7
|
------------------------------------------------------------------------------
|
|
8
|
+
- Compiling with Angular sources in partial compilation mode.
|
|
8
9
|
Building entry point '@kouji-ui/core'
|
|
9
10
|
------------------------------------------------------------------------------
|
|
10
|
-
- Compiling with Angular sources in partial compilation mode.
|
|
11
11
|
[32m✔[39m Compiling with Angular sources in partial compilation mode.
|
|
12
12
|
[32m✔[39m Generating FESM and DTS bundles
|
|
13
13
|
- Copying assets
|
|
@@ -23,5 +23,5 @@ Built Angular Package
|
|
|
23
23
|
- to: /home/runner/work/kouji-ui/kouji-ui/dist/kj-core
|
|
24
24
|
------------------------------------------------------------------------------
|
|
25
25
|
|
|
26
|
-
Build at: 2026-05-
|
|
26
|
+
Build at: 2026-05-04T22:25:26.490Z - Time: 5957ms
|
|
27
27
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @kouji-ui/core
|
|
2
2
|
|
|
3
|
+
## 0.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 202d9de: CI fix: husky pre-push hook now skips in CI environments (`$CI` or `$GITHUB_ACTIONS` set). Prevents the Changesets action's automated push from being blocked by the changeset-status gate. No runtime effect on the published package.
|
|
8
|
+
- dc0fe0f: Test-only fix: rewrite `KjToastService` test suite to use `TestBed.inject()` so `inject(KJ_TOAST_STRATEGY)` resolves through Angular DI (was crashing with `new KjToastService()` outside an injection context). No runtime change.
|
|
9
|
+
- d6b40e1: Internal lint cleanup — replace `any` casts in select option storage with typed `HTMLElement & { __kjOptionValue?: unknown }` and convert ternary statement to if/else in overlay toggle. No public API or behavior change.
|
|
10
|
+
|
|
3
11
|
## 0.0.3
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -75,7 +75,7 @@ describe('KjDialogTrigger', () => {
|
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
it('closes dialog on overlay click (close on backdrop enabled by default)', async () => {
|
|
78
|
-
const { getByRole
|
|
78
|
+
const { getByRole } = await render(
|
|
79
79
|
`<button [kjDialogTrigger]="dlg">Open</button>
|
|
80
80
|
<ng-template #dlg>
|
|
81
81
|
<div kjDialogOverlay>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { render
|
|
4
|
-
import {
|
|
3
|
+
import { render } from '@testing-library/angular';
|
|
4
|
+
import { toHaveNoViolations } from 'jest-axe';
|
|
5
5
|
import { KjFormControl } from './form-control';
|
|
6
6
|
|
|
7
7
|
expect.extend(toHaveNoViolations);
|
|
@@ -14,7 +14,7 @@ expect.extend(toHaveNoViolations);
|
|
|
14
14
|
class TestHostComponent {
|
|
15
15
|
ctrl = new FormControl('');
|
|
16
16
|
formCtrl!: KjFormControl;
|
|
17
|
-
onInput(
|
|
17
|
+
onInput(_e: Event): void {
|
|
18
18
|
// will be wired by the directive consumer pattern
|
|
19
19
|
}
|
|
20
20
|
onBlur(): void {}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, TemplateRef, ViewChild, ViewContainerRef, inject } from '@angular/core';
|
|
1
|
+
import { Component, TemplateRef, ViewChild, ViewContainerRef, inject, OnInit } from '@angular/core';
|
|
2
2
|
import { render } from '@testing-library/angular';
|
|
3
3
|
import { KjOverlayService, KjOverlayRef } from './overlay';
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ describe('KjOverlayService', () => {
|
|
|
17
17
|
standalone: true,
|
|
18
18
|
template: '<ng-template #tpl><div>overlay content</div></ng-template>',
|
|
19
19
|
})
|
|
20
|
-
class TestComponent {
|
|
20
|
+
class TestComponent implements OnInit {
|
|
21
21
|
@ViewChild('tpl', { static: true }) tpl!: TemplateRef<unknown>;
|
|
22
22
|
readonly svc = inject(KjOverlayService);
|
|
23
23
|
readonly vcr = inject(ViewContainerRef);
|
|
@@ -34,7 +34,7 @@ describe('KjOverlayService', () => {
|
|
|
34
34
|
standalone: true,
|
|
35
35
|
template: '<ng-template #tpl><div>overlay</div></ng-template>',
|
|
36
36
|
})
|
|
37
|
-
class TestComponent {
|
|
37
|
+
class TestComponent implements OnInit {
|
|
38
38
|
@ViewChild('tpl', { static: true }) tpl!: TemplateRef<unknown>;
|
|
39
39
|
readonly svc = inject(KjOverlayService);
|
|
40
40
|
readonly vcr = inject(ViewContainerRef);
|
|
@@ -53,7 +53,7 @@ describe('KjOverlayService', () => {
|
|
|
53
53
|
standalone: true,
|
|
54
54
|
template: '<ng-template #tpl><div>overlay</div></ng-template>',
|
|
55
55
|
})
|
|
56
|
-
class TestComponent {
|
|
56
|
+
class TestComponent implements OnInit {
|
|
57
57
|
@ViewChild('tpl', { static: true }) tpl!: TemplateRef<unknown>;
|
|
58
58
|
readonly svc = inject(KjOverlayService);
|
|
59
59
|
readonly vcr = inject(ViewContainerRef);
|
|
@@ -73,7 +73,7 @@ describe('KjOverlayService', () => {
|
|
|
73
73
|
standalone: true,
|
|
74
74
|
template: '<ng-template #tpl><div>overlay</div></ng-template>',
|
|
75
75
|
})
|
|
76
|
-
class TestComponent {
|
|
76
|
+
class TestComponent implements OnInit {
|
|
77
77
|
@ViewChild('tpl', { static: true }) tpl!: TemplateRef<unknown>;
|
|
78
78
|
readonly svc = inject(KjOverlayService);
|
|
79
79
|
readonly vcr = inject(ViewContainerRef);
|
package/src/select/select.ts
CHANGED
|
@@ -188,7 +188,7 @@ export class KjSelectContent {
|
|
|
188
188
|
this.el.nativeElement.querySelectorAll('[kjOption]')
|
|
189
189
|
) as HTMLElement[]).map((el, i) => ({
|
|
190
190
|
el,
|
|
191
|
-
value: (el as
|
|
191
|
+
value: (el as HTMLElement & { __kjOptionValue?: unknown }).__kjOptionValue,
|
|
192
192
|
id: el.id || `kj-option-${i}`,
|
|
193
193
|
}));
|
|
194
194
|
}
|
|
@@ -234,7 +234,7 @@ export class KjOption {
|
|
|
234
234
|
|
|
235
235
|
constructor() {
|
|
236
236
|
effect(() => {
|
|
237
|
-
(this.el.nativeElement as
|
|
237
|
+
(this.el.nativeElement as HTMLElement & { __kjOptionValue?: unknown }).__kjOptionValue = this.kjOptionValue();
|
|
238
238
|
});
|
|
239
239
|
afterNextRender(() => {
|
|
240
240
|
if (!this.el.nativeElement.id) {
|
package/src/table/table.spec.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { ColumnDef } from '@tanstack/angular-table';
|
|
3
|
-
import { render
|
|
3
|
+
import { render } from '@testing-library/angular';
|
|
4
4
|
import { axe, toHaveNoViolations } from 'jest-axe';
|
|
5
5
|
import { KjTable, KjTableHeader } from './table';
|
|
6
6
|
|
package/src/toast/toast.spec.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TestBed } from '@angular/core/testing';
|
|
2
|
+
import { render } from '@testing-library/angular';
|
|
2
3
|
import { axe, toHaveNoViolations } from 'jest-axe';
|
|
3
4
|
import { KjToast, KjToastViewport } from './toast';
|
|
4
5
|
import { KjToastService } from './toast.service';
|
|
5
|
-
import { Component, inject } from '@angular/core';
|
|
6
6
|
|
|
7
7
|
expect.extend(toHaveNoViolations);
|
|
8
8
|
|
|
@@ -47,43 +47,44 @@ describe('KjToastViewport', () => {
|
|
|
47
47
|
});
|
|
48
48
|
|
|
49
49
|
describe('KjToastService', () => {
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
let svc: KjToastService;
|
|
51
|
+
|
|
52
|
+
beforeEach(() => {
|
|
53
|
+
TestBed.configureTestingModule({});
|
|
54
|
+
svc = TestBed.inject(KjToastService);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('show(message) adds a toast', () => {
|
|
52
58
|
expect(svc.toasts().length).toBe(0);
|
|
53
59
|
svc.show('Hello', { duration: 0 });
|
|
54
60
|
expect(svc.toasts().length).toBe(1);
|
|
55
61
|
expect(svc.toasts()[0].message).toBe('Hello');
|
|
56
62
|
});
|
|
57
63
|
|
|
58
|
-
it('dismiss() removes a toast',
|
|
59
|
-
const svc = new KjToastService();
|
|
64
|
+
it('dismiss() removes a toast', () => {
|
|
60
65
|
const id = svc.show('Test', { duration: 0 });
|
|
61
66
|
svc.dismiss(id);
|
|
62
67
|
expect(svc.toasts().length).toBe(0);
|
|
63
68
|
});
|
|
64
69
|
|
|
65
|
-
it('success() sets variant=success',
|
|
66
|
-
const svc = new KjToastService();
|
|
70
|
+
it('success() sets variant=success', () => {
|
|
67
71
|
svc.success('Done', { duration: 0 });
|
|
68
72
|
expect(svc.toasts()[0].variant).toBe('success');
|
|
69
73
|
});
|
|
70
74
|
|
|
71
|
-
it('error() sets variant=destructive',
|
|
72
|
-
const svc = new KjToastService();
|
|
75
|
+
it('error() sets variant=destructive', () => {
|
|
73
76
|
svc.error('Fail', { duration: 0 });
|
|
74
77
|
expect(svc.toasts()[0].variant).toBe('destructive');
|
|
75
78
|
});
|
|
76
79
|
|
|
77
|
-
it('dismissAll() clears all toasts',
|
|
78
|
-
const svc = new KjToastService();
|
|
80
|
+
it('dismissAll() clears all toasts', () => {
|
|
79
81
|
svc.show('A', { duration: 0 });
|
|
80
82
|
svc.show('B', { duration: 0 });
|
|
81
83
|
svc.dismissAll();
|
|
82
84
|
expect(svc.toasts().length).toBe(0);
|
|
83
85
|
});
|
|
84
86
|
|
|
85
|
-
it('contextFor() exposes a bound dismiss callback',
|
|
86
|
-
const svc = new KjToastService();
|
|
87
|
+
it('contextFor() exposes a bound dismiss callback', () => {
|
|
87
88
|
const id = svc.show('Hello', { duration: 0 });
|
|
88
89
|
const ctx = svc.contextFor(svc.toasts()[0]);
|
|
89
90
|
expect(ctx.id).toBe(id);
|
package/src/toast/toast.ts
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
DestroyRef, Directive, ElementRef, TemplateRef,
|
|
3
3
|
afterNextRender, computed, inject, input, signal,
|
|
4
4
|
} from '@angular/core';
|
|
5
|
-
import {
|
|
5
|
+
import { KjToastService, KjToastTemplateContext, KjToastVariant } from './toast.service';
|
|
6
6
|
import { KJ_TOAST_STRATEGY } from './toast.strategy';
|
|
7
7
|
import { KjToastPositionX, KjToastPositionY } from './toast.types';
|
|
8
8
|
|