@lucca-front/ng 21.4.0 → 21.4.2

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 (165) hide show
  1. package/fesm2022/lucca-front-ng-a11y.mjs +9 -9
  2. package/fesm2022/lucca-front-ng-activity-feed.mjs +9 -9
  3. package/fesm2022/lucca-front-ng-api.mjs +40 -40
  4. package/fesm2022/lucca-front-ng-app-layout.mjs +3 -3
  5. package/fesm2022/lucca-front-ng-box.mjs +3 -3
  6. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +6 -6
  7. package/fesm2022/lucca-front-ng-bubble-icon.mjs +3 -3
  8. package/fesm2022/lucca-front-ng-bubble-illustration.mjs +3 -3
  9. package/fesm2022/lucca-front-ng-callout.mjs +24 -24
  10. package/fesm2022/lucca-front-ng-chip.mjs +3 -3
  11. package/fesm2022/lucca-front-ng-clear.mjs +3 -3
  12. package/fesm2022/lucca-front-ng-code.mjs +3 -3
  13. package/fesm2022/lucca-front-ng-color.mjs +3 -3
  14. package/fesm2022/lucca-front-ng-comment.mjs +12 -11
  15. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  16. package/fesm2022/lucca-front-ng-container.mjs +3 -3
  17. package/fesm2022/lucca-front-ng-core-select-api.mjs +23 -16
  18. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-core-select-department.mjs +6 -6
  20. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +9 -9
  21. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +6 -6
  22. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +3 -3
  23. package/fesm2022/lucca-front-ng-core-select-user.mjs +28 -23
  24. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-core-select.mjs +86 -53
  26. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-core.mjs +15 -15
  28. package/fesm2022/lucca-front-ng-data-table.mjs +24 -24
  29. package/fesm2022/lucca-front-ng-date.mjs +40 -40
  30. package/fesm2022/lucca-front-ng-date2.mjs +22 -22
  31. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  32. package/fesm2022/lucca-front-ng-department.mjs +24 -24
  33. package/fesm2022/lucca-front-ng-dialog.mjs +69 -52
  34. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-divider.mjs +3 -3
  36. package/fesm2022/lucca-front-ng-dropdown.mjs +40 -40
  37. package/fesm2022/lucca-front-ng-empty-state.mjs +9 -9
  38. package/fesm2022/lucca-front-ng-error-page.mjs +4 -4
  39. package/fesm2022/lucca-front-ng-error-page.mjs.map +1 -1
  40. package/fesm2022/lucca-front-ng-establishment.mjs +33 -33
  41. package/fesm2022/lucca-front-ng-fancy-box.mjs +3 -3
  42. package/fesm2022/lucca-front-ng-file-upload.mjs +16 -16
  43. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  44. package/fesm2022/lucca-front-ng-filter-pills.mjs +28 -24
  45. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  46. package/fesm2022/lucca-front-ng-footer.mjs +4 -4
  47. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  48. package/fesm2022/lucca-front-ng-form-field.mjs +20 -20
  49. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  50. package/fesm2022/lucca-front-ng-form-header.mjs +3 -3
  51. package/fesm2022/lucca-front-ng-form-label.mjs +3 -3
  52. package/fesm2022/lucca-front-ng-form.mjs +3 -3
  53. package/fesm2022/lucca-front-ng-formly.mjs +58 -58
  54. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +6 -6
  55. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +3 -3
  56. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +6 -6
  57. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +3 -3
  58. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +53 -38
  59. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  60. package/fesm2022/lucca-front-ng-forms.mjs +68 -66
  61. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  62. package/fesm2022/lucca-front-ng-gauge.mjs +3 -3
  63. package/fesm2022/lucca-front-ng-grid.mjs +6 -6
  64. package/fesm2022/lucca-front-ng-highlight-data.mjs +4 -4
  65. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  66. package/fesm2022/lucca-front-ng-highlight-text.mjs +3 -3
  67. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +11 -11
  68. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-impersonation.mjs +4 -4
  70. package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-index-table.mjs +30 -30
  72. package/fesm2022/lucca-front-ng-inline-message.mjs +3 -3
  73. package/fesm2022/lucca-front-ng-input.mjs +21 -21
  74. package/fesm2022/lucca-front-ng-link.mjs +16 -8
  75. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  76. package/fesm2022/lucca-front-ng-listbox.mjs +9 -9
  77. package/fesm2022/lucca-front-ng-listing.mjs +6 -6
  78. package/fesm2022/lucca-front-ng-loading.mjs +3 -3
  79. package/fesm2022/lucca-front-ng-main-layout.mjs +6 -6
  80. package/fesm2022/lucca-front-ng-mobile-push.mjs +3 -3
  81. package/fesm2022/lucca-front-ng-modal.mjs +22 -22
  82. package/fesm2022/lucca-front-ng-multi-select.mjs +157 -110
  83. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  84. package/fesm2022/lucca-front-ng-new-badge.mjs +3 -3
  85. package/fesm2022/lucca-front-ng-number-format.mjs +6 -6
  86. package/fesm2022/lucca-front-ng-number.mjs +7 -7
  87. package/fesm2022/lucca-front-ng-numeric-badge.mjs +9 -5
  88. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-option.mjs +126 -126
  90. package/fesm2022/lucca-front-ng-page-header.mjs +3 -3
  91. package/fesm2022/lucca-front-ng-pagination.mjs +3 -3
  92. package/fesm2022/lucca-front-ng-plg-push.mjs +3 -3
  93. package/fesm2022/lucca-front-ng-popover.mjs +17 -17
  94. package/fesm2022/lucca-front-ng-popover2.mjs +6 -6
  95. package/fesm2022/lucca-front-ng-popup.mjs +10 -10
  96. package/fesm2022/lucca-front-ng-progress-bar.mjs +3 -3
  97. package/fesm2022/lucca-front-ng-progress-stepper.mjs +6 -6
  98. package/fesm2022/lucca-front-ng-read-more.mjs +11 -5
  99. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  100. package/fesm2022/lucca-front-ng-resource-card.mjs +13 -13
  101. package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
  102. package/fesm2022/lucca-front-ng-safe-content.mjs +10 -10
  103. package/fesm2022/lucca-front-ng-scroll-box.mjs +3 -3
  104. package/fesm2022/lucca-front-ng-scroll.mjs +7 -7
  105. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +6 -6
  106. package/fesm2022/lucca-front-ng-segmented-control.mjs +6 -6
  107. package/fesm2022/lucca-front-ng-select.mjs +14 -14
  108. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  109. package/fesm2022/lucca-front-ng-simple-select.mjs +16 -29
  110. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  111. package/fesm2022/lucca-front-ng-skeleton.mjs +26 -26
  112. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  113. package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +6 -6
  114. package/fesm2022/lucca-front-ng-software-icon.mjs +3 -3
  115. package/fesm2022/lucca-front-ng-sortable-list.mjs +6 -6
  116. package/fesm2022/lucca-front-ng-status-badge.mjs +3 -3
  117. package/fesm2022/lucca-front-ng-table-of-content.mjs +6 -6
  118. package/fesm2022/lucca-front-ng-tag.mjs +3 -3
  119. package/fesm2022/lucca-front-ng-text-flow.mjs +3 -3
  120. package/fesm2022/lucca-front-ng-time.mjs +18 -18
  121. package/fesm2022/lucca-front-ng-title.mjs +22 -13
  122. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  123. package/fesm2022/lucca-front-ng-toast.mjs +10 -10
  124. package/fesm2022/lucca-front-ng-tooltip.mjs +35 -24
  125. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  126. package/fesm2022/lucca-front-ng-tree-select.mjs +6 -6
  127. package/fesm2022/lucca-front-ng-user-popover.mjs +21 -18
  128. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  129. package/fesm2022/lucca-front-ng-user.mjs +59 -59
  130. package/fesm2022/lucca-front-ng-vertical-navigation.mjs +12 -12
  131. package/package.json +4 -4
  132. package/schematics/action-icon/migration.spec.js +2 -2
  133. package/schematics/alignment-utilities/migration.spec.js +2 -2
  134. package/schematics/cdn-urls/migration.spec.js +2 -2
  135. package/schematics/class-prefix/migration.spec.js +2 -2
  136. package/schematics/color-text/migration.spec.js +2 -2
  137. package/schematics/component-path/migration.spec.js +2 -2
  138. package/schematics/deprecated-resolver/migration.spec.js +1 -1
  139. package/schematics/empty-state-title/migration.spec.js +1 -1
  140. package/schematics/lib/migration-test.js +6 -1
  141. package/schematics/lu-button/migration.spec.js +1 -1
  142. package/schematics/lu-container/migration.spec.js +1 -1
  143. package/schematics/lu-grid/migration.js +24 -16
  144. package/schematics/lu-grid/migration.spec.js +1 -1
  145. package/schematics/lu-icon/migration.spec.js +1 -1
  146. package/schematics/lu-loading/migration.spec.js +1 -1
  147. package/schematics/lu-select/migration.spec.js +1 -1
  148. package/schematics/lu-text-input/migration.spec.js +1 -1
  149. package/schematics/new-icons/migration.spec.js +2 -2
  150. package/schematics/palettes/index.js +28 -8
  151. package/schematics/palettes/migration.spec.js +2 -2
  152. package/schematics/tokens-radius/migration.spec.js +2 -2
  153. package/schematics/tokens-spacing/migration.spec.js +2 -2
  154. package/schematics/tokens-typo/migration.spec.js +2 -2
  155. package/types/lucca-front-ng-comment.d.ts +2 -1
  156. package/types/lucca-front-ng-core-select.d.ts +13 -1
  157. package/types/lucca-front-ng-dialog.d.ts +4 -3
  158. package/types/lucca-front-ng-filter-pills.d.ts +1 -0
  159. package/types/lucca-front-ng-forms-rich-text-input.d.ts +5 -1
  160. package/types/lucca-front-ng-forms.d.ts +14 -5
  161. package/types/lucca-front-ng-multi-select.d.ts +29 -5
  162. package/types/lucca-front-ng-numeric-badge.d.ts +1 -0
  163. package/types/lucca-front-ng-read-more.d.ts +6 -1
  164. package/types/lucca-front-ng-simple-select.d.ts +1 -3
  165. package/types/lucca-front-ng-title.d.ts +5 -5
