@clr/angular 18.0.0-beta.3 → 18.0.0-beta.4

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 (48) hide show
  1. package/fesm2022/clr-angular-data-datagrid.mjs +8 -2
  2. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -1
  3. package/fesm2022/clr-angular-forms-combobox.mjs +332 -39
  4. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -1
  5. package/fesm2022/clr-angular-layout-nav.mjs +27 -25
  6. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -1
  7. package/fesm2022/clr-angular-modal.mjs +2 -3
  8. package/fesm2022/clr-angular-modal.mjs.map +1 -1
  9. package/fesm2022/clr-angular-utils.mjs +5 -0
  10. package/fesm2022/clr-angular-utils.mjs.map +1 -1
  11. package/fesm2022/clr-angular-wizard.mjs +427 -224
  12. package/fesm2022/clr-angular-wizard.mjs.map +1 -1
  13. package/package.json +7 -2
  14. package/schematics/collection.json +10 -0
  15. package/schematics/ng-update/index.d.ts +2 -0
  16. package/schematics/ng-update/index.js +66 -0
  17. package/schematics/ng-update/index.js.map +1 -0
  18. package/schematics/ng-update/migrations/css-migration.d.ts +5 -0
  19. package/schematics/ng-update/migrations/css-migration.js +167 -0
  20. package/schematics/ng-update/migrations/css-migration.js.map +1 -0
  21. package/schematics/ng-update/migrations/import-migration.d.ts +4 -0
  22. package/schematics/ng-update/migrations/import-migration.js +136 -0
  23. package/schematics/ng-update/migrations/import-migration.js.map +1 -0
  24. package/schematics/ng-update/migrations/template-migration.d.ts +5 -0
  25. package/schematics/ng-update/migrations/template-migration.js +175 -0
  26. package/schematics/ng-update/migrations/template-migration.js.map +1 -0
  27. package/schematics/ng-update/replacements/css-replacements.d.ts +17 -0
  28. package/schematics/ng-update/replacements/css-replacements.js +74 -0
  29. package/schematics/ng-update/replacements/css-replacements.js.map +1 -0
  30. package/schematics/ng-update/replacements/import-replacements.d.ts +13 -0
  31. package/schematics/ng-update/replacements/import-replacements.js +101 -0
  32. package/schematics/ng-update/replacements/import-replacements.js.map +1 -0
  33. package/schematics/ng-update/replacements/symbol-replacements.d.ts +12 -0
  34. package/schematics/ng-update/replacements/symbol-replacements.js +68 -0
  35. package/schematics/ng-update/replacements/symbol-replacements.js.map +1 -0
  36. package/schematics/ng-update/replacements/template-replacements.d.ts +14 -0
  37. package/schematics/ng-update/replacements/template-replacements.js +53 -0
  38. package/schematics/ng-update/replacements/template-replacements.js.map +1 -0
  39. package/schematics/ng-update/utils/file-visitor.d.ts +8 -0
  40. package/schematics/ng-update/utils/file-visitor.js +44 -0
  41. package/schematics/ng-update/utils/file-visitor.js.map +1 -0
  42. package/schematics/vitest.config.d.ts +2 -0
  43. package/schematics/vitest.config.js +17 -0
  44. package/schematics/vitest.config.js.map +1 -0
  45. package/types/clr-angular-forms-combobox.d.ts +55 -9
  46. package/types/clr-angular-layout-nav.d.ts +6 -2
  47. package/types/clr-angular-utils.d.ts +5 -0
  48. package/types/clr-angular-wizard.d.ts +89 -35
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CSS custom property renames and removals for v18 migration.
3
+ *
4
+ * Applied to .scss, .css, and inline template styles.
5
+ */
6
+ export interface CssReplacement {
7
+ readonly old: string;
8
+ readonly new: string;
9
+ }
10
+ export declare const CSS_PROPERTY_REPLACEMENTS: readonly CssReplacement[];
11
+ export declare const CSS_SELECTOR_REPLACEMENTS: readonly CssReplacement[];
12
+ export declare const CSS_ATTRIBUTE_REPLACEMENTS: readonly CssReplacement[];
13
+ /**
14
+ * SCSS/Sass mixin names that have been removed in v18.
15
+ * Any `@include <name>(...)` call will be commented out with a TODO note.
16
+ */
17
+ export declare const REMOVED_SCSS_MIXINS: readonly string[];
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.REMOVED_SCSS_MIXINS = exports.CSS_ATTRIBUTE_REPLACEMENTS = exports.CSS_SELECTOR_REPLACEMENTS = exports.CSS_PROPERTY_REPLACEMENTS = void 0;
10
+ exports.CSS_PROPERTY_REPLACEMENTS = [
11
+ // #2229 - Wizard stepnav CSS custom properties
12
+ {
13
+ old: '--clr-wizard-stepnav-text--active',
14
+ new: '--clr-wizard-stepnav-text-selected',
15
+ },
16
+ {
17
+ old: '--clr-wizard-stepnav-item-border-color--active',
18
+ new: '--clr-wizard-stepnav-item-complete-border-color',
19
+ },
20
+ {
21
+ old: '--clr-wizard-stepnav-active-bgcolor',
22
+ new: '--clr-wizard-stepnav-selected-bgcolor',
23
+ },
24
+ {
25
+ old: '--clr-wizard-stepnav-link-hover-bg-color',
26
+ new: '--clr-wizard-stepnav-hover-bgcolor',
27
+ },
28
+ {
29
+ old: '--clr-wizard-stepnav-link-active-bg-color',
30
+ new: '--clr-wizard-stepnav-active-bgcolor',
31
+ },
32
+ // #2230 - Accordion/Collapsible panel deprecated properties
33
+ {
34
+ old: '--clr-accordion-active-background-color',
35
+ new: '--clr-accordion-header-open-background-color',
36
+ },
37
+ {
38
+ old: '--clr-collapsible-panel-active-background-color',
39
+ new: '--clr-collapsible-panel-header-open-background-color',
40
+ },
41
+ // #2229 - Wizard additional rename from beta.1 release
42
+ {
43
+ old: '--clr-wizard-step-title-min-width',
44
+ new: '',
45
+ },
46
+ // #2207 - Accordion step title min width removed
47
+ {
48
+ old: '--clr-accordion-step-title-min-width',
49
+ new: '',
50
+ },
51
+ ];
52
+ exports.CSS_SELECTOR_REPLACEMENTS = [
53
+ // #2180 - Header variant classes removed
54
+ { old: 'header-4', new: 'header-3' },
55
+ { old: 'header-5', new: 'header-3' },
56
+ { old: 'header-6', new: 'header-1' },
57
+ { old: 'header-7', new: 'header-2' },
58
+ ];
59
+ exports.CSS_ATTRIBUTE_REPLACEMENTS = [
60
+ // #2240 - cds-text heading → headline
61
+ { old: "cds-text*='heading'", new: "cds-text*='headline'" },
62
+ { old: 'cds-text*="heading"', new: 'cds-text*="headline"' },
63
+ { old: "[cds-text*='heading']", new: "[cds-text*='headline']" },
64
+ { old: '[cds-text*="heading"]', new: '[cds-text*="headline"]' },
65
+ ];
66
+ /**
67
+ * SCSS/Sass mixin names that have been removed in v18.
68
+ * Any `@include <name>(...)` call will be commented out with a TODO note.
69
+ */
70
+ exports.REMOVED_SCSS_MIXINS = [
71
+ // #2253 - IE/Edge range input mixin removed (beta.2)
72
+ 'range-track-style',
73
+ ];
74
+ //# sourceMappingURL=css-replacements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-replacements.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/replacements/css-replacements.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAYU,QAAA,yBAAyB,GAA8B;IAClE,+CAA+C;IAC/C;QACE,GAAG,EAAE,mCAAmC;QACxC,GAAG,EAAE,oCAAoC;KAC1C;IACD;QACE,GAAG,EAAE,gDAAgD;QACrD,GAAG,EAAE,iDAAiD;KACvD;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,GAAG,EAAE,uCAAuC;KAC7C;IACD;QACE,GAAG,EAAE,0CAA0C;QAC/C,GAAG,EAAE,oCAAoC;KAC1C;IACD;QACE,GAAG,EAAE,2CAA2C;QAChD,GAAG,EAAE,qCAAqC;KAC3C;IAED,4DAA4D;IAC5D;QACE,GAAG,EAAE,yCAAyC;QAC9C,GAAG,EAAE,8CAA8C;KACpD;IACD;QACE,GAAG,EAAE,iDAAiD;QACtD,GAAG,EAAE,sDAAsD;KAC5D;IAED,uDAAuD;IACvD;QACE,GAAG,EAAE,mCAAmC;QACxC,GAAG,EAAE,EAAE;KACR;IAED,iDAAiD;IACjD;QACE,GAAG,EAAE,sCAAsC;QAC3C,GAAG,EAAE,EAAE;KACR;CACF,CAAC;AAEW,QAAA,yBAAyB,GAA8B;IAClE,yCAAyC;IACzC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;CACrC,CAAC;AAEW,QAAA,0BAA0B,GAA8B;IACnE,sCAAsC;IACtC,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC3D,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC3D,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,EAAE,wBAAwB,EAAE;IAC/D,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,EAAE,wBAAwB,EAAE;CAChE,CAAC;AAEF;;;GAGG;AACU,QAAA,mBAAmB,GAAsB;IACpD,qDAAqD;IACrD,mBAAmB;CACpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * TypeScript import path and symbol replacements for v18 migration.
3
+ *
4
+ * Each entry maps an old import to its replacement. The migration will update
5
+ * both the import specifier and optionally rename the imported symbol.
6
+ */
7
+ export interface ImportReplacement {
8
+ readonly oldModule: string;
9
+ readonly newModule: string;
10
+ readonly oldSymbol: string;
11
+ readonly newSymbol: string;
12
+ }
13
+ export declare const IMPORT_REPLACEMENTS: readonly ImportReplacement[];
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IMPORT_REPLACEMENTS = void 0;
10
+ exports.IMPORT_REPLACEMENTS = [
11
+ // #2107 - Secondary entrypoints: deep /src/ imports → package entrypoints
12
+ {
13
+ oldModule: '@clr/angular/src/accordion',
14
+ newModule: '@clr/angular/accordion',
15
+ oldSymbol: '*',
16
+ newSymbol: '*',
17
+ },
18
+ {
19
+ oldModule: '@clr/angular/src/accordion/stepper',
20
+ newModule: '@clr/angular/stepper',
21
+ oldSymbol: '*',
22
+ newSymbol: '*',
23
+ },
24
+ {
25
+ oldModule: '@clr/angular/src/emphasis',
26
+ newModule: '@clr/angular/emphasis',
27
+ oldSymbol: '*',
28
+ newSymbol: '*',
29
+ },
30
+ {
31
+ oldModule: '@clr/angular/src/forms',
32
+ newModule: '@clr/angular/forms',
33
+ oldSymbol: '*',
34
+ newSymbol: '*',
35
+ },
36
+ {
37
+ oldModule: '@clr/angular/src/data',
38
+ newModule: '@clr/angular/data',
39
+ oldSymbol: '*',
40
+ newSymbol: '*',
41
+ },
42
+ {
43
+ oldModule: '@clr/angular/src/layout',
44
+ newModule: '@clr/angular/layout',
45
+ oldSymbol: '*',
46
+ newSymbol: '*',
47
+ },
48
+ {
49
+ oldModule: '@clr/angular/src/modal',
50
+ newModule: '@clr/angular/modal',
51
+ oldSymbol: '*',
52
+ newSymbol: '*',
53
+ },
54
+ {
55
+ oldModule: '@clr/angular/src/popover',
56
+ newModule: '@clr/angular/popover',
57
+ oldSymbol: '*',
58
+ newSymbol: '*',
59
+ },
60
+ {
61
+ oldModule: '@clr/angular/src/utils',
62
+ newModule: '@clr/angular/utils',
63
+ oldSymbol: '*',
64
+ newSymbol: '*',
65
+ },
66
+ {
67
+ oldModule: '@clr/angular/src/wizard',
68
+ newModule: '@clr/angular/wizard',
69
+ oldSymbol: '*',
70
+ newSymbol: '*',
71
+ },
72
+ // #2098 - Smart popovers moved from utils/popover → popover/common
73
+ {
74
+ oldModule: '@clr/angular/utils/popover',
75
+ newModule: '@clr/angular/popover/common',
76
+ oldSymbol: '*',
77
+ newSymbol: '*',
78
+ },
79
+ // #2107 - ClrIfOpen moved from utils → popover/common
80
+ {
81
+ oldModule: '@clr/angular/utils',
82
+ newModule: '@clr/angular/popover/common',
83
+ oldSymbol: 'ClrIfOpen',
84
+ newSymbol: 'ClrIfOpen',
85
+ },
86
+ // #2107 - FocusService renamed to FormsFocusService
87
+ {
88
+ oldModule: '@clr/angular/forms',
89
+ newModule: '@clr/angular/forms/common',
90
+ oldSymbol: 'FocusService',
91
+ newSymbol: 'FormsFocusService',
92
+ },
93
+ // #2101 - cds-icon: @cds/core/icon → @clr/angular or @clr/angular/icon
94
+ {
95
+ oldModule: '@cds/core/icon',
96
+ newModule: '@clr/angular/icon',
97
+ oldSymbol: '*',
98
+ newSymbol: '*',
99
+ },
100
+ ];
101
+ //# sourceMappingURL=import-replacements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-replacements.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/replacements/import-replacements.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAeU,QAAA,mBAAmB,GAAiC;IAC/D,0EAA0E;IAC1E;QACE,SAAS,EAAE,4BAA4B;QACvC,SAAS,EAAE,wBAAwB;QACnC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,oCAAoC;QAC/C,SAAS,EAAE,sBAAsB;QACjC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,2BAA2B;QACtC,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,wBAAwB;QACnC,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,mBAAmB;QAC9B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,yBAAyB;QACpC,SAAS,EAAE,qBAAqB;QAChC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,wBAAwB;QACnC,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,sBAAsB;QACjC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,wBAAwB;QACnC,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IACD;QACE,SAAS,EAAE,yBAAyB;QACpC,SAAS,EAAE,qBAAqB;QAChC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IAED,mEAAmE;IACnE;QACE,SAAS,EAAE,4BAA4B;QACvC,SAAS,EAAE,6BAA6B;QACxC,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;IAED,sDAAsD;IACtD;QACE,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,6BAA6B;QACxC,SAAS,EAAE,WAAW;QACtB,SAAS,EAAE,WAAW;KACvB;IAED,oDAAoD;IACpD;QACE,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,2BAA2B;QACtC,SAAS,EAAE,cAAc;QACzB,SAAS,EAAE,mBAAmB;KAC/B;IAED,uEAAuE;IACvE;QACE,SAAS,EAAE,gBAAgB;QAC3B,SAAS,EAAE,mBAAmB;QAC9B,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * TypeScript symbol renames for v18 migration.
3
+ *
4
+ * These are applied across all .ts files after import path updates.
5
+ * Symbols with an empty `new` are removed (import stripped, usage annotated with TODO).
6
+ */
7
+ export interface SymbolReplacement {
8
+ readonly old: string;
9
+ readonly new: string;
10
+ readonly context?: string;
11
+ }
12
+ export declare const SYMBOL_REPLACEMENTS: readonly SymbolReplacement[];
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.SYMBOL_REPLACEMENTS = void 0;
10
+ exports.SYMBOL_REPLACEMENTS = [
11
+ // #2023 - ClrLabel → ClrControlLabel (form directive)
12
+ { old: 'ClrLabel', new: 'ClrControlLabel', context: 'form-label-directive' },
13
+ // #2007 - clrDgItemsTrackBy → clrDgItemsIdentityFn
14
+ { old: 'clrDgItemsTrackBy', new: 'clrDgItemsIdentityFn', context: 'datagrid' },
15
+ // #2107 - FocusService → FormsFocusService
16
+ { old: 'FocusService', new: 'FormsFocusService', context: 'forms' },
17
+ // #2062 - Removed popover services/enums/interfaces
18
+ { old: 'ClrPopoverEventsService', new: 'ClrPopoverService', context: 'popover-removed' },
19
+ { old: 'ClrPopoverPositionService', new: 'ClrPopoverService', context: 'popover-removed' },
20
+ { old: 'ClrPopoverToggleService', new: 'ClrPopoverService', context: 'popover-removed' },
21
+ // #2101 - ClrIconModule → ClrIcon (standalone)
22
+ { old: 'ClrIconModule', new: 'ClrIcon', context: 'icon-standalone' },
23
+ // #2207 - Accordion/Stepper decoupling
24
+ { old: 'AccordionPanelModel', new: 'CollapsiblePanelModel', context: 'accordion-stepper-decoupling' },
25
+ { old: 'AccordionStatus', new: 'StepperPanelStatus', context: 'accordion-stepper-decoupling' },
26
+ { old: 'panelAnimation', new: 'collapsiblePanelAnimation', context: 'accordion-stepper-decoupling' },
27
+ { old: 'getAccordionContentId', new: 'getContentId', context: 'accordion-stepper-decoupling' },
28
+ { old: 'getAccordionHeaderId', new: 'getHeaderId', context: 'accordion-stepper-decoupling' },
29
+ // #2228 - IE11 removals
30
+ { old: 'IEKeys', new: '', context: 'ie-removal' },
31
+ { old: 'normalizeKey', new: '', context: 'ie-removal' },
32
+ // #2267 - Popover anchor → origin rename (beta.2)
33
+ { old: 'ClrPopoverAnchor', new: 'ClrPopoverOrigin', context: 'popover-anchor-origin' },
34
+ { old: 'POPOVER_HOST_ANCHOR', new: 'POPOVER_HOST_ORIGIN', context: 'popover-anchor-origin' },
35
+ { old: 'focusAnchor', new: 'focusOrigin', context: 'popover-anchor-origin' },
36
+ { old: 'getAnchorPosition', new: 'getOriginPosition', context: 'popover-anchor-origin' },
37
+ // #2266 - Ç-prefix symbol renames (beta.3)
38
+ // Note: Ç (U+00C7) is not a regex word-boundary character; matching uses lookahead/lookbehind.
39
+ { old: 'ÇlrClrPopoverModuleNext', new: 'ClrPopoverModuleNext', context: 'c-prefix-rename' },
40
+ { old: 'ÇlrClrPopoverCloseButton', new: 'ClrPopoverCloseButton', context: 'c-prefix-rename' },
41
+ { old: 'ÇlrClrPopoverOpenCloseButton', new: 'ClrPopoverOpenCloseButton', context: 'c-prefix-rename' },
42
+ { old: 'ÇlrAccordionWillyWonka', new: 'AccordionWillyWonka', context: 'c-prefix-rename' },
43
+ { old: 'ÇlrAccordionOompaLoompa', new: 'AccordionOompaLoompa', context: 'c-prefix-rename' },
44
+ { old: 'ÇlrStepperWillyWonka', new: 'StepperWillyWonka', context: 'c-prefix-rename' },
45
+ { old: 'ÇlrStepperOompaLoompa', new: 'StepperOompaLoompa', context: 'c-prefix-rename' },
46
+ { old: 'ÇlrTabsWillyWonka', new: 'TabsWillyWonka', context: 'c-prefix-rename' },
47
+ { old: 'ÇlrActiveOompaLoompa', new: 'ActiveOompaLoompa', context: 'c-prefix-rename' },
48
+ { old: 'ÇlrDatagridVirtualScrollDirective', new: 'ClrDatagridVirtualScrollDirective', context: 'c-prefix-rename' },
49
+ { old: 'ÇlrDatagridSelectionCellDirective', new: 'ClrDatagridSelectionCellDirective', context: 'c-prefix-rename' },
50
+ {
51
+ old: 'ÇlrDatagridSingleSelectionValueAccessor',
52
+ new: 'ClrDatagridSingleSelectionValueAccessor',
53
+ context: 'c-prefix-rename',
54
+ },
55
+ { old: 'ÇlrDatagridWillyWonka', new: 'DatagridWillyWonka', context: 'c-prefix-rename' },
56
+ { old: 'ÇlrActionableOompaLoompa', new: 'ActionableOompaLoompa', context: 'c-prefix-rename' },
57
+ { old: 'ÇlrExpandableOompaLoompa', new: 'ExpandableOompaLoompa', context: 'c-prefix-rename' },
58
+ { old: 'ÇlrWrappedCell', new: 'WrappedCell', context: 'c-prefix-rename' },
59
+ { old: 'ÇlrWrappedColumn', new: 'WrappedColumn', context: 'c-prefix-rename' },
60
+ { old: 'ÇlrWrappedRow', new: 'WrappedRow', context: 'c-prefix-rename' },
61
+ { old: 'ÇlrDatagridCellRenderer', new: 'DatagridCellRenderer', context: 'c-prefix-rename' },
62
+ { old: 'ÇlrDatagridHeaderRenderer', new: 'DatagridHeaderRenderer', context: 'c-prefix-rename' },
63
+ { old: 'ÇlrDatagridMainRenderer', new: 'DatagridMainRenderer', context: 'c-prefix-rename' },
64
+ { old: 'ÇlrDatagridRowRenderer', new: 'DatagridRowRenderer', context: 'c-prefix-rename' },
65
+ { old: 'ÇlrDatagridRowDetailRenderer', new: 'DatagridRowDetailRenderer', context: 'c-prefix-rename' },
66
+ { old: 'ÇlrDatagridDetailRegisterer', new: 'DatagridDetailRegisterer', context: 'c-prefix-rename' },
67
+ ];
68
+ //# sourceMappingURL=symbol-replacements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol-replacements.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/replacements/symbol-replacements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * HTML template replacements for v18 migration.
3
+ *
4
+ * Covers Angular output renames, attribute binding changes, and selector updates.
5
+ */
6
+ export interface TemplateReplacement {
7
+ readonly old: string;
8
+ readonly new: string;
9
+ readonly context?: string;
10
+ }
11
+ export declare const TEMPLATE_OUTPUT_REPLACEMENTS: readonly TemplateReplacement[];
12
+ export declare const TEMPLATE_ATTRIBUTE_REPLACEMENTS: readonly TemplateReplacement[];
13
+ export declare const TEMPLATE_INPUT_REPLACEMENTS: readonly TemplateReplacement[];
14
+ export declare const HEADER_CLASS_REPLACEMENTS: readonly TemplateReplacement[];
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.HEADER_CLASS_REPLACEMENTS = exports.TEMPLATE_INPUT_REPLACEMENTS = exports.TEMPLATE_ATTRIBUTE_REPLACEMENTS = exports.TEMPLATE_OUTPUT_REPLACEMENTS = void 0;
10
+ exports.TEMPLATE_OUTPUT_REPLACEMENTS = [
11
+ // #2249 - Wizard currentPageChanged → currentPageChange
12
+ {
13
+ old: 'clrWizardCurrentPageChanged',
14
+ new: 'clrWizardCurrentPageChange',
15
+ context: 'wizard',
16
+ },
17
+ ];
18
+ exports.TEMPLATE_ATTRIBUTE_REPLACEMENTS = [
19
+ // #2101 - cds-icon: [attr.shape] → [shape], [attr.size] → [size], etc.
20
+ { old: '[attr.shape]', new: '[shape]', context: 'cds-icon' },
21
+ { old: '[attr.size]', new: '[size]', context: 'cds-icon' },
22
+ { old: '[attr.dir]', new: '[dir]', context: 'cds-icon' },
23
+ { old: '[attr.flip]', new: '[flip]', context: 'cds-icon' },
24
+ { old: '[attr.status]', new: '[status]', context: 'cds-icon' },
25
+ { old: '[attr.inverse]', new: '[inverse]', context: 'cds-icon' },
26
+ { old: '[attr.badge]', new: '[badge]', context: 'cds-icon' },
27
+ { old: '[attr.solid]', new: '[solid]', context: 'cds-icon' },
28
+ // #2267 - Popover anchor directive selector rename (beta.2)
29
+ // Matches bare attribute: clrPopoverAnchor and bound: [clrPopoverAnchor]
30
+ { old: 'clrPopoverAnchor', new: 'clrPopoverOrigin', context: 'popover-anchor-origin' },
31
+ ];
32
+ exports.TEMPLATE_INPUT_REPLACEMENTS = [
33
+ // #2022 - Badge color input rename
34
+ {
35
+ old: 'clrBadgeColor',
36
+ new: 'clrColor',
37
+ context: 'badge',
38
+ },
39
+ // #2007 - Datagrid identity function rename (input, not output)
40
+ {
41
+ old: 'clrDgItemsTrackBy',
42
+ new: 'clrDgItemsIdentityFn',
43
+ context: 'datagrid',
44
+ },
45
+ ];
46
+ exports.HEADER_CLASS_REPLACEMENTS = [
47
+ // #2180 - Header variant removals
48
+ { old: 'header-4', new: 'header-3' },
49
+ { old: 'header-5', new: 'header-3' },
50
+ { old: 'header-6', new: 'header-1' },
51
+ { old: 'header-7', new: 'header-2' },
52
+ ];
53
+ //# sourceMappingURL=template-replacements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-replacements.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/replacements/template-replacements.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAaU,QAAA,4BAA4B,GAAmC;IAC1E,wDAAwD;IACxD;QACE,GAAG,EAAE,6BAA6B;QAClC,GAAG,EAAE,4BAA4B;QACjC,OAAO,EAAE,QAAQ;KAClB;CACF,CAAC;AAEW,QAAA,+BAA+B,GAAmC;IAC7E,uEAAuE;IACvE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE;IAC5D,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE;IAC1D,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE;IACxD,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE;IAC1D,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE;IAC9D,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE;IAChE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE;IAC5D,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE;IAE5D,4DAA4D;IAC5D,yEAAyE;IACzE,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,uBAAuB,EAAE;CACvF,CAAC;AAEW,QAAA,2BAA2B,GAAmC;IACzE,mCAAmC;IACnC;QACE,GAAG,EAAE,eAAe;QACpB,GAAG,EAAE,UAAU;QACf,OAAO,EAAE,OAAO;KACjB;IAED,gEAAgE;IAChE;QACE,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,sBAAsB;QAC3B,OAAO,EAAE,UAAU;KACpB;CACF,CAAC;AAEW,QAAA,yBAAyB,GAAmC;IACvE,kCAAkC;IAClC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;CACrC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Tree } from '@angular-devkit/schematics';
2
+ /**
3
+ * Visits all files in the tree matching a glob-like pattern.
4
+ * Supports simple extension matching: '**\/*.ts', '**\/*.html', '**\/*.{css,scss,sass,less}'
5
+ *
6
+ * Skips generated/build directories and .d.ts declaration files for performance.
7
+ */
8
+ export declare function visitFiles(tree: Tree, pattern: string, callback: (filePath: string) => void): void;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.visitFiles = visitFiles;
10
+ const EXCLUDED_DIRS = ['/node_modules/', '/.git/', '/dist/', '/coverage/', '/.angular/', '/.nx/', '/.cache/'];
11
+ /**
12
+ * Visits all files in the tree matching a glob-like pattern.
13
+ * Supports simple extension matching: '**\/*.ts', '**\/*.html', '**\/*.{css,scss,sass,less}'
14
+ *
15
+ * Skips generated/build directories and .d.ts declaration files for performance.
16
+ */
17
+ function visitFiles(tree, pattern, callback) {
18
+ const extensions = parseExtensions(pattern);
19
+ tree.visit(filePath => {
20
+ if (EXCLUDED_DIRS.some(d => filePath.includes(d))) {
21
+ return;
22
+ }
23
+ // Skip TypeScript declaration files — they are generated, never user-edited
24
+ if (filePath.endsWith('.d.ts')) {
25
+ return;
26
+ }
27
+ if (extensions.length > 0 && !extensions.some(ext => filePath.endsWith(ext))) {
28
+ return;
29
+ }
30
+ callback(filePath);
31
+ });
32
+ }
33
+ function parseExtensions(pattern) {
34
+ // Match patterns like '**/*.ts' or '**/*.{css,scss,sass,less}'
35
+ const match = pattern.match(/\*\.(?:\{([^}]+)\}|(\w+))$/);
36
+ if (!match) {
37
+ return [];
38
+ }
39
+ if (match[1]) {
40
+ return match[1].split(',').map(ext => `.${ext.trim()}`);
41
+ }
42
+ return [`.${match[2]}`];
43
+ }
44
+ //# sourceMappingURL=file-visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-visitor.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/utils/file-visitor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAYH,gCAmBC;AA3BD,MAAM,aAAa,GAAG,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAE9G;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,IAAU,EAAE,OAAe,EAAE,QAAoC;IAC1F,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;QACpB,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,4EAA4E;QAC5E,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,+DAA+D;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACb,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const config_1 = require("vitest/config");
10
+ exports.default = (0, config_1.defineConfig)({
11
+ test: {
12
+ root: 'projects/angular/schematics',
13
+ include: ['**/*.vitest.ts'],
14
+ globals: true,
15
+ },
16
+ });
17
+ //# sourceMappingURL=vitest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../../../projects/angular/schematics/vitest.config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,0CAA6C;AAE7C,kBAAe,IAAA,qBAAY,EAAC;IAC1B,IAAI,EAAE;QACJ,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,CAAC,gBAAgB,CAAC;QAC3B,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC"}