@public-ui/kolibri-cli 4.0.0-alpha.9 → 4.0.0-beta.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 CHANGED
@@ -27,6 +27,14 @@ yarn add -g @public-ui/kolibri-cli
27
27
 
28
28
  > **Important:** Install exactly the CLI version you want to upgrade to. The migration tool compares your locally installed `@public-ui/components` version with the CLI version to decide which migration tasks must run and in which order.
29
29
 
30
+ ## Quickstart (Happy Path)
31
+
32
+ 1. Install the CLI version that matches your target `@public-ui/components` release (see above).
33
+ 2. Run the migration in your project root: `kolibri migrate .`.
34
+ 3. Review the changes: `git status` and `git diff`.
35
+ 4. Format updated files: `pnpm format`.
36
+ 5. Commit the result and continue development.
37
+
30
38
  ## Usage
31
39
 
32
40
  The `KoliBri` CLI is intended to be executed in your project root directory. Use the `kolibri` command to start the CLI.
@@ -71,27 +79,92 @@ With the `migrate` command you can migrate your project to the latest version of
71
79
 
72
80
  > **Hint:** The migration tool currently supports React projects (JSX/TSX), Vue single-file components, and HTML/XHTML template-based projects such as Angular applications or vanilla custom elements. Support for additional project types is planned.
73
81
 
