@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 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