@@ -47,7 +47,7 @@ describe('Class prefix Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'class-prefix', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'class-prefix', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  // eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('Class prefix Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'class-prefix', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'class-prefix', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -47,7 +47,7 @@ describe('Color Text Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'color-text', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'color-text', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  // eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('Color Text Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'color-text', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'color-text', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -47,7 +47,7 @@ describe('Component path Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'component-path', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'component-path', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  //eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('Component path Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'component-path', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'component-path', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -46,7 +46,7 @@ describe('Deprecated Resolver Migration', () => {
46
46
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
47
47
  // Act
48
48
  try {
49
- await (0, lib_1.runSchematic)('collection', collectionPath, 'deprecated-resolver', { skipInstallation: true }, tree);
49
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'deprecated-resolver', { skipInstall: true }, tree);
50
50
  }
51
51
  catch (error) {
52
52
  // eslint-disable-next-line no-console
@@ -46,7 +46,7 @@ describe('Empty state title migration', () => {
46
46
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
47
47
  // Act
48
48
  try {
49
- await (0, lib_1.runSchematic)('collection', collectionPath, 'empty-state-heading', { skipInstallation: true }, tree);
49
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'empty-state-heading', { skipInstall: true }, tree);
50
50
  }
51
51
  catch (error) {
52
52
  // eslint-disable-next-line no-console
@@ -48,7 +48,12 @@ function expectTree(tree) {
48
48
  expect(stripLastNewLine(actualContent)).toEqual(stripLastNewLine(expectedContent));
49
49
  }
50
50
  catch (error) {
51
- throw error instanceof Error ? new Error(`Expected file content to match for ${path}: \n${error.message}`) : error;
51
+ if (error instanceof Error) {
52
+ // Mutate the message in place (rather than re-throwing a new Error) so the original
53
+ // stack trace and Vitest's expected/actual diff properties are preserved.
54
+ error.message = `Expected file content to match for ${path}: \n${error.message}`;
55
+ }
56
+ throw error;
52
57
  }
53
58
  });
54
59
  // Ensure all files in expected tree exist in actual tree
@@ -44,7 +44,7 @@ describe('luButton Migration', () => {
44
44
  const expectedTree = (0, lib_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
45
45
  // Act
46
46
  try {
47
- await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-button', { skipInstallation: true }, tree);
47
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-button', { skipInstall: true }, tree);
48
48
  }
49
49
  catch (error) {
50
50
  // eslint-disable-next-line no-console
@@ -44,7 +44,7 @@ describe('lu-container Migration', () => {
44
44
  const expectedTree = (0, lib_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
45
45
  // Act
46
46
  try {
47
- await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-container', { skipInstallation: true }, tree);
47
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-container', { skipInstall: true }, tree);
48
48
  }
49
49
  catch (error) {
50
50
  // eslint-disable-next-line no-console
@@ -158,22 +158,37 @@ function gridHasNonNeutralColumnChildren(node) {
158
158
  return !!childClasses?.match(/(^|\s)grid-column(\s|$)/);
159
159
  });
160
160
  }
161
+ // A grid is migratable only when the migration can be fully carried out. If any
162
+ // class other than `grid`/`mod-auto`/`mod-form` would remain on the element, the
163
+ // migration is considered incomplete: we leave the grid — and therefore its
164
+ // `grid-column` children — untouched for manual review.
165
+ // This is the single source of truth for both grid and grid-column finders so a
166
+ // `grid-column` is never migrated without its parent grid being migrated too.
167
+ function isMigratableGrid(node) {
168
+ if (!(0, lib_1.isInterestingNode)(node) || !(0, migration_utils_1.isNeutralElement)(node.name)) {
169
+ return false;
170
+ }
171
+ const classes = node.attributes.find((attr) => attr.name === 'class')?.value;
172
+ if (!classes?.match(/(^|\s)grid(\s|$)/)) {
173
+ return false;
174
+ }
175
+ if (gridHasNonNeutralColumnChildren(node)) {
176
+ return false;
177
+ }
178
+ // Any leftover class means the migration would keep a `class=` attribute → skip.
179
+ const extraClasses = classes.split(' ').filter((c) => c && c !== 'grid' && c !== 'mod-auto' && c !== 'mod-form');
180
+ return extraClasses.length === 0;
181
+ }
161
182
  function findHTMLGrids(sourceFile, basePath, tree) {
162
183
  const results = [];
163
184
  const ngTemplates = (0, lib_1.extractNgTemplatesIncludingHtml)(sourceFile, tree, basePath);
164
185
  ngTemplates.forEach((template) => {
165
186
  const htmlAst = new lib_1.HtmlAst(template.content);
166
187
  htmlAst.visitNodes((node) => {
167
- if (!(0, lib_1.isInterestingNode)(node) || !(0, migration_utils_1.isNeutralElement)(node.name)) {
168
- return;
169
- }
170
- const classes = node.attributes.find((attr) => attr.name === 'class')?.value;
171
- if (!classes?.match(/(^|\s)grid(\s|$)/)) {
172
- return;
173
- }
174
- if (gridHasNonNeutralColumnChildren(node)) {
188
+ if (!isMigratableGrid(node)) {
175
189
  return;
176
190
  }
191
+ const classes = node.attributes.find((attr) => attr.name === 'class')?.value || '';
177
192
  const styleAttr = node.attributes.find((attr) => attr.name === 'style')?.value || '';
178
193
  const cssProps = (0, migration_utils_1.parseCssCustomProperties)(styleAttr);
179
194
  const classParts = classes.split(' ');
@@ -208,14 +223,7 @@ function findHTMLGridColumns(sourceFile, basePath, tree) {
208
223
  return;
209
224
  }
210
225
  // Only migrate grid-column if its parent grid container is also being migrated
211
- if (!(0, lib_1.isInterestingNode)(parent) || !(0, migration_utils_1.isNeutralElement)(parent.name)) {
212
- return;
213
- }
214
- const parentClasses = parent.attributes.find((attr) => attr.name === 'class')?.value;
215
- if (!parentClasses?.match(/(^|\s)grid(\s|$)/)) {
216
- return;
217
- }
218
- if (gridHasNonNeutralColumnChildren(parent)) {
226
+ if (!isMigratableGrid(parent)) {
219
227
  return;
220
228
  }
221
229
  const styleAttr = node.attributes.find((attr) => attr.name === 'style')?.value || '';
@@ -44,7 +44,7 @@ describe('lu-grid Migration', () => {
44
44
  const expectedTree = (0, lib_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
45
45
  // Act
46
46
  try {
47
- await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-grid', { skipInstallation: true }, tree);
47
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-grid', { skipInstall: true }, tree);
48
48
  }
49
49
  catch (error) {
50
50
  // eslint-disable-next-line no-console
@@ -44,7 +44,7 @@ describe('lu-icon Migration', () => {
44
44
  const expectedTree = (0, lib_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
45
45
  // Act
46
46
  try {
47
- await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-icon', { skipInstallation: true }, tree);
47
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-icon', { skipInstall: true }, tree);
48
48
  }
49
49
  catch (error) {
50
50
  // eslint-disable-next-line no-console
@@ -44,7 +44,7 @@ describe('lu-loading Migration', () => {
44
44
  const expectedTree = (0, lib_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
45
45
  // Act
46
46
  try {
47
- await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-loading', { skipInstallation: true }, tree);
47
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-loading', { skipInstall: true }, tree);
48
48
  }
49
49
  catch (error) {
50
50
  // eslint-disable-next-line no-console
@@ -44,7 +44,7 @@ describe('lu-select Migration', () => {
44
44
  const expectedTree = (0, lib_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
45
45
  // Act
46
46
  try {
47
- await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-select', { skipInstallation: true }, tree);
47
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-select', { skipInstall: true }, tree);
48
48
  }
49
49
  catch (error) {
50
50
  // eslint-disable-next-line no-console
@@ -44,7 +44,7 @@ describe('Textfield Migration', () => {
44
44
  const expectedTree = (0, lib_1.createTreeFromFolder)(path.join(testsRoot, 'output'));
45
45
  // Act
46
46
  try {
47
- await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-text-input', { skipInstallation: true }, tree);
47
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'lu-text-input', { skipInstall: true }, tree);
48
48
  }
49
49
  catch (error) {
50
50
  // eslint-disable-next-line no-console
@@ -47,7 +47,7 @@ describe('New icons Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'new-icons', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'new-icons', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  // eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('New icons Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'new-icons', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'new-icons', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -9,16 +9,20 @@ exports.default = (options) => {
9
9
  await lib_1.currentSchematicContext.init(context, options);
10
10
  await new lib_1.CssMapper(tree, {
11
11
  classes: {
12
- 'palette-grey': 'palette-neutral',
13
- 'palette-primary': 'palette-product',
14
- 'palette-secondary': 'palette-product',
15
- 'palette-lucca': 'palette-brand',
12
+ // Palette classes (Button, Callout, Gauge, Clear, Numeric Badge, Status Badge, …)
13
+ 'palette-{palette}': 'palette-{palette}',
14
+ // Component color modifier (Box, Card, Section) — only `grey` existed
15
+ 'mod-grey': 'mod-neutral',
16
+ // Icon color classes — only `primary`/`secondary` existed
17
+ 'icon-color-primary': 'icon-color-product',
18
+ 'icon-color-secondary': 'icon-color-product',
19
+ // Text color utilities generated from the palette list
20
+ 'u-text{Palette}': 'pr-u-text{Palette}',
21
+ 'pr-u-text{Palette}': 'pr-u-text{Palette}',
22
+ 'pr-u-colorText{Palette}': 'pr-u-colorText{Palette}',
16
23
  },
17
24
  variables: {
18
- '--palettes-grey-{val}': `--palettes-neutral-{val}`,
19
- '--palettes-primary-{val}': `--palettes-product-{val}`,
20
- '--palettes-secondary-{val}': `--palettes-product-{val}`,
21
- '--palettes-lucca-{val}': `--palettes-brand-{val}`,
25
+ '--palettes-{palette}-{val}': `--palettes-{palette}-{val}`,
22
26
  '--colors-grey-{val}': `--palettes-neutral-{val}`,
23
27
  '--colors-white-color': '--palettes-neutral-0',
24
28
  '--colors-black-color': '--palettes-neutral-900',
@@ -36,6 +40,13 @@ exports.default = (options) => {
36
40
  },
37
41
  mixins: {}
38
42
  }, {
43
+ // Deprecated palette -> new palette (used by both classes and CSS vars)
44
+ palette: {
45
+ grey: 'neutral',
46
+ primary: 'product',
47
+ secondary: 'product',
48
+ lucca: 'brand',
49
+ },
39
50
  val: {
40
51
  25: '25',
41
52
  50: '50',
@@ -50,5 +61,14 @@ exports.default = (options) => {
50
61
  900: '900'
51
62
  }
52
63
  }).run();
64
+ new lib_1.DeprecatedMapper(tree, {
65
+ modules: {},
66
+ types: {},
67
+ inputsOutputs: {
68
+ // The `lu-icon` component `color` input is not a CSS class, so it isn't handled by CssMapper.
69
+ // Deprecated `primary`/`secondary` values → `product` (handles both `color="primary"` and `[color]="'primary'"`).
70
+ 'lu-icon': { color: { primary: 'product', secondary: 'product' } },
71
+ },
72
+ }).run();
53
73
  };
54
74
  };
@@ -47,7 +47,7 @@ describe('Palettes Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'palettes', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'palettes', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  // eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('Palettes Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'palettes', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'palettes', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -47,7 +47,7 @@ describe('Tokens radius Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-radius', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-radius', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  // eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('Tokens radius Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-radius', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-radius', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -47,7 +47,7 @@ describe('Tokens spacing Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-spacings', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-spacings', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  // eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('Tokens spacing Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-spacings', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-spacings', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -47,7 +47,7 @@ describe('Tokens typo Migration', () => {
47
47
  const expectedTree = (0, lib_1.createTreeFromFiles)(testsRoot, files, '.output.');
48
48
  // Act
49
49
  try {
50
- await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-typo', { skipInstallation: true }, tree);
50
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-typo', { skipInstall: true }, tree);
51
51
  }
52
52
  catch (error) {
53
53
  // eslint-disable-next-line no-console
@@ -69,7 +69,7 @@ describe('Tokens typo Migration', () => {
69
69
  const treeOriginalTree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
70
70
  const tree = (0, lib_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
71
71
  // Act
72
- await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-typo', { skipInstallation: true }, tree);
72
+ await (0, lib_1.runSchematic)('collection', collectionPath, 'tokens-typo', { skipInstall: true }, tree);
73
73
  // Assert
74
74
  tree.visit((p, entry) => {
75
75
  const original = treeOriginalTree.get(p)?.content.toString() || '';
@@ -19,12 +19,13 @@ declare class CommentComponent {
19
19
  readonly contentIsPortal: _angular_core.Signal<boolean>;
20
20
  readonly contentIsHTML: _angular_core.Signal<boolean>;
21
21
  readonly noInfos: _angular_core.InputSignalWithTransform<boolean, unknown>;
22
+ readonly plainText: _angular_core.InputSignalWithTransform<boolean, unknown>;
22
23
  readonly dateDisplay: _angular_core.Signal<string>;
23
24
  readonly role: _angular_core.Signal<string>;
24
25
  get roleAttr(): string | null;
25
26
  isStringPortalContent(message: PortalContent): message is string;
26
27
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommentComponent, never>;
27
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommentComponent, "lu-comment", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "datePipeFormat": { "alias": "datePipeFormat"; "required": false; "isSignal": true; }; "noInfos": { "alias": "noInfos"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
28
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommentComponent, "lu-comment", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "date": { "alias": "date"; "required": false; "isSignal": true; }; "datePipeFormat": { "alias": "datePipeFormat"; "required": false; "isSignal": true; }; "noInfos": { "alias": "noInfos"; "required": false; "isSignal": true; }; "plainText": { "alias": "plainText"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
28
29
  }
29
30
 
30
31
  declare class CommentBlockComponent {
@@ -223,6 +223,18 @@ interface CoreSelectPanelInstance<T = unknown> {
223
223
  }
224
224
  declare const SELECT_PANEL_INSTANCE: InjectionToken<CoreSelectPanelInstance<unknown>>;
225
225
 
226
+ /**
227
+ * Tracks whether the user is currently navigating with the pointer or with the keyboard.
228
+ *
229
+ * Both listeners are registered natively and outside of the Angular zone, and the signal is only
230
+ * written when the value actually changes: `mousemove` fires on every frame the mouse moves, and
231
+ * going through Angular's event system there schedules a change detection run each time — for a
232
+ * value that almost never changes.
233
+ *
234
+ * Must be called from an injection context.
235
+ */
236
+ declare function injectPointerNavigation(): Signal<boolean>;
237
+
226
238
  declare const LU_CORE_SELECT_TRANSLATIONS: InjectionToken<LuTranslation<LuCoreSelectLabel>>;
227
239
  interface LuCoreSelectLabel {
228
240
  addOption: string;
@@ -400,5 +412,5 @@ declare class LuIsOptionSelectedPipe<T> implements PipeTransform {
400
412
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<LuIsOptionSelectedPipe<any>, "luIsOptionSelected", true>;
401
413
  }
402
414
 
403
- export { ALuSelectInputComponent, CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectKeyManager, LU_CORE_SELECT_TRANSLATIONS, LU_OPTION_CONTEXT, LuCoreSelectNoClueDirective, LuCoreSelectPanelHeaderDirective, LuCoreSelectTotalCountDirective, LuDisabledOptionDirective, LuDisplayerDirective, LuIsOptionSelectedPipe, LuOptionDirective, LuOptionGroupDirective, LuSelectPanelRef, LuSimpleSelectDefaultOptionComponent, SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID, SELECT_PANEL_INSTANCE, TreeDisplayPipe, addAttributesOnCdkContainer, applySearchDelimiter, coreSelectDefaultOptionComparer, coreSelectDefaultOptionKey, luCoreSelectTranslations, provideLuSelectLabelsAndIds, provideOptionContext, CoreSelectPanelElement as ɵCoreSelectPanelElement, ɵIsSelectedStrategy, LuOptionComponent as ɵLuOptionComponent, LuOptionGroupPipe as ɵLuOptionGroupPipe, LuOptionOutletDirective as ɵLuOptionOutletDirective, generateGroups as ɵgenerateGroups, getGroupTemplateLocation as ɵgetGroupTemplateLocation };
415
+ export { ALuSelectInputComponent, CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectKeyManager, LU_CORE_SELECT_TRANSLATIONS, LU_OPTION_CONTEXT, LuCoreSelectNoClueDirective, LuCoreSelectPanelHeaderDirective, LuCoreSelectTotalCountDirective, LuDisabledOptionDirective, LuDisplayerDirective, LuIsOptionSelectedPipe, LuOptionDirective, LuOptionGroupDirective, LuSelectPanelRef, LuSimpleSelectDefaultOptionComponent, SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID, SELECT_PANEL_INSTANCE, TreeDisplayPipe, addAttributesOnCdkContainer, applySearchDelimiter, coreSelectDefaultOptionComparer, coreSelectDefaultOptionKey, luCoreSelectTranslations, provideLuSelectLabelsAndIds, provideOptionContext, CoreSelectPanelElement as ɵCoreSelectPanelElement, ɵIsSelectedStrategy, LuOptionComponent as ɵLuOptionComponent, LuOptionGroupPipe as ɵLuOptionGroupPipe, LuOptionOutletDirective as ɵLuOptionOutletDirective, generateGroups as ɵgenerateGroups, getGroupTemplateLocation as ɵgetGroupTemplateLocation, injectPointerNavigation as ɵinjectPointerNavigation };
404
416
  export type { CoreSelectAddOptionStrategy, CoreSelectApiTotalCountProvider, CoreSelectPanelInstance, ILuOptionContext, LuCoreSelectLabel, LuOptionComparer, LuOptionContext, LuOptionGroup, LuOptionGroupByContext, LuOptionGrouping, TreeGenerator, TreeGroupingFn, TreeNode };
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, InjectionToken, EnvironmentProviders, OnDestroy, Injector, TemplateRef, Provider, AfterViewInit } from '@angular/core';
2
+ import { OnDestroy, InjectionToken, EnvironmentProviders, OnInit, Injector, TemplateRef, Provider, AfterViewInit } from '@angular/core';
3
3
  import * as _lucca_front_ng_dialog from '@lucca-front/ng/dialog';
4
4
  import { LuTranslation } from '@lucca-front/ng/core';
5
5
  import { BaseRouteReuseStrategy, ActivatedRouteSnapshot, CanDeactivateFn, DeprecatedGuard, GuardResult, Route } from '@angular/router';
@@ -28,14 +28,15 @@ declare class DialogHeaderSubtitle {
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogHeaderSubtitle, never>;
29
29
  static ɵdir: i0.ɵɵDirectiveDeclaration<DialogHeaderSubtitle, "[dialogHeaderSubtitle]", never, {}, {}, never, never, true, never>;
30
30
  }
31
- declare class DialogHeaderComponent implements OnInit {
31
+ declare class DialogHeaderComponent implements OnDestroy {
32
32
  #private;
33
33
  intl: i0.InputSignalWithTransform<_lucca_front_ng_dialog.LuDialogHeaderTranslations, Partial<_lucca_front_ng_dialog.LuDialogHeaderTranslations>>;
34
34
  dismissible: boolean;
35
+ constructor();
35
36
  close(): void;
36
37
  optionalAction: i0.Signal<DialogHeaderAction>;
37
38
  optionalSubtitle: i0.Signal<DialogHeaderSubtitle>;
38
- ngOnInit(): void;
39
+ ngOnDestroy(): void;
39
40
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogHeaderComponent, never>;
40
41
  static ɵcmp: i0.ɵɵComponentDeclaration<DialogHeaderComponent, "lu-dialog-header", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; }, {}, ["optionalAction", "optionalSubtitle"], ["[dialogHeaderAction]", "*", "[dialogHeaderSubtitle]", "[dialogHeaderContent]"], true, never>;
41
42
  }
@@ -93,6 +93,7 @@ declare class FilterPillComponent {
93
93
  constructor();
94
94
  hostClick(): void;
95
95
  popoverOpened(): void;
96
+ popoverClosed(): void;
96
97
  closePopover: () => void;
97
98
  updatePosition: () => void;
98
99
  clear(): void;
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Signal, WritableSignal, OnInit, OnDestroy, ElementRef, ViewContainerRef, TemplateRef } from '@angular/core';
3
3
  import * as lexical from 'lexical';
4
- import { LexicalEditor, Klass, LexicalNode, LexicalNodeReplacement, NodeKey, EditorConfig, DOMExportOutput, DecoratorNode, DOMConversionMap, Spread, SerializedLexicalNode, LexicalUpdateJSON, TextFormatType } from 'lexical';
4
+ import { LexicalEditor, Klass, LexicalNode, LexicalNodeReplacement, NodeKey, EditorConfig, ElementDOMSlot, DOMExportOutput, DecoratorNode, DOMConversionMap, Spread, SerializedLexicalNode, LexicalUpdateJSON, TextFormatType } from 'lexical';
5
5
  import { ControlValueAccessor, FormControl } from '@angular/forms';
6
6
  import { DomPortal } from '@angular/cdk/portal';
7
7
  import { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';
@@ -132,8 +132,10 @@ declare class PopoverLinkNode extends LinkNode {
132
132
  templateRef?: TemplateRef<LinkTemplateContext>;
133
133
  }, key?: NodeKey);
134
134
  createDOM(config: EditorConfig): HTMLElement;
135
+ getDOMSlot(element: HTMLElement): ElementDOMSlot;
135
136
  updateDOM(prevNode: this): boolean;
136
137
  exportDOM(editor: LexicalEditor): DOMExportOutput;
138
+ static importDOM(): lexical.DOMConversionMap;
137
139
  remove(preserveEmptyParent?: boolean): void;
138
140
  static importJSON(serializedNode: SerializedLinkNode): PopoverLinkNode;
139
141
  static clone(node: PopoverLinkNode): PopoverLinkNode;
@@ -151,8 +153,10 @@ declare class PopoverAutoLinkNode extends AutoLinkNode {
151
153
  templateRef?: TemplateRef<LinkTemplateContext>;
152
154
  }, key?: NodeKey);
153
155
  createDOM(config: EditorConfig): HTMLElement;
156
+ getDOMSlot(element: HTMLElement): ElementDOMSlot;
154
157
  updateDOM(prevNode: this): boolean;
155
158
  exportDOM(editor: LexicalEditor): DOMExportOutput;
159
+ static importDOM(): null;
156
160
  remove(preserveEmptyParent?: boolean): void;
157
161
  static importJSON(serializedNode: SerializedAutoLinkNode): PopoverAutoLinkNode;
158
162
  static clone(node: PopoverAutoLinkNode): PopoverAutoLinkNode;
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, Signal, WritableSignal, AfterViewInit, ElementRef, OnInit, InjectionToken } from '@angular/core';
2
+ import { OnDestroy, OnInit, Signal, WritableSignal, AfterViewInit, ElementRef, InjectionToken } from '@angular/core';
3
3
  import * as _angular_forms from '@angular/forms';
4
4
  import { NgModel, FormControlDirective, FormControlName, NgControl, FormControl, ControlValueAccessor, ValidatorFn } from '@angular/forms';
5
5
  import { FilterPillInputComponent, FilterPillLayout } from '@lucca-front/ng/filter-pills';
@@ -39,7 +39,8 @@ declare class NoopValueAccessorDirective implements ControlValueAccessor {
39
39
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NoopValueAccessorDirective, "[luNoopValueAccessor]", never, {}, {}, never, never, true, never>;
40
40
  }
41
41
 
42
- declare class CheckboxInputComponent implements FilterPillInputComponent {
42
+ declare class CheckboxInputComponent implements FilterPillInputComponent, OnInit {
43
+ #private;
43
44
  framed: boolean;
44
45
  parentInput: FilterPillInputComponent;
45
46
  formField: FormFieldComponent;
@@ -62,7 +63,16 @@ declare class CheckboxInputComponent implements FilterPillInputComponent {
62
63
  ngControl: _angular_forms.NgModel | _angular_forms.FormControlDirective | _angular_forms.FormControlName | (_angular_forms.NgControl & {
63
64
  control: _angular_forms.FormControl<any>;
64
65
  });
66
+ /**
67
+ * Reactive mirrors of the control's value/disabled state, so the filter pill button
68
+ * (rendered with OnPush) reflects programmatic changes such as a form reset without
69
+ * needing a DOM event to trigger change detection. Initialized in `ngOnInit` because
70
+ * `ngControl.control` is only wired once the control directive's `ngOnChanges` has run.
71
+ */
72
+ protected checkboxValue: Signal<boolean>;
73
+ protected isCheckboxDisabled: Signal<boolean>;
65
74
  constructor();
75
+ ngOnInit(): void;
66
76
  clearFilterPillValue(): void;
67
77
  registerFilterPillClosePopover(_closeFn: () => void): void;
68
78
  enableFilterPillMode?(): void;
@@ -307,6 +317,7 @@ declare class TextInputComponent {
307
317
  protected showPassword: _angular_core.WritableSignal<boolean>;
308
318
  protected typeRef: _angular_core.Signal<TextFieldType>;
309
319
  protected hasTogglePasswordVisibilityIcon: _angular_core.Signal<boolean>;
320
+ protected hasValue(): boolean;
310
321
  clearValue(): void;
311
322
  togglePasswordVisibility(): void;
312
323
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextInputComponent, never>;
@@ -377,7 +388,7 @@ interface LuColorLabel {
377
388
 
378
389
  declare class ColorInputComponent {
379
390
  intl: _angular_core.InputSignalWithTransform<LuColorLabel, Partial<LuColorLabel>>;
380
- pointerNavigation: _angular_core.WritableSignal<boolean>;
391
+ pointerNavigation: Signal<boolean>;
381
392
  mouseHighlighted: _angular_core.WritableSignal<string>;
382
393
  keyboardHighlighted: _angular_core.WritableSignal<string>;
383
394
  highlighted: Signal<string>;
@@ -391,8 +402,6 @@ declare class ColorInputComponent {
391
402
  currentColorPresentation: Signal<ColorOption | null>;
392
403
  constructor();
393
404
  filteredColors: Signal<ColorOption[]>;
394
- onKeydown(): void;
395
- onMousemove(): void;
396
405
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColorInputComponent, never>;
397
406
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColorInputComponent, "lu-color-input", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "colors": { "alias": "colors"; "required": true; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof NoopValueAccessorDirective; inputs: {}; outputs: {}; }]>;
398
407
  }