@lucca-front/ng 21.0.0 → 21.0.1

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 (39) hide show
  1. package/fesm2022/lucca-front-ng-box.mjs +4 -2
  2. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +23 -2
  4. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +57 -10
  6. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +1 -22
  8. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  10. package/package.json +3 -19
  11. package/schematics/alignment-utilities/index.js +21 -0
  12. package/schematics/alignment-utilities/migration.spec.js +50 -0
  13. package/schematics/alignment-utilities/schema.json +23 -0
  14. package/schematics/collection.json +10 -0
  15. package/schematics/component-path/index.js +22 -0
  16. package/schematics/component-path/migration.spec.js +50 -0
  17. package/schematics/component-path/schema.json +23 -0
  18. package/schematics/lib/component-mapper.js +54 -0
  19. package/schematics/lib/css-mapper.js +9 -32
  20. package/schematics/lib/html-ast.js +1 -1
  21. package/schematics/lib/schematic.utils.js +29 -0
  22. package/schematics/palettes/index.js +4 -2
  23. package/types/lucca-front-ng-box.d.ts +2 -1
  24. package/types/lucca-front-ng-forms-rich-text-input-formatters-markdown.d.ts +11 -2
  25. package/types/lucca-front-ng-forms-rich-text-input-formatters-plain-text.d.ts +18 -6
  26. package/types/lucca-front-ng-forms-rich-text-input.d.ts +36 -12
  27. package/types/lucca-front-ng-loading.d.ts +4 -1
  28. package/fesm2022/lucca-front-ng-scrollBox.mjs +0 -6
  29. package/fesm2022/lucca-front-ng-scrollBox.mjs.map +0 -1
  30. package/fesm2022/lucca-front-ng-segmentedControl.mjs +0 -6
  31. package/fesm2022/lucca-front-ng-segmentedControl.mjs.map +0 -1
  32. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs +0 -6
  33. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs.map +0 -1
  34. package/fesm2022/lucca-front-ng-statusBadge.mjs +0 -6
  35. package/fesm2022/lucca-front-ng-statusBadge.mjs.map +0 -1
  36. package/types/lucca-front-ng-scrollBox.d.ts +0 -1
  37. package/types/lucca-front-ng-segmentedControl.d.ts +0 -1
  38. package/types/lucca-front-ng-segmentedControlTabs.d.ts +0 -1
  39. package/types/lucca-front-ng-statusBadge.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-loading.mjs","sources":["../../../packages/ng/loading/loading.component.ts","../../../packages/ng/loading/lucca-front-ng-loading.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, effect, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuClass } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-loading',\n\tproviders: [LuClass],\n\tstyleUrl: './loading.component.scss',\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'loading',\n\t\t'[class.mod-block]': 'block()',\n\t\t'[class.mod-invert]': 'invert()',\n\t\t'[class.mod-L]': 'size() === \"L\"',\n\t},\n})\nexport class LoadingComponent {\n\t#luClass = inject(LuClass);\n\n\treadonly size = input<'L' | null>(null);\n\treadonly invert = input(false, { transform: booleanAttribute });\n\treadonly block = input(false, { transform: booleanAttribute });\n\treadonly template = input<'popin' | 'drawer' | 'fullpage' | null>(null);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.template()}`]: !!this.template(),\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAiBa,gBAAgB,CAAA;AAC5B,IAAA,QAAQ;AAOR,IAAA,WAAA,GAAA;AAPA,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AAEjB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAa,IAAI,gDAAC;QAC9B,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,mDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QACtD,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,KAAK,kDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACrD,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAyC,IAAI,oDAAC;QAGtE,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACtB,gBAAA,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC7C,aAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACH;8GAdY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAZjB,CAAC,OAAO,CAAC,0BAEV,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,u2HAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAUd,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,SAAA,EACX,CAAC,OAAO,CAAC,YAEV,gBAAgB,EAAA,aAAA,EACX,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACL,wBAAA,KAAK,EAAE,SAAS;AAChB,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,oBAAoB,EAAE,UAAU;AAChC,wBAAA,eAAe,EAAE,gBAAgB;AACjC,qBAAA,EAAA,MAAA,EAAA,CAAA,u2HAAA,CAAA,EAAA;;;ACfF;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-loading.mjs","sources":["../../../packages/ng/loading/loading.component.ts","../../../packages/ng/loading/lucca-front-ng-loading.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, effect, inject, input, ViewEncapsulation } from '@angular/core';\nimport { LuClass } from '@lucca-front/ng/core';\n\ntype DisplayMode =\n\t| 'popin'\n\t| 'drawer'\n\t| 'fullPage'\n\t/** @deprecated use 'fullPage' instead */\n\t| 'fullpage';\n\n@Component({\n\tselector: 'lu-loading',\n\tproviders: [LuClass],\n\tstyleUrl: './loading.component.scss',\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'loading',\n\t\t'[class.mod-block]': 'block()',\n\t\t'[class.mod-invert]': 'invert()',\n\t\t'[class.mod-L]': 'size() === \"L\"',\n\t},\n})\nexport class LoadingComponent {\n\t#luClass = inject(LuClass);\n\n\treadonly size = input<'L' | null>(null);\n\treadonly invert = input(false, { transform: booleanAttribute });\n\treadonly block = input(false, { transform: booleanAttribute });\n\treadonly template = input<DisplayMode | null>(null);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.template()}`]: !!this.template(),\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/ng",
3
- "version": "21.0.0",
3
+ "version": "21.0.1",
4
4
  "description": "A library of icons made by the team @Lucca",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,8 +27,8 @@
27
27
  "@angular/core": "^20.0.0 || ^21.0.0",
28
28
  "@angular/cdk": "^20.0.0 || ^21.0.0",
29
29
  "@angular/animations": "^20.0.0 || ^21.0.0",
30
- "@lucca-front/icons": "21.0.0",
31
- "@lucca-front/scss": "21.0.0",
30
+ "@lucca-front/icons": "21.0.1",
31
+ "@lucca-front/scss": "21.0.1",
32
32
  "isomorphic-dompurify": "^2.17.0",
33
33
  "date-fns": "^3.6.0",
34
34
  "ngx-mask": "^20.0.3",
@@ -406,10 +406,6 @@
406
406
  "types": "./types/lucca-front-ng-scroll-box.d.ts",
407
407
  "default": "./fesm2022/lucca-front-ng-scroll-box.mjs"
408
408
  },
