@konce-pt/angular 0.6.0 → 0.7.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/CHANGELOG.md +68 -0
- package/README.md +38 -19
- package/fesm2022/konce-pt-angular-charts.mjs +1409 -0
- package/fesm2022/konce-pt-angular-charts.mjs.map +1 -0
- package/fesm2022/konce-pt-angular-grid.mjs +232 -0
- package/{dist/fesm2022 → fesm2022}/konce-pt-angular-grid.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-roadmap.mjs +1919 -0
- package/fesm2022/konce-pt-angular-roadmap.mjs.map +1 -0
- package/fesm2022/konce-pt-angular.mjs +11869 -0
- package/fesm2022/konce-pt-angular.mjs.map +1 -0
- package/package.json +28 -51
- package/roadmap/src/lib/llms.txt +112 -0
- package/{dist/src → src}/lib/form-field/llms.txt +5 -0
- package/{dist/src → src}/lib/input/llms.txt +13 -3
- package/src/lib/input-number/llms.txt +61 -0
- package/src/lib/tooltip/llms.txt +33 -0
- package/{dist/types → types}/konce-pt-angular-charts.d.ts +1 -0
- package/types/konce-pt-angular-charts.d.ts.map +1 -0
- package/{dist/types → types}/konce-pt-angular-grid.d.ts +1 -0
- package/types/konce-pt-angular-grid.d.ts.map +1 -0
- package/{dist/types → types}/konce-pt-angular-icons.d.ts +1 -0
- package/types/konce-pt-angular-icons.d.ts.map +1 -0
- package/types/konce-pt-angular-roadmap.d.ts +649 -0
- package/types/konce-pt-angular-roadmap.d.ts.map +1 -0
- package/{dist/types → types}/konce-pt-angular.d.ts +69 -3
- package/types/konce-pt-angular.d.ts.map +1 -0
- package/dist/LICENSE +0 -21
- package/dist/README.md +0 -316
- package/dist/fesm2022/konce-pt-angular-charts.mjs +0 -957
- package/dist/fesm2022/konce-pt-angular-charts.mjs.map +0 -1
- package/dist/fesm2022/konce-pt-angular-grid.mjs +0 -218
- package/dist/fesm2022/konce-pt-angular.mjs +0 -8462
- package/dist/fesm2022/konce-pt-angular.mjs.map +0 -1
- package/dist/package.json +0 -79
- package/dist/src/lib/input-number/llms.txt +0 -17
- package/dist/src/lib/tooltip/llms.txt +0 -19
- /package/{dist/charts → charts}/src/lib/llms.txt +0 -0
- /package/{dist/fesm2022 → fesm2022}/konce-pt-angular-icons.mjs +0 -0
- /package/{dist/fesm2022 → fesm2022}/konce-pt-angular-icons.mjs.map +0 -0
- /package/{dist/grid → grid}/src/lib/llms.txt +0 -0
- /package/{dist/src → src}/lib/accordion/llms.txt +0 -0
- /package/{dist/src → src}/lib/alert/llms.txt +0 -0
- /package/{dist/src → src}/lib/app-shell/llms.txt +0 -0
- /package/{dist/src → src}/lib/autocomplete/llms.txt +0 -0
- /package/{dist/src → src}/lib/avatar/llms.txt +0 -0
- /package/{dist/src → src}/lib/avatar-group/llms.txt +0 -0
- /package/{dist/src → src}/lib/badge/llms.txt +0 -0
- /package/{dist/src → src}/lib/bottom-sheet/llms.txt +0 -0
- /package/{dist/src → src}/lib/breadcrumb/llms.txt +0 -0
- /package/{dist/src → src}/lib/button/llms.txt +0 -0
- /package/{dist/src → src}/lib/button-group/llms.txt +0 -0
- /package/{dist/src → src}/lib/card/llms.txt +0 -0
- /package/{dist/src → src}/lib/carousel/llms.txt +0 -0
- /package/{dist/src → src}/lib/checkbox/llms.txt +0 -0
- /package/{dist/src → src}/lib/chip/llms.txt +0 -0
- /package/{dist/src → src}/lib/chips-input/llms.txt +0 -0
- /package/{dist/src → src}/lib/color-picker/llms.txt +0 -0
- /package/{dist/src → src}/lib/confirm/llms.txt +0 -0
- /package/{dist/src → src}/lib/context-menu/llms.txt +0 -0
- /package/{dist/src → src}/lib/data-table/llms.txt +0 -0
- /package/{dist/src → src}/lib/data-view/llms.txt +0 -0
- /package/{dist/src → src}/lib/date-range/llms.txt +0 -0
- /package/{dist/src → src}/lib/datepicker/llms.txt +0 -0
- /package/{dist/src → src}/lib/dialog/llms.txt +0 -0
- /package/{dist/src → src}/lib/divider/llms.txt +0 -0
- /package/{dist/src → src}/lib/drawer/llms.txt +0 -0
- /package/{dist/src → src}/lib/empty/llms.txt +0 -0
- /package/{dist/src → src}/lib/fab/llms.txt +0 -0
- /package/{dist/src → src}/lib/fieldset/llms.txt +0 -0
- /package/{dist/src → src}/lib/file-upload/llms.txt +0 -0
- /package/{dist/src → src}/lib/galleria/llms.txt +0 -0
- /package/{dist/src → src}/lib/i18n/llms.txt +0 -0
- /package/{dist/src → src}/lib/icon/llms.txt +0 -0
- /package/{dist/src → src}/lib/icon-button/llms.txt +0 -0
- /package/{dist/src → src}/lib/image/llms.txt +0 -0
- /package/{dist/src → src}/lib/input-mask/llms.txt +0 -0
- /package/{dist/src → src}/lib/input-otp/llms.txt +0 -0
- /package/{dist/src → src}/lib/knob/llms.txt +0 -0
- /package/{dist/src → src}/lib/listbox/llms.txt +0 -0
- /package/{dist/src → src}/lib/megamenu/llms.txt +0 -0
- /package/{dist/src → src}/lib/menu/llms.txt +0 -0
- /package/{dist/src → src}/lib/menubar/llms.txt +0 -0
- /package/{dist/src → src}/lib/meter-group/llms.txt +0 -0
- /package/{dist/src → src}/lib/order-list/llms.txt +0 -0
- /package/{dist/src → src}/lib/paginator/llms.txt +0 -0
- /package/{dist/src → src}/lib/panel/llms.txt +0 -0
- /package/{dist/src → src}/lib/password/llms.txt +0 -0
- /package/{dist/src → src}/lib/pick-list/llms.txt +0 -0
- /package/{dist/src → src}/lib/popover/llms.txt +0 -0
- /package/{dist/src → src}/lib/progress/llms.txt +0 -0
- /package/{dist/src → src}/lib/radio-group/llms.txt +0 -0
- /package/{dist/src → src}/lib/rating/llms.txt +0 -0
- /package/{dist/src → src}/lib/rich-text/llms.txt +0 -0
- /package/{dist/src → src}/lib/scroll-top/llms.txt +0 -0
- /package/{dist/src → src}/lib/select/llms.txt +0 -0
- /package/{dist/src → src}/lib/sidenav/llms.txt +0 -0
- /package/{dist/src → src}/lib/skeleton/llms.txt +0 -0
- /package/{dist/src → src}/lib/slider/llms.txt +0 -0
- /package/{dist/src → src}/lib/speed-dial/llms.txt +0 -0
- /package/{dist/src → src}/lib/spinner/llms.txt +0 -0
- /package/{dist/src → src}/lib/split-button/llms.txt +0 -0
- /package/{dist/src → src}/lib/splitter/llms.txt +0 -0
- /package/{dist/src → src}/lib/stepper/llms.txt +0 -0
- /package/{dist/src → src}/lib/switch/llms.txt +0 -0
- /package/{dist/src → src}/lib/switch-group/llms.txt +0 -0
- /package/{dist/src → src}/lib/tabs/llms.txt +0 -0
- /package/{dist/src → src}/lib/textarea/llms.txt +0 -0
- /package/{dist/src → src}/lib/timeline/llms.txt +0 -0
- /package/{dist/src → src}/lib/toast/llms.txt +0 -0
- /package/{dist/src → src}/lib/toolbar/llms.txt +0 -0
- /package/{dist/src → src}/lib/tree/llms.txt +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# @konce-pt/angular
|
|
2
|
+
|
|
3
|
+
## 0.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Nowy komponent `KptRoadmap` (`kpt-roadmap`) w subpathu `@konce-pt/angular/roadmap` — zadania na
|
|
8
|
+
poziomej osi czasu w widoku typu Gantt. Przyklejona kolumna etykiet i nagłówek osi, przewijanie
|
|
9
|
+
w obu osiach, opcjonalna stała wysokość. Zoom: rok / kwartał / miesiąc / tydzień / dzień / godzina,
|
|
10
|
+
z oknem godzin roboczych. Numeracja tygodni wg ISO 8601 wraz z realnym zakresem dat; zmiana roku
|
|
11
|
+
oznaczona mocniejszą linią i czarnym znacznikiem. Kolumny zachowują równą szerokość mimo zmiany
|
|
12
|
+
czasu i różnej długości miesięcy. Grupy zwijane z paskiem zbiorczym, kamienie milowe, zależności
|
|
13
|
+
FS/SS/FF/SF z wykrywaniem naruszeń, wirtualizacja wierszy. Rdzeń obliczeń jako pure TS — subpath
|
|
14
|
+
eksportuje `buildTimeline`, `buildRows`, `resolveLinks`, `autoRange` i pomocniki kalendarza ISO.
|
|
15
|
+
Nowe klucze i18n `roadmap.*` (EN + PL).
|
|
16
|
+
- `KptTooltip`: nowe wejście `kptTooltipOnlyWhenTruncated` — dymek pojawia się wyłącznie wtedy, gdy
|
|
17
|
+
treść nie mieści się w elemencie i jest ucięta wielokropkiem. Przepełnienie sprawdzane jest przy
|
|
18
|
+
najechaniu (nie przy renderze), więc wynik pozostaje aktualny po zmianie szerokości czy powiększenia
|
|
19
|
+
bez użycia `ResizeObserver`. Pomiar obejmuje hosta i jego bezpośrednie dzieci, bo `text-overflow`
|
|
20
|
+
zwykle siedzi na wewnętrznym elemencie.
|
|
21
|
+
- `KptTooltip`: dymek podąża za hostem przy przewijaniu zagnieżdżonych kontenerów — wcześniej
|
|
22
|
+
zostawał w miejscu, gdy host przesuwał się we własnym obszarze przewijania.
|
|
23
|
+
|
|
24
|
+
## 0.6.1
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Wydanie porządkowe — wyrównanie wersji paczek. Bez zmian w API.
|
|
29
|
+
|
|
30
|
+
## 0.6.0
|
|
31
|
+
|
|
32
|
+
### Minor Changes
|
|
33
|
+
|
|
34
|
+
- Nowy entry point `@konce-pt/angular/grid` z dyrektywami `[kptGrid]`, `[kptCol]` i `[kptFlex]`
|
|
35
|
+
(sygnałowe inputy, zoneless) oraz skrótem `KPT_GRID_IMPORTS`. Ustawiają custom properties
|
|
36
|
+
inline, więc zmiana rozpiętości nie dodaje ani nie usuwa klas w DOM. Wymaga arkusza
|
|
37
|
+
`@konce-pt/grid`.
|
|
38
|
+
- `llms.txt` podpaczek `charts` i `grid` trafiają teraz do `dist` (wcześniej pomijane).
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Updated dependencies
|
|
43
|
+
- @konce-pt/tokens@0.6.0
|
|
44
|
+
|
|
45
|
+
## 0.1.2
|
|
46
|
+
|
|
47
|
+
### Patch Changes
|
|
48
|
+
|
|
49
|
+
- Naprawa dokumentacji ładowania stylów: metodą główną dla Angular CLI jest `angular.json → styles[]`
|
|
50
|
+
(import '...css' w main.ts zostaje jako wariant dla Vite/webpack). Tokeny SCSS dostają mixiny
|
|
51
|
+
`kpt-root-tokens`/`kpt-dark-tokens` emitujące custom properties w runtime. Wejścia CSS dostają
|
|
52
|
+
warunek `types` + stub `.d.ts` (usuwa TS2882 w projektach z tsc). Bez zmian w API komponentów.
|
|
53
|
+
|
|
54
|
+
## 0.1.1
|
|
55
|
+
|
|
56
|
+
### Patch Changes
|
|
57
|
+
|
|
58
|
+
- Dodano profesjonalne README (EN/PL) i plik LICENSE do każdej paczki oraz metadane npm
|
|
59
|
+
(repository/homepage/bugs/keywords). Bez zmian w API komponentów.
|
|
60
|
+
|
|
61
|
+
## 0.1.0
|
|
62
|
+
|
|
63
|
+
### Minor Changes
|
|
64
|
+
|
|
65
|
+
- eecb506: Pierwsze wydanie Koncept UI: design tokeny (OKLCH, motyw jasny/ciemny), bazowy CSS,
|
|
66
|
+
oraz komponenty Angular 22 — layout (app-shell/toolbar/sidenav/card/divider), formularze
|
|
67
|
+
na Signal Forms (input/select/checkbox/radio/switch/datepicker/form-field), flagowa tabela
|
|
68
|
+
danych (kpt-data-table) z paginatorem, oraz feedback (alert/dialog/toast/tooltip).
|
package/README.md
CHANGED
|
@@ -93,40 +93,59 @@ import '@angular/cdk/overlay-prebuilt.css';
|
|
|
93
93
|
|
|
94
94
|
## Quick start
|
|
95
95
|
|
|
96
|
-
A form powered by **Signal Forms** — no `ControlValueAccessor`, no `FormsModule`:
|
|
96
|
+
A login form powered by **Signal Forms** — no `ControlValueAccessor`, no `FormsModule`:
|
|
97
97
|
|
|
98
98
|
```ts
|
|
99
|
-
import { Component, signal } from '@angular/core';
|
|
100
|
-
import {
|
|
101
|
-
import { KptFormField, KptInput
|
|
99
|
+
import { Component, computed, signal } from '@angular/core';
|
|
100
|
+
import { FormField, FormRoot, email, form, required, submit } from '@angular/forms/signals';
|
|
101
|
+
import { KptButton, KptFormField, KptInput } from '@konce-pt/angular';
|
|
102
102
|
|
|
103
103
|
@Component({
|
|
104
104
|
selector: 'app-login',
|
|
105
|
-
imports: [FormField, KptFormField, KptInput,
|
|
105
|
+
imports: [FormRoot, FormField, KptFormField, KptInput, KptButton],
|
|
106
106
|
template: `
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
107
|
+
<!-- formRoot sets novalidate, intercepts submit and calls submit() for you -->
|
|
108
|
+
<form [formRoot]="loginForm" (submit)="onSubmit()">
|
|
109
|
+
<kpt-form-field label="E-mail" [error]="emailError()" required controlId="f-email">
|
|
110
|
+
<kpt-input [formField]="loginForm.email" type="email" id="f-email" />
|
|
111
|
+
</kpt-form-field>
|
|
112
|
+
|
|
113
|
+
<kpt-form-field label="Password" [error]="passwordError()" required controlId="f-pass">
|
|
114
|
+
<kpt-input [formField]="loginForm.password" type="password" id="f-pass" />
|
|
115
|
+
</kpt-form-field>
|
|
116
|
+
|
|
117
|
+
<kpt-button type="submit" [disabled]="formInvalid()">Sign in</kpt-button>
|
|
118
|
+
</form>
|
|
116
119
|
`,
|
|
117
120
|
})
|
|
118
121
|
export class Login {
|
|
119
|
-
readonly model = signal({ email: '',
|
|
122
|
+
readonly model = signal({ email: '', password: '' });
|
|
120
123
|
readonly loginForm = form(this.model, (p) => {
|
|
121
|
-
required(p.email
|
|
122
|
-
|
|
124
|
+
required(p.email, { message: 'E-mail is required' });
|
|
125
|
+
email(p.email, { message: 'Enter a valid e-mail address' });
|
|
126
|
+
required(p.password, { message: 'Password is required' });
|
|
123
127
|
});
|
|
124
|
-
readonly roles = [{ label: 'Admin', value: 'admin' }, { label: 'Editor', value: 'editor' }];
|
|
125
128
|
|
|
126
|
-
|
|
129
|
+
// Validators stay pure — only the *message* waits for the field to be touched.
|
|
130
|
+
private errorFor(name: 'email' | 'password'): string | null {
|
|
131
|
+
const s = this.loginForm[name]();
|
|
132
|
+
return s.touched() && s.invalid() ? s.errors()[0]?.message ?? null : null;
|
|
133
|
+
}
|
|
134
|
+
readonly emailError = computed(() => this.errorFor('email'));
|
|
135
|
+
readonly passwordError = computed(() => this.errorFor('password'));
|
|
136
|
+
readonly formInvalid = computed(() => this.loginForm().invalid());
|
|
137
|
+
|
|
138
|
+
async onSubmit(): Promise<void> {
|
|
139
|
+
// submit() marks the whole tree as touched before running the action
|
|
140
|
+
await submit(this.loginForm, { action: async () => { console.log(this.model()); } });
|
|
141
|
+
}
|
|
127
142
|
}
|
|
128
143
|
```
|
|
129
144
|
|
|
145
|
+
> Don't gate validators on UI state (`when: ({ state }) => state.touched()`) — it makes
|
|
146
|
+
> `loginForm().valid()` return `true` on an untouched form. Koncept UI controls already show
|
|
147
|
+
> the invalid state only once a field is touched.
|
|
148
|
+
|
|
130
149
|
Data table with sorting, filtering, pagination and a custom cell template:
|
|
131
150
|
|
|
132
151
|
```html
|