74
- Actually the following migration tasks from version 1 to version 2 are available:
75
-
76
- - Component renaming
77
- - Component removal (no one yet)
78
- - Property renaming
79
- - Property removal ✓
80
- - Slots renaming (`content`)
81
- - Slots removal (`footer`, `header`) ✓
82
- - Logic refactoring (no one yet)
83
- - Expert-Slot refactoring
84
- - Move `innerText` to property ✓
85
- - Property type change (remove `_label={false}`)
86
- - Set `_label=""` to activate the expert slot ([#5396](https://github.com/public-ui/kolibri/issues/5396)) ✓
87
- - `.vscode/settings.json` add IntelliSense for HTML
88
- - `.gitignore` exclude `.kolibri.migrate.json`
89
- - `.tsconfig` add `@public-ui/components` to `types` array
90
- - Format modified files (`prettier@^3`)
91
- - Copy and integrate new assets ✓
92
- - Handles `_icon-align` with a refactoring tasks ([#5397](https://github.com/public-ui/kolibri/issues/5397))
93
- - Detection of `_iconOnly` in TSX is not stable ([#5404](https://github.com/public-ui/kolibri/issues/5404)) ⏰
94
- - Handle the remove `@public-ui/core` package ([#???](https://github.com/public-ui/kolibri/issues/????))
82
+ The migration runner registers tasks in the following order and executes only those whose semantic version ranges match your
83
+ project: common tasks (`*`), v1 tasks (`^1`), v2 tasks (`^2` / `>=2.1.7 <3`), v3 tasks (`>=2 <4`), v4 tasks (`^4`) and
84
+ asset-related tasks (`^1`). All tasks are enabled by default. If you need to disable a noisy task or explicitly re-enable a
85
+ previously deactivated one for better migratability, set the corresponding flag in `.kolibri.config.json` under
86
+ `migrate.tasks` to `false` or `true`.
87
+
88
+ #### Migration tasks and version ranges
89
+
90
+ - **Common tasks (`*`)**
91
+ - Add `.kolibri.migrate.json` to `.gitignore`.
92
+ - Add `save-exact=true` to `.npmrc`.
93
+ - Configure `html.customData` in `.vscode/settings.json` to point to `@public-ui/components/vscode-custom-data.json`.
94
+ - **Version 1 tasks (`^1`, unless noted)**
95
+ - `kol-abbr`: rename `_align` `_tooltip-align`; rename `_title` → `_label`.
96
+ - `kol-accordion`: rename `_heading` → `_label`; mark removed slot `header`; rename slot `content` to the default slot.
97
+ - `kol-alert`: rename `_heading` `_label`.
98
+ - `kol-badge`: remove `_icon-only`; rename `_icon-only` → `_hide-label`; remove `_hide-label`; rename `_icon` → `_icons`.
99
+ - `kol-breadcrumb`: rename `_aria-label` `_label`.
100
+ - `kol-button`: remove `_aria-current`; remove `_aria-label`; rename `_icon-only` `_hide-label`; rename `_icon` `_icons`;
101
+ refactor `_icon-align` into `_icons` (**`^2`**).
102
+ - `kol-button-link`: remove `_aria-current`; remove `_aria-label`; rename `_icon-only` `_hide-label`; rename `_icon` →
103
+ `_icons`.
104
+ - `kol-card`: rename `_heading` → `_label`; rename `_headline` → `_label`; mark removed slots `footer` and `header`; rename
105
+ slot `content` to the default slot.
106
+ - `kol-details`: rename `_summary` → `_label`.
107
+ - `kol-icon`: rename `_aria-label` → `_label`; remove `_part`; rename `_icon` → `_icons`.
108
+ - `kol-input`: rename `_icon` → `_icons`.
109
+ - `kol-input-checkbox`: rename `_type` → `_variant`; rename `_icon` → `_icons`.
110
+ - `kol-input-color`: rename `_list` → `_suggestions`; rename `_icon` → `_icons`.
111
+ - `kol-input-date` / `kol-date`: rename `_list` → `_suggestions`; rename `_icon` → `_icons`.
112
+ - `kol-input-email`: rename `_list` → `_suggestions`; rename `_icon` → `_icons`; remove `_size`.
113
+ - `kol-input-file`: rename `_icon` → `_icons`.
114
+ - `kol-input-number`: rename `_list` → `_suggestions`; rename `_icon` → `_icons`; remove `_type`.
115
+ - `kol-input-password`: rename `_icon` → `_icons`; remove `_size`.
116
+ - `kol-input-radio`: rename `_list` → `_options`.
117
+ - `kol-input-range`: rename `_list` → `_suggestions`; rename `_icon` → `_icons`.
118
+ - `kol-input-text`: rename `_list` → `_suggestions`; rename `_icon` → `_icons`; remove `_size`.
119
+ - `kol-link`: remove `_aria-controls`, `_aria-expanded`, `_aria-label`, `_aria-selected`, `_disabled`, `_selector`, `_stealth`,
120
+ `_use-case`; rename `_aria-current` → `_listen-aria-current`; rename `_icon-only` → `_hide-label`; rename `_icon` → `_icons`;
121
+ refactor `_icon-align` (**`^2`**).
122
+ - `kol-link-button`: remove `_aria-controls`, `_aria-expanded`, `_aria-label`, `_aria-selected`, `_disabled`; rename
123
+ `_aria-current` → `_listen-aria-current`; rename `_icon-only` → `_hide-label`; rename `_icon` → `_icons`.
124
+ - `kol-link-group`: rename `_aria-label` → `_label`; rename `_heading` → `_label`; remove `_heading`; remove `_ordered`.
125
+ - `kol-logo`: rename `_abbr` → `_org`.
126
+ - `kol-modal`: rename `_aria-label` → `_label`.
127
+ - `kol-nav`: rename `_aria-label` → `_label`; rename `_compact` → `_hide-label`; remove `_variant`.
128
+ - `kol-pagination`: rename `_count` → `_total`; rename `_total` → `_max`.
129
+ - `kol-progress`: rename `_type` → `_variant`.
130
+ - `kol-quote`: rename `_caption` → `_label`.
131
+ - `kol-select`: rename `_height` → `_rows`; rename `_list` → `_options`; rename `_icon` → `_icons`; remove `_size`.
132
+ - `kol-skip-nav`: rename `_aria-label` → `_label`.
133
+ - `kol-span`: rename `_icon-only` → `_hide-label`; rename `_icon` → `_icons`.
134
+ - `kol-split-button`: remove `_aria-label`, `_access-key`, `_show-dropdown`; remove `_show`.
135
+ - `kol-symbol`: rename `_aria-label` → `_label`.
136
+ - `kol-table`: rename `_caption` → `_label`.
137
+ - `kol-tabs`: rename `_aria-label` → `_label`; rename `_tab-align` → `_align`; rename `_icon` → `_icons`; rename `_icon-only`
138
+ → `_hide-label`.
139
+ - `kol-toast`: remove `_show-duration`; rename `_heading` → `_label`.
140
+ - `kol-version`: rename `_version` → `_label`.
141
+ - Expert slot migrations: move `innerText` to `_label` for `kol-heading`, `kol-input-*`, `kol-link`, `kol-select`,
142
+ `kol-textarea` (**`^1`**).
143
+ - Slot removals: mark removed `kol-accordion` `header`, `kol-card` `footer`/`header` (**`^1`**).
144
+ - Slot renames: `kol-accordion` / `kol-card` slot `content` → default slot (**`^1`**).
145
+ - Refactor `_label={false}` to empty string (**`>=1.6 <=1.7`**).
146
+ - **Version 2 tasks**
147
+ - `kol-card`: remove `_has-footer` (**`^2`**).
148
+ - `kol-link-group`: remove `_level` (**`^2`**).
149
+ - `kol-table`: rename tag `kol-table` → `kol-table-stateful` (**`>=2.1.7 <3`**).
150
+ - **Version 3 tasks (`>=2 <4`)**
151
+ - `kol-abbr`: remove `_tooltip-align`.
152
+ - `kol-input-file`: remove `_value`.
153
+ - `kol-modal`: remove `_active-element`.
154
+ - `kol-textarea`: `_resize="both"` → `_resize="vertical"`; `_resize="horizontal"` → `_resize="none"`.
155
+ - `kol-toaster`: rename `alertVariant` → `variant`; rename `defaultAlertType` → `defaultVariant`.
156
+ - All inputs (`kol-combobox`, `kol-input-*`, `kol-select`, `kol-single-select`, `kol-textarea`): remove `_alert`; rename
157
+ `_hide-error` → `_hide-msg`; refactor `_error` → `_msg`.
158
+ - **Version 4 tasks (`^4`)**
159
+ - Remove `_id` from `kol-button`, `kol-button-link`, `kol-combobox`, `kol-input-*`, `kol-popover-button`, `kol-select`,
160
+ `kol-single-select`, `kol-split-button`, `kol-textarea`, `kol-tooltip`.
161
+ - Remove `_label` and `_variant` keys from `_msg` objects.
162
+ - `kol-toast`: remove `variant` from `enqueue()` calls.
163
+ - `kol-toaster`: remove `defaultVariant` option from `getInstance()` calls.
164
+ - **Asset tasks (`^1`)**
165
+ - Remove old `cpy-cli`/`rimraf` versions and reinstall pinned ones.
166
+ - Add `scripts.prepare` to copy component assets into the project and remove `public/assets/codicons` before copying.
167
+ - Inject the Codicon stylesheet link into `index.html` (or warn if the file is missing).
95
168
 
96
169
  #### Theme Migration
97
170
 
@@ -185,53 +258,124 @@ You can configure the migration with the `.kolibri.config.json` file in your pro
185
258
  "tasks": {
186
259
  ".gitignore-add-rule-.kolibri.migrate.json": true,
187
260
  ".npmrc-add-rule-save-exact=true": true,
188
- "vscode-settings-reconfigure-html.customData": true,
261
+ "add--cpy-cli,rimraf": true,
262
+ "exec-npx cpy \"node_modules/@public-ui/components/assets/**/*\" \"public/assets\" --dot": true,
263
+ "kol-abbr-remove-property-_tooltip-align": true,
189
264
  "kol-abbr-rename-property-_align-to-_tooltip-align": true,
190
265
  "kol-abbr-rename-property-_title-to-_label": true,
266
+ "kol-accordion-mark-removed-slot-header": true,
191
267
  "kol-accordion-rename-property-_heading-to-_label": true,
268
+ "kol-accordion-rename-slot-content-to-": true,
192
269
  "kol-alert-rename-property-_heading-to-_label": true,
193
- "kol-badge-rename-property-_icon-only-to-_hide-label": true,
194
270
  "kol-badge-remove-property-_hide-label": true,
195
271
  "kol-badge-remove-property-_icon-only": true,
272
+ "kol-badge-rename-property-_icon-only-to-_hide-label": true,
196
273
  "kol-badge-rename-property-_icon-to-_icons": true,
197
274
  "kol-breadcrumb-rename-property-_aria-label-to-_label": true,
275
+ "kol-button-link-remove-property-_access-key": true,
198
276
  "kol-button-link-remove-property-_aria-current": true,
199
277
  "kol-button-link-remove-property-_aria-label": true,
278
+ "kol-button-link-remove-property-_id": true,
279
+ "kol-button-link-rename-property-_aria-current-to-_listen-aria-current": true,
200
280
  "kol-button-link-rename-property-_icon-only-to-_hide-label": true,
201
281
  "kol-button-link-rename-property-_icon-to-_icons": true,
282
+ "kol-button-remove-property-_access-key": true,
202
283
  "kol-button-remove-property-_aria-current": true,
203
284
  "kol-button-remove-property-_aria-label": true,
204
285
  "kol-button-remove-property-_icon-align": true,
286
+ "kol-button-remove-property-_id": true,
205
287
  "kol-button-rename-property-_icon-only-to-_hide-label": true,
288
+ "refactor-property-icon-align": true,
206
289
  "kol-button-rename-property-_icon-to-_icons": true,
290
+ "kol-card-mark-removed-slot-footer": true,
291
+ "kol-card-mark-removed-slot-header": true,
292
+ "kol-card-remove-property-_has-footer": true,
207
293
  "kol-card-rename-property-_heading-to-_label": true,
208
294
  "kol-card-rename-property-_headline-to-_label": true,
295
+ "kol-card-rename-slot-content-to-": true,
296
+ "kol-checkbox-rename-property-_type-to-_variant": true,
297
+ "kol-color-rename-property-_icon-to-_icons": true,
298
+ "kol-color-rename-property-_list-to-_suggestions": true,
299
+ "kol-combobox-refactor-property-error-to-msg": true,
300
+ "kol-combobox-remove-property-_alert": true,
301
+ "kol-combobox-remove-property-_id": true,
302
+ "kol-combobox-rename-property-_hide-error-to-_hide-msg": true,
303
+ "kol-date-rename-property-_list-to-_suggestions": true,
209
304
  "kol-details-rename-property-_summary-to-_label": true,
305
+ "kol-heading-move-innerText-to-property-_label": true,
210
306
  "kol-icon-remove-property-_part": true,
211
307
  "kol-icon-rename-property-_aria-label-to-_label": true,
212
308
  "kol-icon-rename-property-_icon-to-_icons": true,
309
+ "kol-input-checkbox-move-innerText-to-property-_label": true,
310
+ "kol-input-checkbox-refactor-property-error-to-msg": true,
311
+ "kol-input-checkbox-remove-property-_alert": true,
312
+ "kol-input-checkbox-remove-property-_id": true,
313
+ "kol-input-checkbox-rename-property-_hide-error-to-_hide-msg": true,
213
314
  "kol-input-checkbox-rename-property-_icon-to-_icons": true,
214
- "kol-checkbox-rename-property-_type-to-_variant": true,
215
- "kol-color-rename-property-_icon-to-_icons": true,
216
- "kol-color-rename-property-_list-to-_suggestions": true,
315
+ "kol-input-checkbox-rename-property-_type-to-_variant": true,
316
+ "kol-input-color-move-innerText-to-property-_label": true,
317
+ "kol-input-color-refactor-property-error-to-msg": true,
318
+ "kol-input-color-remove-property-_alert": true,
319
+ "kol-input-color-remove-property-_id": true,
320
+ "kol-input-color-rename-property-_hide-error-to-_hide-msg": true,
321
+ "kol-input-date-move-innerText-to-property-_label": true,
322
+ "kol-input-date-refactor-property-error-to-msg": true,
323
+ "kol-input-date-remove-property-_alert": true,
324
+ "kol-input-date-remove-property-_id": true,
325
+ "kol-input-date-rename-property-_hide-error-to-_hide-msg": true,
217
326
  "kol-input-date-rename-property-_icon-to-_icons": true,
218
- "kol-date-rename-property-_list-to-_suggestions": true,
327
+ "kol-input-email-move-innerText-to-property-_label": true,
328
+ "kol-input-email-refactor-property-error-to-msg": true,
329
+ "kol-input-email-remove-property-_alert": true,
330
+ "kol-input-email-remove-property-_id": true,
331
+ "kol-input-email-remove-property-_size": true,
332
+ "kol-input-email-rename-property-_hide-error-to-_hide-msg": true,
219
333
  "kol-input-email-rename-property-_icon-to-_icons": true,
220
334
  "kol-input-email-rename-property-_list-to-_suggestions": true,
221
- "kol-input-email-remove-property-_size": true,
335
+ "kol-input-file-move-innerText-to-property-_label": true,
336
+ "kol-input-file-refactor-property-error-to-msg": true,
337
+ "kol-input-file-remove-property-_alert": true,
338
+ "kol-input-file-remove-property-_id": true,
339
+ "kol-input-file-remove-property-_value": true,
340
+ "kol-input-file-rename-property-_hide-error-to-_hide-msg": true,
222
341
  "kol-input-file-rename-property-_icon-to-_icons": true,
342
+ "kol-input-number-move-innerText-to-property-_label": true,
343
+ "kol-input-number-refactor-property-error-to-msg": true,
344
+ "kol-input-number-remove-property-_alert": true,
345
+ "kol-input-number-remove-property-_id": true,
346
+ "kol-input-number-remove-property-_type": true,
347
+ "kol-input-number-rename-property-_hide-error-to-_hide-msg": true,
223
348
  "kol-input-number-rename-property-_icon-to-_icons": true,
224
349
  "kol-input-number-rename-property-_list-to-_suggestions": true,
225
- "kol-input-number-remove-property-_type": true,
226
- "kol-input-password-rename-property-_icon-to-_icons": true,
350
+ "kol-input-password-move-innerText-to-property-_label": true,
351
+ "kol-input-password-refactor-property-error-to-msg": true,
352
+ "kol-input-password-remove-property-_alert": true,
353
+ "kol-input-password-remove-property-_id": true,
227
354
  "kol-input-password-remove-property-_size": true,
355
+ "kol-input-password-rename-property-_hide-error-to-_hide-msg": true,
356
+ "kol-input-password-rename-property-_icon-to-_icons": true,
357
+ "kol-input-radio-move-innerText-to-property-_label": true,
358
+ "kol-input-radio-refactor-property-error-to-msg": true,
359
+ "kol-input-radio-remove-property-_alert": true,
360
+ "kol-input-radio-remove-property-_id": true,
361
+ "kol-input-radio-rename-property-_hide-error-to-_hide-msg": true,
228
362
  "kol-input-radio-rename-property-_list-to-_options": true,
363
+ "kol-input-range-move-innerText-to-property-_label": true,
364
+ "kol-input-range-refactor-property-error-to-msg": true,
365
+ "kol-input-range-remove-property-_alert": true,
366
+ "kol-input-range-remove-property-_id": true,
367
+ "kol-input-range-rename-property-_hide-error-to-_hide-msg": true,
229
368
  "kol-input-range-rename-property-_icon-to-_icons": true,
230
369
  "kol-input-range-rename-property-_list-to-_suggestions": true,
231
370
  "kol-input-rename-property-_icon-to-_icons": true,
371
+ "kol-input-text-move-innerText-to-property-_label": true,
372
+ "kol-input-text-refactor-property-error-to-msg": true,
373
+ "kol-input-text-remove-property-_alert": true,
374
+ "kol-input-text-remove-property-_id": true,
375
+ "kol-input-text-remove-property-_size": true,
376
+ "kol-input-text-rename-property-_hide-error-to-_hide-msg": true,
232
377
  "kol-input-text-rename-property-_icon-to-_icons": true,
233
378
  "kol-input-text-rename-property-_list-to-_suggestions": true,
234
- "kol-input-text-remove-property-_size": true,
235
379
  "kol-link-button-remove-property-_aria-controls": true,
236
380
  "kol-link-button-remove-property-_aria-expanded": true,
237
381
  "kol-link-button-remove-property-_aria-label": true,
@@ -240,16 +384,17 @@ You can configure the migration with the `.kolibri.config.json` file in your pro
240
384
  "kol-link-button-rename-property-_aria-current-to-_listen-aria-current": true,
241
385
  "kol-link-button-rename-property-_icon-only-to-_hide-label": true,
242
386
  "kol-link-button-rename-property-_icon-to-_icons": true,
243
- "kol-link-group-rename-property-_heading-to-_label": true,
244
387
  "kol-link-group-remove-property-_heading": true,
388
+ "kol-link-group-remove-property-_level": true,
245
389
  "kol-link-group-remove-property-_ordered": true,
246
390
  "kol-link-group-rename-property-_aria-label-to-_label": true,
391
+ "kol-link-group-rename-property-_heading-to-_label": true,
392
+ "kol-link-move-innerText-to-property-_label": true,
247
393
  "kol-link-remove-property-_aria-controls": true,
248
394
  "kol-link-remove-property-_aria-expanded": true,
249
395
  "kol-link-remove-property-_aria-label": true,
250
396
  "kol-link-remove-property-_aria-selected": true,
251
397
  "kol-link-remove-property-_disabled": true,
252
- "kol-link-remove-property-_icon-align": true,
253
398
  "kol-link-remove-property-_selector": true,
254
399
  "kol-link-remove-property-_stealth": true,
255
400
  "kol-link-remove-property-_use-case": true,
@@ -257,69 +402,74 @@ You can configure the migration with the `.kolibri.config.json` file in your pro
257
402
  "kol-link-rename-property-_icon-only-to-_hide-label": true,
258
403
  "kol-link-rename-property-_icon-to-_icons": true,
259
404
  "kol-logo-rename-property-_abbr-to-_org": true,
405
+ "kol-modal-remove-property-_active-element": true,
260
406
  "kol-modal-rename-property-_aria-label-to-_label": true,
407
+ "kol-nav-remove-property-_has-compact-button": true,
261
408
  "kol-nav-remove-property-_variant": true,
262
409
  "kol-nav-rename-property-_aria-label-to-_label": true,
263
410
  "kol-nav-rename-property-_compact-to-_hide-label": true,
264
411
  "kol-pagination-rename-property-_count-to-_total": true,
265
412
  "kol-pagination-rename-property-_total-to-_max": true,
413
+ "kol-popover-button-remove-property-_id": true,
266
414
  "kol-progress-rename-property-_type-to-_variant": true,
267
415
  "kol-quote-rename-property-_caption-to-_label": true,
416
+ "kol-select-move-innerText-to-property-_label": true,
417
+ "kol-select-refactor-property-error-to-msg": true,
418
+ "kol-select-remove-property-_alert": true,
419
+ "kol-select-remove-property-_id": true,
420
+ "kol-select-remove-property-_size": true,
268
421
  "kol-select-rename-property-_height-to-_rows": true,
422
+ "kol-select-rename-property-_hide-error-to-_hide-msg": true,
269
423
  "kol-select-rename-property-_icon-to-_icons": true,
270
424
  "kol-select-rename-property-_list-to-_options": true,
271
- "kol-select-remove-property-_size": true,
425
+ "kol-single-select-refactor-property-error-to-msg": true,
426
+ "kol-single-select-remove-property-_alert": true,
427
+ "kol-single-select-remove-property-_id": true,
428
+ "kol-single-select-rename-property-_hide-error-to-_hide-msg": true,
272
429
  "kol-skip-nav-rename-property-_aria-label-to-_label": true,
273
430
  "kol-span-rename-property-_icon-only-to-_hide-label": true,
274
431
  "kol-span-rename-property-_icon-to-_icons": true,
275
- "kol-split-button-remove-property-_aria-label": true,
276
432
  "kol-split-button-remove-property-_access-key": true,
277
- "kol-split-button-remove-property-_show-dropdown": true,
433
+ "kol-split-button-remove-property-_aria-label": true,
434
+ "kol-split-button-remove-property-_id": true,
278
435
  "kol-split-button-remove-property-_show": true,
436
+ "kol-split-button-remove-property-_show-dropdown": true,
279
437
  "kol-symbol-rename-property-_aria-label-to-_label": true,
280
438
  "kol-table-rename-property-_caption-to-_label": true,
281
439
  "kol-tabs-rename-property-_aria-label-to-_label": true,
440
+ "kol-tabs-rename-property-_icon-only-to-_hide-label": true,
282
441
  "kol-tabs-rename-property-_icon-to-_icons": true,
283
442
  "kol-tabs-rename-property-_tab-align-to-_align": true,
284
- "kol-tabs-rename-property-_icon-only-to-_hide-label": true,
443
+ "kol-textarea-move-innerText-to-property-_label": true,
444
+ "kol-textarea-refactor-property-error-to-msg": true,
445
+ "kol-textarea-remove-property-_alert": true,
446
+ "kol-textarea-remove-property-_id": true,
447
+ "kol-textarea-rename-property-_hide-error-to-_hide-msg": true,
448
+ "kol-textarea-update-property-_resize-value-both-to-vertical": true,
449
+ "kol-textarea-update-property-_resize-value-horizontal-to-none": true,
285
450
  "kol-toast-remove-property-_show-duration": true,
286
451
  "kol-toast-rename-property-_heading-to-_label": true,
452
+ "kol-tooltip-remove-property-_id": true,
287
453
  "kol-version-rename-property-_version-to-_label": true,
288
- "kol-heading-move-innerText-to-property-_label": true,
289
- "kol-input-checkbox-move-innerText-to-property-_label": true,
290
- "kol-input-color-move-innerText-to-property-_label": true,
291
- "kol-input-date-move-innerText-to-property-_label": true,
292
- "kol-input-email-move-innerText-to-property-_label": true,
293
- "kol-input-file-move-innerText-to-property-_label": true,
294
- "kol-input-number-move-innerText-to-property-_label": true,
295
- "kol-input-password-move-innerText-to-property-_label": true,
296
- "kol-input-radio-move-innerText-to-property-_label": true,
297
- "kol-input-range-move-innerText-to-property-_label": true,
298
- "kol-input-text-move-innerText-to-property-_label": true,
299
- "kol-link-move-innerText-to-property-_label": true,
300
- "kol-select-move-innerText-to-property-_label": true,
301
- "kol-textarea-move-innerText-to-property-_label": true,
302
- "kol-accordion-mark-removed-slot-header": true,
303
- "kol-card-mark-removed-slot-footer": true,
304
- "kol-card-mark-removed-slot-header": true,
305
- "kol-accordion-rename-slot-content-to-": true,
306
- "kol-card-rename-slot-content-to-": true,
454
+ "merge-html-codicon-in-index.html": true,
455
+ "package.json-reconfigure-scripts.prepare": true,
456
+ "refactor-property-icon-align": true,
307
457
  "refactor-property-label-replace-false": true,
308
- "kol-card-remove-property-_has-footer": true,
309
- "kol-link-group-remove-property-_level": true,
310
458
  "remove--cpy-cli,rimraf": true,
311
- "add--cpy-cli,rimraf": true,
312
- "package.json-reconfigure-scripts.prepare": true,
459
+ "remove-msg-props": true,
313
460
  "remove-public/assets/codicons": true,
314
- "exec-npx cpy \"node_modules/@public-ui/components/assets/**/*\" \"undefined/assets\" --dot": true,
315
- "kol-button-link-remove-property-_access-key": true,
316
- "kol-button-remove-property-_access-key": true,
317
- "kol-nav-remove-property-_has-compact-button": true
461
+ "remove-toast-variant-^4": true,
462
+ "remove-toaster-get-instance-options-^4": true,
463
+ "rename-tag-name-kol-table-to-kol-table-stateful": true,
464
+ "toaster-rename-properties": true,
465
+ "vscode-settings-reconfigure-html.customData": true
318
466
  }
319
467
  }
320
468
  }
321
469
  ```
322
470
 
471
+ > The `exec-npx cpy` task copies the packaged component assets into your project's `public/assets` folder; leave it enabled unless your build already handles asset copying in a different location.
472
+
323
473
  ## Troubleshooting
324
474
 
325
475
  If the migration failed, you can reset the migration with `git reset --hard HEAD~1`.
@@ -55,14 +55,6 @@ class GenericUpdatePropertyValueTask extends abstract_task_1.AbstractTask {
55
55
  }
56
56
  }
57
57
  exports.GenericUpdatePropertyValueTask = GenericUpdatePropertyValueTask;
58
- // Helper function to update attribute values in HTML strings
59
- /**
60
- *
61
- * @param htmlString
62
- * @param tagRegExp
63
- * @param oldValue
64
- * @param newValue
65
- */
66
58
  function updateAttributeValue(htmlString, tagRegExp, oldValue, newValue) {
67
59
  return htmlString.replace(tagRegExp, (match) => {
68
60
  return match.replace(`="${oldValue}"`, `="${newValue}"`).replace(`='${oldValue}'`, `='${newValue}'`);
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RenameClearButtonPropTasks = exports.RenameClearButtonPropTask = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const types_1 = require("../../../../types");
9
+ const reuse_1 = require("../../../shares/reuse");
10
+ const abstract_task_1 = require("../../abstract-task");
11
+ class RenameClearButtonPropTask extends abstract_task_1.AbstractTask {
12
+ constructor(identifier, versionRange) {
13
+ super(identifier, 'Rename _hide-clear-button to _has-clear-button', types_1.MARKUP_EXTENSIONS, versionRange);
14
+ }
15
+ static getInstance(versionRange) {
16
+ const identifier = 'rename-clear-button-prop';
17
+ if (!this.instances.has(identifier)) {
18
+ this.instances.set(identifier, new RenameClearButtonPropTask(identifier, versionRange));
19
+ }
20
+ return this.instances.get(identifier);
21
+ }
22
+ run(baseDir) {
23
+ (0, reuse_1.filterFilesByExt)(baseDir, types_1.MARKUP_EXTENSIONS).forEach((file) => {
24
+ const content = fs_1.default.readFileSync(file, 'utf8');
25
+ const newContent = content
26
+ .replace(/_hide-clear-button\s*=\s*"(true|false)"/g, (_match, value) => {
27
+ return `_has-clear-button="${value === 'true' ? 'false' : 'true'}"`;
28
+ })
29
+ .replace(/_hide-clear-button\s*=\s*'(true|false)'/g, (_match, value) => {
30
+ return `_has-clear-button='${value === 'true' ? 'false' : 'true'}'`;
31
+ })
32
+ .replace(/_hide-clear-button\s*=\s*\{\s*(true|false)\s*\}/g, (_match, value) => {
33
+ return `_has-clear-button={${value === 'true' ? 'false' : 'true'}}`;
34
+ })
35
+ .replace(/_hideClearButton\s*=\s*"(true|false)"/g, (_match, value) => {
36
+ return `_hasClearButton="${value === 'true' ? 'false' : 'true'}"`;
37
+ })
38
+ .replace(/_hideClearButton\s*=\s*'(true|false)'/g, (_match, value) => {
39
+ return `_hasClearButton='${value === 'true' ? 'false' : 'true'}'`;
40
+ })
41
+ .replace(/_hideClearButton\s*=\s*\{\s*(true|false)\s*\}/g, (_match, value) => {
42
+ return `_hasClearButton={${value === 'true' ? 'false' : 'true'}}`;
43
+ })
44
+ .replace(/_hide-clear-button(?=[\s/>])/g, '_has-clear-button="false"')
45
+ .replace(/_hideClearButton(?=[\s/>])/g, '_hasClearButton={false}');
46
+ if (content !== newContent) {
47
+ fs_1.default.writeFileSync(file, newContent);
48
+ reuse_1.MODIFIED_FILES.add(file);
49
+ }
50
+ });
51
+ }
52
+ }
53
+ exports.RenameClearButtonPropTask = RenameClearButtonPropTask;
54
+ exports.RenameClearButtonPropTasks = [RenameClearButtonPropTask.getInstance('^4')];
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.v4Tasks = void 0;
4
+ const clear_button_1 = require("./clear-button");
4
5
  const id_1 = require("./id");
5
6
  const link_1 = require("./link");
6
7
  const loader_1 = require("./loader");
@@ -11,6 +12,7 @@ exports.v4Tasks = [];
11
12
  exports.v4Tasks.push(...link_1.MapVariantStandaloneToInlineTasks);
12
13
  exports.v4Tasks.push(...id_1.RemoveIdPropTasks);
13
14
  exports.v4Tasks.push(...msg_1.RemoveMsgPropsTasks);
15
+ exports.v4Tasks.push(...clear_button_1.RenameClearButtonPropTasks);
14
16
  exports.v4Tasks.push(toast_1.RemoveToastVariantTask.getInstance('^4'));
15
17
  exports.v4Tasks.push(toaster_1.RemoveToasterGetInstanceOptionsTask.getInstance('^4'));
16
18
  exports.v4Tasks.push(loader_1.UpdateLoaderImportPathTask.getInstance('^4'));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@public-ui/kolibri-cli",
3
- "version": "4.0.0-alpha.9",
3
+ "version": "4.0.0-beta.0",
4
4
  "license": "EUPL-1.2",
5
5
  "homepage": "https://public-ui.github.io",
6
6
  "repository": {
@@ -32,7 +32,7 @@
32
32
  "typed-bem": "1.0.2"
33
33
  },
34
34
  "devDependencies": {
35
- "@types/node": "24.10.1",
35
+ "@types/node": "24.10.4",
36
36
  "@typescript-eslint/eslint-plugin": "7.18.0",
37
37
  "@typescript-eslint/parser": "7.18.0",
38
38
  "cpy-cli": "6.0.0",
@@ -40,17 +40,16 @@
40
40
  "eslint": "8.57.1",
41
41
  "eslint-config-prettier": "9.1.2",
42
42
  "eslint-plugin-html": "8.1.3",
43
- "eslint-plugin-jsdoc": "50.8.0",
44
43
  "eslint-plugin-json": "3.1.0",
45
44
  "eslint-plugin-jsx-a11y": "6.10.2",
46
45
  "eslint-plugin-react": "7.37.5",
47
- "knip": "5.71.0",
46
+ "knip": "5.73.4",
48
47
  "mocha": "11.7.5",
49
48
  "nodemon": "3.1.11",
50
49
  "rimraf": "6.1.2",
51
50
  "ts-node": "10.9.2",
52
51
  "typescript": "5.9.3",
53
- "@public-ui/components": "4.0.0-alpha.9"
52
+ "@public-ui/components": "4.0.0-beta.0"
54
53
  },
55
54
  "files": [
56
55
  "dist"