409
- "./scrollBox": {
410
- "types": "./types/lucca-front-ng-scrollBox.d.ts",
411
- "default": "./fesm2022/lucca-front-ng-scrollBox.mjs"
412
- },
413
409
  "./segmented-control": {
414
410
  "types": "./types/lucca-front-ng-segmented-control.d.ts",
415
411
  "default": "./fesm2022/lucca-front-ng-segmented-control.mjs"
@@ -418,14 +414,6 @@
418
414
  "types": "./types/lucca-front-ng-segmented-control-tabs.d.ts",
419
415
  "default": "./fesm2022/lucca-front-ng-segmented-control-tabs.mjs"
420
416
  },
421
- "./segmentedControl": {
422
- "types": "./types/lucca-front-ng-segmentedControl.d.ts",
423
- "default": "./fesm2022/lucca-front-ng-segmentedControl.mjs"
424
- },
425
- "./segmentedControlTabs": {
426
- "types": "./types/lucca-front-ng-segmentedControlTabs.d.ts",
427
- "default": "./fesm2022/lucca-front-ng-segmentedControlTabs.mjs"
428
- },
429
417
  "./select": {
430
418
  "types": "./types/lucca-front-ng-select.d.ts",
431
419
  "default": "./fesm2022/lucca-front-ng-select.mjs"
@@ -454,10 +442,6 @@
454
442
  "types": "./types/lucca-front-ng-status-badge.d.ts",
455
443
  "default": "./fesm2022/lucca-front-ng-status-badge.mjs"
456
444
  },
