@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.
Files changed (111) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +38 -19
  3. package/fesm2022/konce-pt-angular-charts.mjs +1409 -0
  4. package/fesm2022/konce-pt-angular-charts.mjs.map +1 -0
  5. package/fesm2022/konce-pt-angular-grid.mjs +232 -0
  6. package/{dist/fesm2022 → fesm2022}/konce-pt-angular-grid.mjs.map +1 -1
  7. package/fesm2022/konce-pt-angular-roadmap.mjs +1919 -0
  8. package/fesm2022/konce-pt-angular-roadmap.mjs.map +1 -0
  9. package/fesm2022/konce-pt-angular.mjs +11869 -0
  10. package/fesm2022/konce-pt-angular.mjs.map +1 -0
  11. package/package.json +28 -51
  12. package/roadmap/src/lib/llms.txt +112 -0
  13. package/{dist/src → src}/lib/form-field/llms.txt +5 -0
  14. package/{dist/src → src}/lib/input/llms.txt +13 -3
  15. package/src/lib/input-number/llms.txt +61 -0
  16. package/src/lib/tooltip/llms.txt +33 -0
  17. package/{dist/types → types}/konce-pt-angular-charts.d.ts +1 -0
  18. package/types/konce-pt-angular-charts.d.ts.map +1 -0
  19. package/{dist/types → types}/konce-pt-angular-grid.d.ts +1 -0
  20. package/types/konce-pt-angular-grid.d.ts.map +1 -0
  21. package/{dist/types → types}/konce-pt-angular-icons.d.ts +1 -0
  22. package/types/konce-pt-angular-icons.d.ts.map +1 -0
  23. package/types/konce-pt-angular-roadmap.d.ts +649 -0
  24. package/types/konce-pt-angular-roadmap.d.ts.map +1 -0
  25. package/{dist/types → types}/konce-pt-angular.d.ts +69 -3
  26. package/types/konce-pt-angular.d.ts.map +1 -0
  27. package/dist/LICENSE +0 -21
  28. package/dist/README.md +0 -316
  29. package/dist/fesm2022/konce-pt-angular-charts.mjs +0 -957
  30. package/dist/fesm2022/konce-pt-angular-charts.mjs.map +0 -1
  31. package/dist/fesm2022/konce-pt-angular-grid.mjs +0 -218
  32. package/dist/fesm2022/konce-pt-angular.mjs +0 -8462
  33. package/dist/fesm2022/konce-pt-angular.mjs.map +0 -1
  34. package/dist/package.json +0 -79
  35. package/dist/src/lib/input-number/llms.txt +0 -17
  36. package/dist/src/lib/tooltip/llms.txt +0 -19
  37. /package/{dist/charts → charts}/src/lib/llms.txt +0 -0
  38. /package/{dist/fesm2022 → fesm2022}/konce-pt-angular-icons.mjs +0 -0
  39. /package/{dist/fesm2022 → fesm2022}/konce-pt-angular-icons.mjs.map +0 -0
  40. /package/{dist/grid → grid}/src/lib/llms.txt +0 -0
  41. /package/{dist/src → src}/lib/accordion/llms.txt +0 -0
  42. /package/{dist/src → src}/lib/alert/llms.txt +0 -0
  43. /package/{dist/src → src}/lib/app-shell/llms.txt +0 -0
  44. /package/{dist/src → src}/lib/autocomplete/llms.txt +0 -0
  45. /package/{dist/src → src}/lib/avatar/llms.txt +0 -0
  46. /package/{dist/src → src}/lib/avatar-group/llms.txt +0 -0
  47. /package/{dist/src → src}/lib/badge/llms.txt +0 -0
  48. /package/{dist/src → src}/lib/bottom-sheet/llms.txt +0 -0
  49. /package/{dist/src → src}/lib/breadcrumb/llms.txt +0 -0
  50. /package/{dist/src → src}/lib/button/llms.txt +0 -0
  51. /package/{dist/src → src}/lib/button-group/llms.txt +0 -0
  52. /package/{dist/src → src}/lib/card/llms.txt +0 -0
  53. /package/{dist/src → src}/lib/carousel/llms.txt +0 -0
  54. /package/{dist/src → src}/lib/checkbox/llms.txt +0 -0
  55. /package/{dist/src → src}/lib/chip/llms.txt +0 -0
  56. /package/{dist/src → src}/lib/chips-input/llms.txt +0 -0
  57. /package/{dist/src → src}/lib/color-picker/llms.txt +0 -0
  58. /package/{dist/src → src}/lib/confirm/llms.txt +0 -0
  59. /package/{dist/src → src}/lib/context-menu/llms.txt +0 -0
  60. /package/{dist/src → src}/lib/data-table/llms.txt +0 -0
  61. /package/{dist/src → src}/lib/data-view/llms.txt +0 -0
  62. /package/{dist/src → src}/lib/date-range/llms.txt +0 -0
  63. /package/{dist/src → src}/lib/datepicker/llms.txt +0 -0
  64. /package/{dist/src → src}/lib/dialog/llms.txt +0 -0
  65. /package/{dist/src → src}/lib/divider/llms.txt +0 -0
  66. /package/{dist/src → src}/lib/drawer/llms.txt +0 -0
  67. /package/{dist/src → src}/lib/empty/llms.txt +0 -0
  68. /package/{dist/src → src}/lib/fab/llms.txt +0 -0
  69. /package/{dist/src → src}/lib/fieldset/llms.txt +0 -0
  70. /package/{dist/src → src}/lib/file-upload/llms.txt +0 -0
  71. /package/{dist/src → src}/lib/galleria/llms.txt +0 -0
  72. /package/{dist/src → src}/lib/i18n/llms.txt +0 -0
  73. /package/{dist/src → src}/lib/icon/llms.txt +0 -0
  74. /package/{dist/src → src}/lib/icon-button/llms.txt +0 -0
  75. /package/{dist/src → src}/lib/image/llms.txt +0 -0
  76. /package/{dist/src → src}/lib/input-mask/llms.txt +0 -0
  77. /package/{dist/src → src}/lib/input-otp/llms.txt +0 -0
  78. /package/{dist/src → src}/lib/knob/llms.txt +0 -0
  79. /package/{dist/src → src}/lib/listbox/llms.txt +0 -0
  80. /package/{dist/src → src}/lib/megamenu/llms.txt +0 -0
  81. /package/{dist/src → src}/lib/menu/llms.txt +0 -0
  82. /package/{dist/src → src}/lib/menubar/llms.txt +0 -0
  83. /package/{dist/src → src}/lib/meter-group/llms.txt +0 -0
  84. /package/{dist/src → src}/lib/order-list/llms.txt +0 -0
  85. /package/{dist/src → src}/lib/paginator/llms.txt +0 -0
  86. /package/{dist/src → src}/lib/panel/llms.txt +0 -0
  87. /package/{dist/src → src}/lib/password/llms.txt +0 -0
  88. /package/{dist/src → src}/lib/pick-list/llms.txt +0 -0
  89. /package/{dist/src → src}/lib/popover/llms.txt +0 -0
  90. /package/{dist/src → src}/lib/progress/llms.txt +0 -0
  91. /package/{dist/src → src}/lib/radio-group/llms.txt +0 -0
  92. /package/{dist/src → src}/lib/rating/llms.txt +0 -0
  93. /package/{dist/src → src}/lib/rich-text/llms.txt +0 -0
  94. /package/{dist/src → src}/lib/scroll-top/llms.txt +0 -0
  95. /package/{dist/src → src}/lib/select/llms.txt +0 -0
  96. /package/{dist/src → src}/lib/sidenav/llms.txt +0 -0
  97. /package/{dist/src → src}/lib/skeleton/llms.txt +0 -0
  98. /package/{dist/src → src}/lib/slider/llms.txt +0 -0
  99. /package/{dist/src → src}/lib/speed-dial/llms.txt +0 -0
  100. /package/{dist/src → src}/lib/spinner/llms.txt +0 -0
  101. /package/{dist/src → src}/lib/split-button/llms.txt +0 -0
  102. /package/{dist/src → src}/lib/splitter/llms.txt +0 -0
  103. /package/{dist/src → src}/lib/stepper/llms.txt +0 -0
  104. /package/{dist/src → src}/lib/switch/llms.txt +0 -0
  105. /package/{dist/src → src}/lib/switch-group/llms.txt +0 -0
  106. /package/{dist/src → src}/lib/tabs/llms.txt +0 -0
  107. /package/{dist/src → src}/lib/textarea/llms.txt +0 -0
  108. /package/{dist/src → src}/lib/timeline/llms.txt +0 -0
  109. /package/{dist/src → src}/lib/toast/llms.txt +0 -0
  110. /package/{dist/src → src}/lib/toolbar/llms.txt +0 -0
  111. /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 { form, required, email, FormField } from '@angular/forms/signals';
101
- import { KptFormField, KptInput, KptSelect, KptButton } from '@konce-pt/angular';
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, KptSelect, KptButton],
105
+ imports: [FormRoot, FormField, KptFormField, KptInput, KptButton],
106
106
  template: `
107
- <kpt-form-field label="E-mail" required>
108
- <kpt-input [formField]="loginForm.email" type="email" placeholder="you@company.com" />
109
- </kpt-form-field>
110
-
111
- <kpt-form-field label="Role">
112
- <kpt-select [formField]="loginForm.role" [options]="roles" placeholder="Pick a role…" />
113
- </kpt-form-field>
114
-
115
- <kpt-button (click)="submit()">Sign in</kpt-button>
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: '', role: null as string | null });
122
+ readonly model = signal({ email: '', password: '' });
120
123
  readonly loginForm = form(this.model, (p) => {
121
- required(p.email); email(p.email);
122
- required(p.role);
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
- submit() { if (this.loginForm().valid()) console.log(this.model()); }
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