@kinetixui/angular 0.24.0 → 0.25.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/README.md +129 -0
- package/fesm2022/kinetixui-angular.mjs +4099 -189
- package/fesm2022/kinetixui-angular.mjs.map +1 -1
- package/package.json +4 -3
- package/styles.css +1720 -83
- package/types/kinetixui-angular.d.ts +1546 -7
package/README.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# @kinetixui/angular
|
|
2
|
+
|
|
3
|
+
KinetixUI for Angular — standalone directives and components built on the same generated design token
|
|
4
|
+
contract as the other KinetixUI implementations.
|
|
5
|
+
|
|
6
|
+
> **Preview.** This package is published so it can be used and reported on, and publication is
|
|
7
|
+
> distribution, not maturity. It carries **64 of the 98 entries in the KinetixUI catalogue** and is
|
|
8
|
+
> rolling out in waves. Expect gaps, and expect APIs to move within `0.x`. If you need the full
|
|
9
|
+
> catalogue today, that is the React implementation (`@kinetixui/ui`).
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @kinetixui/angular @kinetixui/tokens
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## What it currently provides
|
|
16
|
+
|
|
17
|
+
64 components, as **170 exported symbols** (a component plus its parts and variant types count
|
|
18
|
+
separately). Present today:
|
|
19
|
+
|
|
20
|
+
`accordion` · `alert` · `alert-dialog` · `app-bar` · `aspect-ratio` · `avatar` · `avatar-group` · `badge` ·
|
|
21
|
+
`banner` · `breadcrumb` · `button` · `button-group` · `card` · `checkbox` · `circular-progress` ·
|
|
22
|
+
`code-block` · `collapsible` · `description-list` · `dialog` · `drawer` · `empty` · `fab` · `field` ·
|
|
23
|
+
`footer` · `hover-card` · `image` · `inform` · `input` · `input-group` · `input-otp` · `kbd` · `label` ·
|
|
24
|
+
`list` · `marquee` · `metric` · `modal` · `native-select` · `navigation-bar` · `number-input` ·
|
|
25
|
+
`page-header` · `pagination` · `password-input` · `popover` · `progress` · `quote` · `radio-group` ·
|
|
26
|
+
`rating` · `segmented-control` · `separator` · `sheet` · `skeleton` · `slider` · `spinner` · `stepper` ·
|
|
27
|
+
`switch` · `tab-bar` · `table-of-contents` · `tabs` · `tag` · `textarea` · `timeline` · `toggle` ·
|
|
28
|
+
`toggle-group` · `tooltip`
|
|
29
|
+
|
|
30
|
+
Not present: menus and listboxes (dropdown menu, context menu, select, combobox, command), notifications
|
|
31
|
+
(toast, notification center, tour), data display (table, data grid, data table), menu-driven navigation
|
|
32
|
+
(menubar, navigation menu, sidebar), and the rest of the catalogue. The authoritative, always-current list — and the reason each absent component is absent — is
|
|
33
|
+
at [kinetixui.com/docs/platforms](https://kinetixui.com/docs/platforms), generated from the same manifest
|
|
34
|
+
this package is built against.
|
|
35
|
+
|
|
36
|
+
## Minimal usage
|
|
37
|
+
|
|
38
|
+
Load the stylesheet once, then import the standalone symbols you need.
|
|
39
|
+
|
|
40
|
+
```css
|
|
41
|
+
/* your global stylesheet */
|
|
42
|
+
@import "@kinetixui/tokens/css";
|
|
43
|
+
@import "@kinetixui/tokens/css/dark";
|
|
44
|
+
@import "@kinetixui/angular/styles.css";
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import { Component } from '@angular/core';
|
|
49
|
+
import { KxButton, KxCard, KxCardContent } from '@kinetixui/angular';
|
|
50
|
+
|
|
51
|
+
@Component({
|
|
52
|
+
selector: 'app-example',
|
|
53
|
+
imports: [KxButton, KxCard, KxCardContent],
|
|
54
|
+
template: `
|
|
55
|
+
<kx-card>
|
|
56
|
+
<kx-card-content>
|
|
57
|
+
<button kxButton variant="Primary">Save</button>
|
|
58
|
+
<button kxButton variant="Outline" size="lg">Cancel</button>
|
|
59
|
+
</kx-card-content>
|
|
60
|
+
</kx-card>
|
|
61
|
+
`,
|
|
62
|
+
})
|
|
63
|
+
export class ExampleComponent {}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Design choice worth knowing: directives on real elements
|
|
67
|
+
|
|
68
|
+
The package uses two shapes, and which one you get follows the semantics rather than a house style.
|
|
69
|
+
|
|
70
|
+
**Where a native element already carries the semantics, it is a directive on that element.**
|
|
71
|
+
`<button kxButton>` is a real `<button>`, so it keeps its own role, `type`, `disabled`, form submission,
|
|
72
|
+
focus order and the browser's activation behaviour — none of which has to be re-created with ARIA. There
|
|
73
|
+
is no `<kx-button>`.
|
|
74
|
+
|
|
75
|
+
**Where there is no native equivalent, it is a component.** A card is a composed surface with no HTML
|
|
76
|
+
element behind it, so it is `<kx-card>` / `<kx-card-content>`.
|
|
77
|
+
|
|
78
|
+
So you apply an attribute to semantic elements and nest a tag for composed ones. Check the import's name
|
|
79
|
+
in your editor if you are unsure: `KxButton` is a directive, `KxCard` is a component.
|
|
80
|
+
|
|
81
|
+
## Environment
|
|
82
|
+
|
|
83
|
+
- **Angular 21** — `@angular/core` and `@angular/forms` are peers at `^21.0.0`
|
|
84
|
+
- **`@kinetixui/tokens`** is a peer at `>=0.24.0 <0.25.0`; install it alongside this package. 0.25.0 reads
|
|
85
|
+
`--surface-grouped` and `--on-info-container`, which tokens 0.23.x does not define
|
|
86
|
+
- Standalone APIs only — no NgModules are exported
|
|
87
|
+
- Built with ng-packagr; ships `fesm2022` plus types, and is compiled and strict-template-typechecked in
|
|
88
|
+
CI on every change
|
|
89
|
+
|
|
90
|
+
## Accessibility
|
|
91
|
+
|
|
92
|
+
What is verified is published rather than asserted. For this package: **64 of 64 implementations have
|
|
93
|
+
interaction and accessibility verification** — from unit suites in jsdom, and from `check:angular-browser`,
|
|
94
|
+
which runs the package as a live Angular application in Chromium: every usage example and state fixture
|
|
95
|
+
under axe in light and dark, forced colours and reduced motion, and every interactive component driven by a
|
|
96
|
+
real keyboard; and from `check:angular-overlays`, which opens every overlay, alone, nested and composed, and
|
|
97
|
+
measures stacking, dismissal, scroll locking, focus restoration and placement. 31 components have RTL verification (measured in an LTR page, an RTL page, and each nested in
|
|
98
|
+
the other); 37 have large-text verification at 200% text, at desktop and phone width; the switch, accordion,
|
|
99
|
+
collapsible, app bar and all eight overlays have reduced-motion verification (motion runs at normal settings, and is
|
|
100
|
+
suppressed with the same end state under reduced motion). Visual states are measured on rendered pixels by `check:selection-visual`
|
|
101
|
+
(checkbox, radio group, switch, segmented control), `check:entry-visual` (input, textarea, native select,
|
|
102
|
+
tabs), `check:composite-visual` (input group, number input, one-time code, password input),
|
|
103
|
+
`check:navigation-visual` (breadcrumb, pagination, table of contents, tab bar, app bar, footer, accordion),
|
|
104
|
+
`check:overlay-visual` (dialog, alert dialog, modal, sheet, drawer, popover, tooltip, hover card) and
|
|
105
|
+
`check:card-visual` (the card at rest, and as a link or button). This is evidence for the behaviours
|
|
106
|
+
listed, not an accessibility certification. There is no snapshot visual-regression suite, here or anywhere
|
|
107
|
+
in KinetixUI.
|
|
108
|
+
|
|
109
|
+
The per-component, per-kind evidence table is at
|
|
110
|
+
[kinetixui.com/docs/platforms](https://kinetixui.com/docs/platforms).
|
|
111
|
+
|
|
112
|
+
## Limitations
|
|
113
|
+
|
|
114
|
+
- **Preview, and 64 of 98 entries.** Do not plan around a component that is not in the list above.
|
|
115
|
+
- Versioned independently of `@kinetixui/{ui,tokens,cli}` — its version number does not track theirs.
|
|
116
|
+
- The token peer range is a deliberate compatibility claim, widened only after the package is verified
|
|
117
|
+
against a new token version. It will not silently follow the token package.
|
|
118
|
+
- Pre-1.0: APIs can move in a minor.
|
|
119
|
+
|
|
120
|
+
## Links
|
|
121
|
+
|
|
122
|
+
- Angular documentation — <https://kinetixui.com/docs/angular>
|
|
123
|
+
- Platform coverage and evidence — <https://kinetixui.com/docs/platforms>
|
|
124
|
+
- Components — <https://kinetixui.com/components>
|
|
125
|
+
- Source — <https://github.com/zedalleys/kinetixui>
|
|
126
|
+
|
|
127
|
+
## License
|
|
128
|
+
|
|
129
|
+
MIT
|