457
- "./statusBadge": {
458
- "types": "./types/lucca-front-ng-statusBadge.d.ts",
459
- "default": "./fesm2022/lucca-front-ng-statusBadge.mjs"
460
- },
461
445
  "./table-of-content": {
462
446
  "types": "./types/lucca-front-ng-table-of-content.d.ts",
463
447
  "default": "./fesm2022/lucca-front-ng-table-of-content.mjs"
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const css_mapper_1 = require("../lib/css-mapper");
4
+ const lf_schematic_context_1 = require("../lib/lf-schematic-context");
5
+ // Nx need to see "@angular-devkit/schematics" in order to run this migration correctly (see https://github.com/nrwl/nx/blob/d9fed4b832bf01d1b9a44ae9e486a5e5cd2d2253/packages/nx/src/command-line/migrate/migrate.ts#L1729-L1738)
6
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
7
+ require('@angular-devkit/schematics');
8
+ exports.default = (options) => {
9
+ return async (tree, context) => {
10
+ await lf_schematic_context_1.currentSchematicContext.init(context, options);
11
+ await new css_mapper_1.CssMapper(tree, {
12
+ classes: {
13
+ 'u-textLeft': 'pr-u-textAlignStart',
14
+ 'u-textCenter': 'pr-u-textAlignCenter',
15
+ 'u-textRight': 'pr-u-textAlignEnd'
16
+ },
17
+ variables: {},
18
+ mixins: {}
19
+ }, {}).run();
20
+ };
21
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const glob = require("glob");
5
+ const path = require("path");
6
+ const migration_test_js_1 = require("../lib/migration-test.js");
7
+ const collectionPath = path.normalize(path.join(__dirname, '..', 'collection.json'));
8
+ const testsRoot = path.join(__dirname, 'tests');
9
+ const files = fs.readdirSync(testsRoot);
10
+ describe('Alignment utilities Migration', () => {
11
+ it('should update files', async () => {
12
+ // Arrange
13
+ const tree = (0, migration_test_js_1.createTreeFromFiles)(testsRoot, files, '.input.');
14
+ const expectedTree = (0, migration_test_js_1.createTreeFromFiles)(testsRoot, files, '.output.');
15
+ // Act
16
+ try {
17
+ await (0, migration_test_js_1.runSchematic)('collection', collectionPath, 'alignment-utilities', { skipInstallation: true }, tree);
18
+ }
19
+ catch (error) {
20
+ // eslint-disable-next-line no-console
21
+ console.log(error);
22
+ }
23
+ // Assert
24
+ (0, migration_test_js_1.expectTree)(tree).toMatchTree(expectedTree);
25
+ });
26
+ // Use this to migrate @lucca-front/* packages
27
+ it.skip('should migrate @lucca-front/*', async () => {
28
+ // Arrange
29
+ const lfRoot = path.normalize(path.join(__dirname, '..', '..', '..', '..'));
30
+ const lfFiles = [
31
+ ...glob.sync('packages/icons/**/*.scss', { cwd: lfRoot, nodir: true }),
32
+ ...glob.sync('packages/scss/**/*.scss', { cwd: lfRoot, nodir: true }),
33
+ ...glob.sync('packages/ng/**/*', { cwd: lfRoot, nodir: true, ignore: ['**/schematics/**'] }),
34
+ ...glob.sync('stories/**', { cwd: lfRoot, nodir: true }),
35
+ ];
36
+ const treeOriginalTree = (0, migration_test_js_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
37
+ const tree = (0, migration_test_js_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
38
+ // Act
39
+ await (0, migration_test_js_1.runSchematic)('collection', collectionPath, 'alignment-utilities', { skipInstallation: true }, tree);
40
+ // Assert
41
+ tree.visit((p, entry) => {
42
+ const original = treeOriginalTree.get(p)?.content.toString() || '';
43
+ const updated = entry?.content.toString() || '';
44
+ if (original !== updated) {
45
+ const fromRootPath = path.join(lfRoot, p);
46
+ fs.writeFileSync(fromRootPath, updated);
47
+ }
48
+ });
49
+ });
50
+ });
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "LuccaFrontAlignmentUtilities",
4
+ "title": "Lucca Front Alignment Utilities Schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "dryRun": {
8
+ "type": "boolean",
9
+ "description": "Run through the migration without making any changes.",
10
+ "default": false
11
+ },
12
+ "skipInstall": {
13
+ "type": "boolean",
14
+ "description": "Skip installing dependencies.",
15
+ "default": false
16
+ },
17
+ "verbose": {
18
+ "type": "boolean",
19
+ "description": "Enable verbose logging.",
20
+ "default": false
21
+ }
22
+ }
23
+ }
@@ -36,6 +36,11 @@
36
36
  "factory": "./class-prefix/index",
37
37
  "schema": "./class-prefix/schema.json"
38
38
  },
39
+ "component-path": {
40
+ "description": "Update path component import",
41
+ "factory": "./component-path/index",
42
+ "schema": "./component-path/schema.json"
43
+ },
39
44
  "tokens-typo": {
40
45
  "description": "Replace typography tokens with new names.",
41
46
  "factory": "./tokens-typo/index",
@@ -51,6 +56,11 @@
51
56
  "factory": "./palettes/index",
52
57
  "schema": "./palettes/schema.json"
53
58
  },
