@smart-coder-labs/apple-design-system 1.0.16 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/cli/commands/update-components.d.ts +2 -0
- package/dist/cli/commands/update-components.d.ts.map +1 -0
- package/dist/cli/commands/update-components.js +114 -0
- package/dist/cli/commands/update-components.js.map +1 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/package.json +29 -12
package/README.md
CHANGED
|
@@ -58,6 +58,20 @@ Esto:
|
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
61
|
+
### `update`
|
|
62
|
+
|
|
63
|
+
Actualiza los componentes instalados en tu proyecto a la última versión disponible.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npx @smart-coder-labs/apple-design-system update [Componente]
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Esto:
|
|
70
|
+
1. Comprueba si hay versiones nuevas de los componentes en tu carpeta `components/ui`.
|
|
71
|
+
2. Te pregunta antes de sobrescribir cualquier archivo.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
61
75
|
## ✨ Características
|
|
62
76
|
|
|
63
77
|
- 🎨 **Estilo Apple Premium** - Minimalista, elegante y aireado
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-components.d.ts","sourceRoot":"","sources":["../../../cli/commands/update-components.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,qBA4H5B,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.updateComponents = void 0;
|
|
7
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
const prompts_1 = __importDefault(require("prompts"));
|
|
12
|
+
const registry_1 = require("../utils/registry");
|
|
13
|
+
const updateComponents = async () => {
|
|
14
|
+
// 1. Load config
|
|
15
|
+
let config = { componentsDir: "./components/ui" };
|
|
16
|
+
if (fs_extra_1.default.existsSync("design-system.json")) {
|
|
17
|
+
try {
|
|
18
|
+
config = await fs_extra_1.default.readJSON("design-system.json");
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
console.warn("Could not read design-system.json, using defaults.");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.warn("design-system.json not found. Using default ./components/ui");
|
|
26
|
+
}
|
|
27
|
+
const resolvedComponentsDir = path_1.default.resolve(process.cwd(), config.componentsDir);
|
|
28
|
+
// 2. Check if components directory exists
|
|
29
|
+
if (!fs_extra_1.default.existsSync(resolvedComponentsDir)) {
|
|
30
|
+
console.log(chalk_1.default.yellow(`Components directory not found at ${config.componentsDir}`));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// 3. Get installed components
|
|
34
|
+
const spinner = (0, ora_1.default)("Scanning for installed components...").start();
|
|
35
|
+
const files = await fs_extra_1.default.readdir(resolvedComponentsDir);
|
|
36
|
+
const availableComponents = await (0, registry_1.getAvailableComponents)();
|
|
37
|
+
const installedComponents = files
|
|
38
|
+
.filter((file) => file.endsWith(".tsx") || file.endsWith(".ts"))
|
|
39
|
+
.map((file) => path_1.default.basename(file, path_1.default.extname(file)))
|
|
40
|
+
.filter((name) => availableComponents.includes(name))
|
|
41
|
+
.sort();
|
|
42
|
+
spinner.stop();
|
|
43
|
+
if (installedComponents.length === 0) {
|
|
44
|
+
console.log(chalk_1.default.yellow("No installed components found."));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
console.log(chalk_1.default.blue(`\nFound ${installedComponents.length} installed components:\n`));
|
|
48
|
+
// 4. Present selection options
|
|
49
|
+
const response = await (0, prompts_1.default)([
|
|
50
|
+
{
|
|
51
|
+
type: "select",
|
|
52
|
+
name: "updateMode",
|
|
53
|
+
message: "What would you like to do?",
|
|
54
|
+
choices: [
|
|
55
|
+
{ title: "Update all components", value: "all" },
|
|
56
|
+
{ title: "Select specific components", value: "select" },
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
]);
|
|
60
|
+
let componentsToUpdate = [];
|
|
61
|
+
if (response.updateMode === "all") {
|
|
62
|
+
componentsToUpdate = installedComponents;
|
|
63
|
+
console.log(chalk_1.default.green(`\n✓ Selected all ${installedComponents.length} components`));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// Let user select specific components
|
|
67
|
+
const selectResponse = await (0, prompts_1.default)({
|
|
68
|
+
type: "multiselect",
|
|
69
|
+
name: "items",
|
|
70
|
+
message: "Which components would you like to update?",
|
|
71
|
+
choices: installedComponents.map((c) => ({ title: c, value: c })),
|
|
72
|
+
min: 1,
|
|
73
|
+
});
|
|
74
|
+
componentsToUpdate = selectResponse.items;
|
|
75
|
+
if (!componentsToUpdate || componentsToUpdate.length === 0) {
|
|
76
|
+
console.log(chalk_1.default.yellow("No components selected."));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
console.log(chalk_1.default.green(`\n✓ Selected ${componentsToUpdate.length} components`));
|
|
80
|
+
}
|
|
81
|
+
// 5. Fetch and update components
|
|
82
|
+
const updateSpinner = (0, ora_1.default)("Updating components...").start();
|
|
83
|
+
let successCount = 0;
|
|
84
|
+
let failCount = 0;
|
|
85
|
+
for (const component of componentsToUpdate) {
|
|
86
|
+
updateSpinner.text = `Updating ${component}...`;
|
|
87
|
+
try {
|
|
88
|
+
const source = await (0, registry_1.getComponentSource)(component);
|
|
89
|
+
if (!source) {
|
|
90
|
+
updateSpinner.warn(`Component '${component}' not found in registry.`);
|
|
91
|
+
failCount++;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const destPath = path_1.default.resolve(resolvedComponentsDir, `${component}.tsx`);
|
|
95
|
+
await fs_extra_1.default.writeFile(destPath, source);
|
|
96
|
+
updateSpinner.succeed(`Updated ${component}`);
|
|
97
|
+
successCount++;
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
updateSpinner.warn(`Failed to update ${component}: ${error}`);
|
|
101
|
+
failCount++;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
updateSpinner.stop();
|
|
105
|
+
// 6. Summary
|
|
106
|
+
console.log(chalk_1.default.bold("\n=== Update Summary ==="));
|
|
107
|
+
console.log(chalk_1.default.green(`✓ Successfully updated: ${successCount} components`));
|
|
108
|
+
if (failCount > 0) {
|
|
109
|
+
console.log(chalk_1.default.red(`✗ Failed to update: ${failCount} components`));
|
|
110
|
+
}
|
|
111
|
+
console.log(chalk_1.default.bold.green("\nDone!"));
|
|
112
|
+
};
|
|
113
|
+
exports.updateComponents = updateComponents;
|
|
114
|
+
//# sourceMappingURL=update-components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-components.js","sourceRoot":"","sources":["../../../cli/commands/update-components.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -5,6 +5,7 @@ const commander_1 = require("commander");
|
|
|
5
5
|
const init_1 = require("./commands/init");
|
|
6
6
|
const add_1 = require("./commands/add");
|
|
7
7
|
const update_1 = require("./commands/update");
|
|
8
|
+
const update_components_1 = require("./commands/update-components");
|
|
8
9
|
const program = new commander_1.Command();
|
|
9
10
|
program
|
|
10
11
|
.name("apple-design-system")
|
|
@@ -24,5 +25,9 @@ program
|
|
|
24
25
|
.description("Update installed components to the latest version")
|
|
25
26
|
.argument("[components...]", "The components to update")
|
|
26
27
|
.action((components) => (0, update_1.update)(components));
|
|
28
|
+
program
|
|
29
|
+
.command("update-components")
|
|
30
|
+
.description("Interactively update components from the design system (with UI selection)")
|
|
31
|
+
.action(() => (0, update_components_1.updateComponents)());
|
|
27
32
|
program.parse();
|
|
28
33
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,0CAAuC;AACvC,wCAAqC;AACrC,8CAA2C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../cli/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,0CAAuC;AACvC,wCAAqC;AACrC,8CAA2C;AAC3C,oEAAgE;AAEhE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,qBAAqB,CAAC;KAC3B,WAAW,CAAC,8DAA8D,CAAC;KAC3E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,WAAI,CAAC,CAAC;AAEhB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;KACpD,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,SAAG,EAAC,UAAU,CAAC,CAAC,CAAC;AAE3C,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mDAAmD,CAAC;KAChE,QAAQ,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;KACvD,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAA,eAAM,EAAC,UAAU,CAAC,CAAC,CAAC;AAE9C,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,4EAA4E,CAAC;KACzF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,oCAAgB,GAAE,CAAC,CAAC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smart-coder-labs/apple-design-system",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Design system completo estilo Apple (macOS/iOS/VisionOS) con Framer Motion",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"apple-design-system",
|
|
@@ -41,10 +41,16 @@
|
|
|
41
41
|
"README.md",
|
|
42
42
|
"LICENSE"
|
|
43
43
|
],
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=20.19.0"
|
|
46
|
+
},
|
|
44
47
|
"scripts": {
|
|
45
48
|
"clean": "rm -rf dist",
|
|
46
49
|
"lint": "eslint . --ext .ts,.tsx",
|
|
47
50
|
"type-check": "tsc --noEmit",
|
|
51
|
+
"test": "vitest run",
|
|
52
|
+
"test:watch": "vitest",
|
|
53
|
+
"test:ui": "vitest --ui",
|
|
48
54
|
"build": "npm run clean && tsc -p tsconfig.build.json",
|
|
49
55
|
"build:registry": "ts-node scripts/build-registry.ts",
|
|
50
56
|
"prepublishOnly": "npm run build",
|
|
@@ -52,22 +58,23 @@
|
|
|
52
58
|
"build-storybook": "storybook build"
|
|
53
59
|
},
|
|
54
60
|
"dependencies": {
|
|
61
|
+
"canvas-confetti": "^1.9.4",
|
|
55
62
|
"chalk": "^4.1.2",
|
|
56
63
|
"commander": "^11.1.0",
|
|
57
64
|
"fs-extra": "^11.2.0",
|
|
58
|
-
"html2canvas": "^1.4.1",
|
|
59
|
-
"jspdf": "^4.0.0",
|
|
60
|
-
"markdown-it": "^14.1.0",
|
|
61
65
|
"ora": "^5.4.1",
|
|
62
|
-
"prompts": "^2.4.2"
|
|
63
|
-
"tailwind-merge": "^3.4.0",
|
|
64
|
-
"zod": "^3.22.4"
|
|
66
|
+
"prompts": "^2.4.2"
|
|
65
67
|
},
|
|
66
68
|
"devDependencies": {
|
|
67
|
-
"@storybook/addon-docs": "^10.0
|
|
68
|
-
"@storybook/addon-onboarding": "^10.0
|
|
69
|
-
"@storybook/react-vite": "^10.0
|
|
69
|
+
"@storybook/addon-docs": "^10.4.0",
|
|
70
|
+
"@storybook/addon-onboarding": "^10.4.0",
|
|
71
|
+
"@storybook/react-vite": "^10.4.0",
|
|
70
72
|
"@tailwindcss/postcss": "^4.1.18",
|
|
73
|
+
"@testing-library/dom": "^10.4.1",
|
|
74
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
75
|
+
"@testing-library/react": "^16.3.2",
|
|
76
|
+
"@testing-library/user-event": "^14.6.1",
|
|
77
|
+
"@types/canvas-confetti": "^1.9.0",
|
|
71
78
|
"@types/fs-extra": "^11.0.4",
|
|
72
79
|
"@types/google.maps": "^3.58.1",
|
|
73
80
|
"@types/html2canvas": "^0.5.35",
|
|
@@ -77,19 +84,29 @@
|
|
|
77
84
|
"@types/prompts": "^2.4.9",
|
|
78
85
|
"@types/react": "^19.0.0",
|
|
79
86
|
"@types/react-dom": "^19.0.0",
|
|
87
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
88
|
+
"@vitest/ui": "^4.1.6",
|
|
80
89
|
"autoprefixer": "^10.4.16",
|
|
81
90
|
"class-variance-authority": "^0.7.1",
|
|
82
91
|
"clsx": "^2.1.1",
|
|
83
92
|
"framer-motion": "^12.23.24",
|
|
93
|
+
"html2canvas": "^1.4.1",
|
|
94
|
+
"jsdom": "^29.1.1",
|
|
95
|
+
"jspdf": "^4.0.0",
|
|
84
96
|
"lucide-react": "^0.554.0",
|
|
97
|
+
"markdown-it": "^14.1.0",
|
|
85
98
|
"postcss": "^8.5.6",
|
|
86
99
|
"react": "^19.2.0",
|
|
87
100
|
"react-dom": "^19.2.0",
|
|
88
|
-
"storybook": "^10.0
|
|
101
|
+
"storybook": "^10.4.0",
|
|
102
|
+
"storybook-dark-mode": "^5.0.0",
|
|
89
103
|
"tailwind-merge": "^3.4.0",
|
|
90
104
|
"tailwindcss": "^4.1.18",
|
|
91
105
|
"ts-node": "^10.9.2",
|
|
92
|
-
"typescript": "^5.3.3"
|
|
106
|
+
"typescript": "^5.3.3",
|
|
107
|
+
"vitest": "^4.1.5",
|
|
108
|
+
"vitest-axe": "^0.1.0",
|
|
109
|
+
"zod": "^3.22.4"
|
|
93
110
|
},
|
|
94
111
|
"peerDependencies": {
|
|
95
112
|
"react": "^19.2.0",
|