59
+ "alignment-utilities": {
60
+ "description": "Replace alignment utilities tokens.",
61
+ "factory": "./alignment-utilities/index",
62
+ "schema": "./alignment-utilities/schema.json"
63
+ },
54
64
  "action-icon": {
55
65
  "description": "Replace actionIcon usages with button mod-onlyIcon",
56
66
  "factory": "./action-icon/index",
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const component_mapper_1 = require("../lib/component-mapper");
4
+ const lf_schematic_context_1 = require("../lib/lf-schematic-context");
5
+ // Nx need to see "@angular-devkit/schematics" in order to run this migration correctly (see https://github.com/nrwl/nx/blob/d9fed4b832bf01d1b9a44ae9e486a5e5cd2d2253/packages/nx/src/command-line/migrate/migrate.ts#L1729-L1738)
6
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
7
+ require('@angular-devkit/schematics');
8
+ exports.default = (options) => {
9
+ return async (tree, context) => {
10
+ await lf_schematic_context_1.currentSchematicContext.init(context, options);
11
+ new component_mapper_1.ComponentMapper(tree, {
12
+ paths: {
13
+ "@lucca-front/ng/scrollBox": "@lucca-front/ng/scroll-box",
14
+ "@lucca-front/ng/segmentedControl": "@lucca-front/ng/segmented-control",
15
+ "@lucca-front/ng/segmentedControlTabs": "@lucca-front/ng/segmented-control-tabs",
16
+ "@lucca-front/ng/statusBadge": "@lucca-front/ng/status-badge"
17
+ },
18
+ components: {},
19
+ selectors: {}
20
+ }).run();
21
+ };
22
+ };
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const glob = require("glob");
5
+ const path = require("path");
6
+ const migration_test_js_1 = require("../lib/migration-test.js");
7
+ const collectionPath = path.normalize(path.join(__dirname, '..', 'collection.json'));
8
+ const testsRoot = path.join(__dirname, 'tests');
9
+ const files = fs.readdirSync(testsRoot);
10
+ describe('Component path Migration', () => {
11
+ it('should update files', async () => {
12
+ // Arrange
13
+ const tree = (0, migration_test_js_1.createTreeFromFiles)(testsRoot, files, '.input.');
14
+ const expectedTree = (0, migration_test_js_1.createTreeFromFiles)(testsRoot, files, '.output.');
15
+ // Act
16
+ try {
17
+ await (0, migration_test_js_1.runSchematic)('collection', collectionPath, 'component-path', { skipInstallation: true }, tree);
18
+ }
19
+ catch (error) {
20
+ //eslint-disable-next-line no-console
21
+ console.log(error);
22
+ }
23
+ // Assert
24
+ (0, migration_test_js_1.expectTree)(tree).toMatchTree(expectedTree);
25
+ });
26
+ // Use this to migrate @lucca-front/* packages
27
+ it.skip('should migrate @lucca-front/*', async () => {
28
+ // Arrange
29
+ const lfRoot = path.normalize(path.join(__dirname, '..', '..', '..', '..'));
30
+ const lfFiles = [
31
+ ...glob.sync('packages/icons/**/*.scss', { cwd: lfRoot, nodir: true }),
32
+ ...glob.sync('packages/scss/**/*.scss', { cwd: lfRoot, nodir: true }),
33
+ ...glob.sync('packages/ng/**/*', { cwd: lfRoot, nodir: true, ignore: ['**/schematics/**'] }),
34
+ ...glob.sync('stories/**', { cwd: lfRoot, nodir: true }),
35
+ ];
36
+ const treeOriginalTree = (0, migration_test_js_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
37
+ const tree = (0, migration_test_js_1.createTreeFromFiles)(lfRoot, lfFiles, '.');
38
+ // Act
39
+ await (0, migration_test_js_1.runSchematic)('collection', collectionPath, 'component-path', { skipInstallation: true }, tree);
40
+ // Assert
41
+ tree.visit((p, entry) => {
42
+ const original = treeOriginalTree.get(p)?.content.toString() || '';
43
+ const updated = entry?.content.toString() || '';
44
+ if (original !== updated) {
45
+ const fromRootPath = path.join(lfRoot, p);
46
+ fs.writeFileSync(fromRootPath, updated);
47
+ }
48
+ });
49
+ });
50
+ });
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "LuccaFrontComponentPath",
4
+ "title": "Lucca Front Component Path Schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "dryRun": {
8
+ "type": "boolean",
9
+ "description": "Run through the migration without making any changes.",
10
+ "default": false
11
+ },
12
+ "skipInstall": {
13
+ "type": "boolean",
14
+ "description": "Skip installing dependencies.",
15
+ "default": false
16
+ },
17
+ "verbose": {
18
+ "type": "boolean",
19
+ "description": "Enable verbose logging.",
20
+ "default": false
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComponentMapper = void 0;
4
+ const typescript_1 = require("typescript");
5
+ const angular_template_1 = require("./angular-template");
6
+ const file_update_1 = require("./file-update");
7
+ const schematic_utils_1 = require("./schematic.utils");
8
+ const schematics_1 = require("./schematics");
9
+ class ComponentMapper {
10
+ constructor(tree, rawMappings, mappingProps) {
11
+ this.tree = tree;
12
+ this.rawMappings = rawMappings;
13
+ this.mappingProps = mappingProps;
14
+ this.mappings = {
15
+ paths: (0, schematic_utils_1.expand)(this.rawMappings.paths, this.mappingProps),
16
+ components: (0, schematic_utils_1.expand)(this.rawMappings.components, this.mappingProps),
17
+ selectors: (0, schematic_utils_1.expand)(this.rawMappings.selectors, this.mappingProps)
18
+ };
19
+ this.pathsToUpdate = new Set(Object.keys(this.mappings.paths));
20
+ }
21
+ run() {
22
+ this.tree.visit((path, entry) => {
23
+ if (path.includes('node_modules') || !entry) {
24
+ return;
25
+ }
26
+ if (path.endsWith('.ts')) {
27
+ (0, schematics_1.migrateFile)(path, entry, this.tree, (content) => this.migrateTsFile(path, content));
28
+ }
29
+ else {
30
+ return;
31
+ }
32
+ });
33
+ }
34
+ migrateTsFile(fileName, content) {
35
+ const sourcefile = (0, typescript_1.createSourceFile)(fileName, content, typescript_1.ScriptTarget.ESNext);
36
+ const updates = [];
37
+ (0, typescript_1.forEachChild)(sourcefile, (0, angular_template_1.createVisitor)(typescript_1.isStringLiteral, (node) => {
38
+ const newText = this.updatePathText(node.text);
39
+ if (newText !== null && newText !== node.text) {
40
+ const position = node.pos + node.getLeadingTriviaWidth(sourcefile) /* Spaces before the single/double quote */ + 1; /* Single or double quote before the string content */
41
+ updates.push({
42
+ position,
43
+ oldContent: node.text,
44
+ newContent: newText
45
+ });
46
+ }
47
+ }));
48
+ return (0, file_update_1.applyUpdates)(content, updates);
49
+ }
50
+ updatePathText(text) {
51
+ return this.pathsToUpdate.has(text) ? this.mappings.paths[text] || text : null;
52
+ }
53
+ }
54
+ exports.ComponentMapper = ComponentMapper;
@@ -1,23 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CssMapper = void 0;
4
- const schematics_1 = require("./schematics");
5
- const scss_ast_1 = require("./scss-ast");
6
- const html_ast_1 = require("./html-ast");
7
- const file_update_1 = require("./file-update");
8
4
  const typescript_1 = require("typescript");
9
- const typescript_ast_1 = require("./typescript-ast");
10
5
  const angular_template_1 = require("./angular-template");
6
+ const file_update_1 = require("./file-update");
7
+ const html_ast_1 = require("./html-ast");
11
8
  const lf_schematic_context_1 = require("./lf-schematic-context");
9
+ const schematic_utils_1 = require("./schematic.utils");
10
+ const schematics_1 = require("./schematics");
11
+ const scss_ast_1 = require("./scss-ast");
12
+ const typescript_ast_1 = require("./typescript-ast");
12
13
  class CssMapper {
13
14
  constructor(tree, rawMappings, mappingProps) {
14
15
  this.tree = tree;
15
16
  this.rawMappings = rawMappings;
16
17
  this.mappingProps = mappingProps;
17
18
  this.mappings = {
18
- classes: this.expand(this.rawMappings.classes),
19
- variables: this.expand(this.rawMappings.variables),
20
- mixins: this.expand(this.rawMappings.mixins)
19
+ classes: (0, schematic_utils_1.expand)(this.rawMappings.classes, this.mappingProps),
20
+ variables: (0, schematic_utils_1.expand)(this.rawMappings.variables, this.mappingProps),
21
+ mixins: (0, schematic_utils_1.expand)(this.rawMappings.mixins, this.mappingProps)
21
22
  };
22
23
  this.classesToUpdate = new Set(Object.keys(this.mappings.classes));
23
24
  this.varsToUpdate = new Set(Object.keys(this.mappings.variables));
@@ -118,29 +119,5 @@ class CssMapper {
118
119
  }
119
120
  return text;
120
121
  }
121
- camelize(str) {
122
- return str[0].toLowerCase() + str.slice(1);
123
- }
124
- pascalize(str) {
125
- return str[0].toUpperCase() + str.slice(1);
126
- }
127
- expand(rawMapping) {
128
- const props = this.mappingProps || {};
129
- const replaceValue = (oldValue, map, newValue) => {
130
- return oldValue.replace(`{${map}}`, newValue).replace(`{${this.pascalize(map)}}`, this.pascalize(newValue));
131
- };
132
- return Object.fromEntries(Object.entries(rawMapping).flatMap(([oldTemplate, newTemplate]) => {
133
- const placeholders = [...oldTemplate.matchAll(/\{(\w*)}/g)].map(([, template]) => template);
134
- let values = [[oldTemplate, newTemplate]];
135
- for (const placeholder of placeholders) {
136
- const map = this.camelize(placeholder);
137
- if (!map || !(map in props)) {
138
- throw new Error(`No mapping for ${map} found`);
139
- }
140
- values = values.flatMap(([oldVal, newVal]) => Object.entries(props[map]).map(([key, value]) => [replaceValue(oldVal, map, key), replaceValue(newVal, map, value)]));
141
- }
142
- return values;
143
- }));
144
- }
145
122
  }
146
123
  exports.CssMapper = CssMapper;
@@ -6,8 +6,8 @@ exports.extractAllCssClassNames = extractAllCssClassNames;
6
6
  exports.extractAllHtmlElementNames = extractAllHtmlElementNames;
7
7
  const typescript_1 = require("typescript");
8
8
  const file_update_js_1 = require("./file-update.js");
9
- const typescript_ast_js_1 = require("./typescript-ast.js");
10
9
  const lf_schematic_context_1 = require("./lf-schematic-context");
10
+ const typescript_ast_js_1 = require("./typescript-ast.js");
11
11
  class HtmlAstVisitor {
12
12
  constructor(nodes) {
13
13
  this.nodes = Array.isArray(nodes) ? nodes : [nodes];
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.camelize = camelize;
4
+ exports.pascalize = pascalize;
5
+ exports.expand = expand;
6
+ function camelize(str) {
7
+ return str[0].toLowerCase() + str.slice(1);
8
+ }
9
+ function pascalize(str) {
10
+ return str[0].toUpperCase() + str.slice(1);
11
+ }
12
+ function expand(rawMapping, mappingProps) {
13
+ const props = mappingProps || {};
14
+ const replaceValue = (oldValue, map, newValue) => {
15
+ return oldValue.replace(`{${map}}`, newValue).replace(`{${pascalize(map)}}`, pascalize(newValue));
16
+ };
17
+ return Object.fromEntries(Object.entries(rawMapping).flatMap(([oldTemplate, newTemplate]) => {
18
+ const placeholders = [...oldTemplate.matchAll(/\{(\w*)}/g)].map(([, template]) => template);
19
+ let values = [[oldTemplate, newTemplate]];
20
+ for (const placeholder of placeholders) {
21
+ const map = camelize(placeholder);
22
+ if (!map || !(map in props)) {
23
+ throw new Error(`No mapping for ${map} found`);
24
+ }
25
+ values = values.flatMap(([oldVal, newVal]) => Object.entries(props[map]).map(([key, value]) => [replaceValue(oldVal, map, key), replaceValue(newVal, map, value)]));
26
+ }
27
+ return values;
28
+ }));
29
+ }
@@ -13,14 +13,16 @@ exports.default = (options) => {
13
13
  'palette-grey': 'palette-neutral',
14
14
  'palette-primary': 'palette-product',
15
15
  'palette-secondary': 'palette-product',
16
- 'palette-lucca': 'palette-brand'
16
+ 'palette-lucca': 'palette-brand',
17
17
  },
18
18
  variables: {
19
19
  '--palettes-grey-{val}': `--palettes-neutral-{val}`,
20
20
  '--palettes-primary-{val}': `--palettes-product-{val}`,
21
21
  '--palettes-secondary-{val}': `--palettes-product-{val}`,
22
22
  '--palettes-lucca-{val}': `--palettes-brand-{val}`,
23
- '--colors-grey-{val}': `--colors-neutral-{val}`
23
+ '--colors-grey-{val}': `--palettes-neutral-{val}`,
24
+ '--colors-white-color': '—-palettes-neutral-0',
25
+ '--colors-black-color': '—-palettes-neutral-900'
24
26
  },
25
27
  mixins: {}
26
28
  }, {
@@ -4,8 +4,9 @@ declare class BoxComponent {
4
4
  readonly toggle: _angular_core.InputSignalWithTransform<boolean, unknown>;
5
5
  readonly neutral: _angular_core.InputSignalWithTransform<boolean, unknown>;
6
6
  readonly killable: _angular_core.InputSignalWithTransform<boolean, unknown>;
7
+ readonly withArrow: _angular_core.InputSignalWithTransform<boolean, unknown>;
7
8
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BoxComponent, never>;
8
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BoxComponent, "lu-box", never, { "toggle": { "alias": "toggle"; "required": false; "isSignal": true; }; "neutral": { "alias": "neutral"; "required": false; "isSignal": true; }; "killable": { "alias": "killable"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BoxComponent, "lu-box", never, { "toggle": { "alias": "toggle"; "required": false; "isSignal": true; }; "neutral": { "alias": "neutral"; "required": false; "isSignal": true; }; "killable": { "alias": "killable"; "required": false; "isSignal": true; }; "withArrow": { "alias": "withArrow"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
10
  }
10
11
 
11
12
  export { BoxComponent };
@@ -1,5 +1,5 @@
1
1
  import { Provider } from '@angular/core';
2
- import { Transformer } from '@lexical/markdown';
2
+ import { Transformer, TextMatchTransformer } from '@lexical/markdown';
3
3
  import { RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';
4
4
  import { LexicalEditor } from 'lexical';
5
5
 
@@ -13,4 +13,13 @@ declare class MarkdownFormatter extends RichTextFormatter {
13
13
  }
14
14
  declare function provideLuRichTextMarkdownFormatter(transformers?: Transformer[]): Provider;
15
15
 
16
- export { DEFAULT_MARKDOWN_TRANSFORMERS, MarkdownFormatter, provideLuRichTextMarkdownFormatter };
16
+ /**
17
+ * Transformer for tag nodes
18
+ * It will match the following pattern `{{Tag}}` and create a TagNode (using `replace` function).
19
+ * It will export the tag node to markdown (as `{{Tag}}`) using the `export` function.
20
+ *
21
+ * @docs https://github.com/facebook/lexical/tree/main/packages/lexical-markdown#transformers
22
+ */
23
+ declare const TAGS: TextMatchTransformer;
24
+
25
+ export { DEFAULT_MARKDOWN_TRANSFORMERS, MarkdownFormatter, TAGS, provideLuRichTextMarkdownFormatter };
@@ -1,15 +1,27 @@
1
1
  import { Provider } from '@angular/core';
2
- import { Transformer } from '@lexical/markdown';
3
2
  import { RichTextFormatter } from '@lucca-front/ng/forms/rich-text-input';
4
- import { LexicalEditor } from 'lexical';
3
+ import { TextNode, LexicalEditor } from 'lexical';
4
+
5
+ interface PlainTextTransformer {
6
+ regExp: RegExp;
7
+ replace: (texNode: TextNode, match: RegExpMatchArray) => void;
8
+ }
9
+
10
+ /**
11
+ * Transformer for tag nodes
12
+ * It will match the following pattern `{{Tag}}` and create a TagNode (using `replace` function).
13
+ *
14
+ */
15
+ declare const PLAINTEXT_TAGS: PlainTextTransformer;
5
16
 
6
17
  declare class PlainTextFormatter extends RichTextFormatter {
7
18
  #private;
8
- constructor(transformers?: Transformer[]);
19
+ constructor(transformers?: PlainTextTransformer[]);
9
20
  registerTextPlugin(editor: LexicalEditor): () => void;
10
- parse(editor: LexicalEditor, markdown?: string | null): void;
21
+ parse(editor: LexicalEditor, text?: string | null): void;
11
22
  format(editor: LexicalEditor): string;
12
23
  }
13
- declare function provideLuRichTextPlainTextFormatter(transformers?: Transformer[]): Provider;
24
+ declare function provideLuRichTextPlainTextFormatter(transformers?: PlainTextTransformer[]): Provider;
14
25
 
15
- export { PlainTextFormatter, provideLuRichTextPlainTextFormatter };
26
+ export { PLAINTEXT_TAGS, PlainTextFormatter, provideLuRichTextPlainTextFormatter };
27
+ export type { PlainTextTransformer };
@@ -1,11 +1,10 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Signal, WritableSignal, OnInit, OnDestroy, ElementRef, ViewContainerRef, TemplateRef, AfterViewInit } from '@angular/core';
3
3
  import * as lexical from 'lexical';
4
- import { LexicalEditor, Klass, LexicalNode, LexicalNodeReplacement, CommandPayloadType, DOMExportOutput, TextFormatType } from 'lexical';
4
+ import { LexicalEditor, Klass, LexicalNode, LexicalNodeReplacement, CommandPayloadType, DOMExportOutput, Spread, SerializedLexicalNode, DecoratorNode, NodeKey, EditorConfig, DOMConversionMap, LexicalUpdateJSON, TextFormatType } from 'lexical';
5
5
  import { ControlValueAccessor, FormControl } from '@angular/forms';
6
6
  import { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';
7
7
  import { LinkNode } from '@lexical/link';
8
- import { TextMatchTransformer } from '@lexical/markdown';
9
8
  import { LuccaIcon } from '@lucca-front/icons';
10
9
 
11
10
  type UnregisterFn = () => void;
@@ -184,14 +183,39 @@ declare class RichTextPluginTagComponent implements RichTextPluginComponent, OnD
184
183
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextPluginTagComponent, "lu-rich-text-plugin-tag", never, { "tags": { "alias": "tags"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
185
184
  }
186
185
 
187
- /**
188
- * Transformer for tag nodes
189
- * It will match the following pattern `{{Tag}}` and create a TagNode (using `replace` function).
190
- * It will export the tag node to markdown (as `{{Tag}}`) using the `export` function.
191
- *
192
- * @docs https://github.com/facebook/lexical/tree/main/packages/lexical-markdown#transformers
193
- */
194
- declare const TAGS: TextMatchTransformer;
186
+ type SerializedTagNode = Spread<{
187
+ tagKey?: string;
188
+ tagDescription?: string;
189
+ disabled?: boolean;
190
+ }, SerializedLexicalNode>;
191
+ declare class TagNode extends DecoratorNode<string> {
192
+ #private;
193
+ static setViewContainerRef(vcr: ViewContainerRef): void;
194
+ constructor(tagKey?: string, tagDescription?: string, disabled?: boolean, key?: NodeKey);
195
+ isDisabled(): boolean;
196
+ setDisabled(disabled: boolean): this;
197
+ getTagKey(): string;
198
+ setTagKey(tagKey: string): this;
199
+ getTagDescription(): string;
200
+ setTagDescription(description: string): this;
201
+ static getType(): string;
202
+ static clone(node: TagNode): TagNode;
203
+ /**
204
+ * This method must be implemented but has no purpose outside of react
205
+ */
206
+ decorate(): string;
207
+ createDOM(_config: EditorConfig, editor: LexicalEditor): HTMLElement;
208
+ updateDOM(prevNode: TagNode, _dom: HTMLElement, _config: EditorConfig): boolean;
209
+ remove(preserveEmptyParent?: boolean): void;
210
+ exportDOM(): DOMExportOutput;
211
+ static importDOM(): DOMConversionMap;
212
+ static importJSON(serializedNode: SerializedTagNode): TagNode;
213
+ updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedTagNode>): this;
214
+ exportJSON(): SerializedTagNode;
215
+ getTextContent(): string;
216
+ }
217
+ declare function $createTagNode(key?: string, description?: string): TagNode;
218
+ declare function $isTagNode(node: LexicalNode | null | undefined): node is TagNode;
195
219
 
196
220
  declare class TextStyleComponent implements OnDestroy, RichTextPluginComponent {
197
221
  #private;
@@ -229,5 +253,5 @@ declare class RichTextInputToolbarComponent implements RichTextPluginComponent {
229
253
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextInputToolbarComponent, "lu-rich-text-input-toolbar", never, {}, {}, never, never, true, never>;
230
254
  }
231
255
 
232
- export { ClearFormatComponent, HeadingsComponent, INITIAL_UPDATE_TAG, LinkComponent, ListStyleToolbarComponent, RICH_TEXT_FORMATTER, RICH_TEXT_PLUGIN_COMPONENT, RichTextFormatter, RichTextInputComponent, RichTextInputToolbarComponent, RichTextPluginTagComponent, SKIP_DOM_SELECTION_TAG, TAGS, TextStyleComponent, TextStyleToolbarComponent };
233
- export type { RichTextPluginComponent, Tag };
256
+ export { $createTagNode, $isTagNode, ClearFormatComponent, HeadingsComponent, INITIAL_UPDATE_TAG, LinkComponent, ListStyleToolbarComponent, RICH_TEXT_FORMATTER, RICH_TEXT_PLUGIN_COMPONENT, RichTextFormatter, RichTextInputComponent, RichTextInputToolbarComponent, RichTextPluginTagComponent, SKIP_DOM_SELECTION_TAG, TagNode, TextStyleComponent, TextStyleToolbarComponent };
257
+ export type { RichTextPluginComponent, SerializedTagNode, Tag };
@@ -1,11 +1,14 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
 
3
+ type DisplayMode = 'popin' | 'drawer' | 'fullPage'
4
+ /** @deprecated use 'fullPage' instead */
5
+ | 'fullpage';
3
6
  declare class LoadingComponent {
4
7
  #private;
5
8
  readonly size: _angular_core.InputSignal<"L">;
6
9
  readonly invert: _angular_core.InputSignalWithTransform<boolean, unknown>;
7
10
  readonly block: _angular_core.InputSignalWithTransform<boolean, unknown>;
8
- readonly template: _angular_core.InputSignal<"popin" | "drawer" | "fullpage">;
11
+ readonly template: _angular_core.InputSignal<DisplayMode>;
9
12
  constructor();
10
13
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingComponent, never>;
11
14
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoadingComponent, "lu-loading", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "invert": { "alias": "invert"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "template": { "alias": "template"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
@@ -1,6 +0,0 @@
1
- export * from '@lucca-front/ng/scroll-box';
2
-
3
- /**
4
- * Generated bundle index. Do not edit.
5
- */
6
- //# sourceMappingURL=lucca-front-ng-scrollBox.mjs.map