@fragments-sdk/cli 0.7.9 → 0.7.10
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/dist/bin.js +13 -13
- package/dist/bin.js.map +1 -1
- package/dist/{chunk-CWKQQR6C.js → chunk-57OW43NL.js} +3 -3
- package/dist/chunk-57OW43NL.js.map +1 -0
- package/dist/{chunk-AA6CAHCZ.js → chunk-7CRC46HV.js} +2 -2
- package/dist/chunk-7CRC46HV.js.map +1 -0
- package/dist/{chunk-3JPJTU25.js → chunk-CRTN6BIW.js} +5 -5
- package/dist/chunk-CRTN6BIW.js.map +1 -0
- package/dist/{chunk-LHIIBI6F.js → chunk-M42XIHPV.js} +2 -2
- package/dist/{chunk-2EFVPE5Q.js → chunk-TQOGBAOZ.js} +2 -2
- package/dist/chunk-TQOGBAOZ.js.map +1 -0
- package/dist/core/index.d.ts +1944 -0
- package/dist/{core-YAPWXDZW.js → core/index.js} +5 -5
- package/dist/defineFragment-C6PFzZyo.d.ts +656 -0
- package/dist/{generate-LEBVZCCH.js → generate-ZPERYZLF.js} +4 -4
- package/dist/index.d.ts +4 -159
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/dist/{init-4VXL3Q6N.js → init-GID2DXB3.js} +69 -7
- package/dist/init-GID2DXB3.js.map +1 -0
- package/dist/mcp-bin.js +3 -3
- package/dist/{scan-3NYSRF6G.js → scan-BSMLGBX4.js} +5 -5
- package/dist/{service-HL6TMP3B.js → service-QACVPR37.js} +3 -3
- package/dist/{static-viewer-KLD24I4R.js → static-viewer-2RQD5QLR.js} +3 -3
- package/dist/{test-Y7YZOJLE.js → test-36UELXTE.js} +3 -3
- package/dist/{tokens-M4FCJKBK.js → tokens-A3BZIQPB.js} +4 -4
- package/dist/{viewer-ZWQQ74FV.js → viewer-ZA7WK3EY.js} +137 -30
- package/dist/viewer-ZA7WK3EY.js.map +1 -0
- package/package.json +6 -1
- package/src/commands/add.ts +1 -1
- package/src/commands/init.ts +84 -4
- package/src/core/defineFragment.ts +1 -1
- package/src/core/figma.ts +1 -1
- package/src/core/index.ts +2 -2
- package/src/core/loader.ts +3 -3
- package/src/core/schema.ts +1 -1
- package/src/index.ts +6 -0
- package/src/migrate/converter.ts +1 -1
- package/src/service/snippet-validation.test.ts +5 -5
- package/src/service/snippet-validation.ts +0 -1
- package/src/viewer/__tests__/viewer-integration.test.ts +16 -23
- package/src/viewer/components/AccessibilityPanel.tsx +1 -1
- package/src/viewer/components/ActionsPanel.tsx +1 -1
- package/src/viewer/components/App.tsx +137 -96
- package/src/viewer/components/BottomPanel.tsx +1 -1
- package/src/viewer/components/CodePanel.naming.test.tsx +1 -1
- package/src/viewer/components/CodePanel.tsx +1 -1
- package/src/viewer/components/CommandPalette.tsx +1 -1
- package/src/viewer/components/ComponentGraph.tsx +1 -1
- package/src/viewer/components/ComponentHeader.tsx +1 -1
- package/src/viewer/components/ContractPanel.tsx +1 -1
- package/src/viewer/components/ErrorBoundary.tsx +1 -1
- package/src/viewer/components/HealthDashboard.tsx +1 -1
- package/src/viewer/components/HmrStatusIndicator.tsx +1 -1
- package/src/viewer/components/InteractionsPanel.tsx +1 -1
- package/src/viewer/components/IsolatedRender.tsx +1 -1
- package/src/viewer/components/KeyboardShortcutsHelp.tsx +1 -1
- package/src/viewer/components/LandingPage.tsx +1 -1
- package/src/viewer/components/Layout.tsx +1 -1
- package/src/viewer/components/LeftSidebar.tsx +105 -18
- package/src/viewer/components/MultiViewportPreview.tsx +1 -1
- package/src/viewer/components/PreviewArea.tsx +1 -2
- package/src/viewer/components/PreviewFrameHost.tsx +0 -4
- package/src/viewer/components/PreviewMenu.tsx +247 -0
- package/src/viewer/components/PreviewToolbar.tsx +1 -1
- package/src/viewer/components/PropsEditor.tsx +1 -1
- package/src/viewer/components/PropsTable.tsx +1 -1
- package/src/viewer/components/RightSidebar.tsx +1 -1
- package/src/viewer/components/ScreenshotButton.tsx +1 -1
- package/src/viewer/components/SkeletonLoader.tsx +1 -1
- package/src/viewer/components/Toast.tsx +2 -2
- package/src/viewer/components/TokenStylePanel.tsx +1 -1
- package/src/viewer/components/VariantMatrix.tsx +1 -1
- package/src/viewer/components/VariantTabs.tsx +1 -1
- package/src/viewer/components/ViewportSelector.tsx +1 -1
- package/src/viewer/constants/ui.ts +14 -0
- package/src/viewer/entry.tsx +3 -4
- package/src/viewer/hooks/useKeyboardShortcuts.ts +65 -17
- package/src/viewer/hooks/useViewSettings.ts +1 -2
- package/src/viewer/index.ts +1 -1
- package/src/viewer/preview-frame.html +6 -9
- package/src/viewer/server.ts +80 -7
- package/src/viewer/styles/globals.css +12 -51
- package/src/viewer/vite-plugin.ts +70 -9
- package/dist/chunk-2EFVPE5Q.js.map +0 -1
- package/dist/chunk-3JPJTU25.js.map +0 -1
- package/dist/chunk-AA6CAHCZ.js.map +0 -1
- package/dist/chunk-CWKQQR6C.js.map +0 -1
- package/dist/init-4VXL3Q6N.js.map +0 -1
- package/dist/viewer-ZWQQ74FV.js.map +0 -1
- /package/dist/{chunk-LHIIBI6F.js.map → chunk-M42XIHPV.js.map} +0 -0
- /package/dist/{core-YAPWXDZW.js.map → core/index.js.map} +0 -0
- /package/dist/{generate-LEBVZCCH.js.map → generate-ZPERYZLF.js.map} +0 -0
- /package/dist/{scan-3NYSRF6G.js.map → scan-BSMLGBX4.js.map} +0 -0
- /package/dist/{service-HL6TMP3B.js.map → service-QACVPR37.js.map} +0 -0
- /package/dist/{static-viewer-KLD24I4R.js.map → static-viewer-2RQD5QLR.js.map} +0 -0
- /package/dist/{test-Y7YZOJLE.js.map → test-36UELXTE.js.map} +0 -0
- /package/dist/{tokens-M4FCJKBK.js.map → tokens-A3BZIQPB.js.map} +0 -0
package/dist/bin.js
CHANGED
|
@@ -10,14 +10,14 @@ import {
|
|
|
10
10
|
validateCoverage,
|
|
11
11
|
validateSchema,
|
|
12
12
|
validateSnippets
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-CRTN6BIW.js";
|
|
14
14
|
import {
|
|
15
15
|
scan
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-M42XIHPV.js";
|
|
17
17
|
import {
|
|
18
18
|
loadConfig,
|
|
19
19
|
loadFragmentFile
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-57OW43NL.js";
|
|
21
21
|
import {
|
|
22
22
|
discoverFragmentFiles
|
|
23
23
|
} from "./chunk-AWYCDRPG.js";
|
|
@@ -39,8 +39,8 @@ import {
|
|
|
39
39
|
} from "./chunk-YMPGYEWK.js";
|
|
40
40
|
import {
|
|
41
41
|
generateContext
|
|
42
|
-
} from "./chunk-
|
|
43
|
-
import "./chunk-
|
|
42
|
+
} from "./chunk-TQOGBAOZ.js";
|
|
43
|
+
import "./chunk-7CRC46HV.js";
|
|
44
44
|
import {
|
|
45
45
|
BRAND
|
|
46
46
|
} from "./chunk-EKLMXTWU.js";
|
|
@@ -1456,7 +1456,7 @@ ${generated.skippedVariants.map((sv) => ` { name: "${escapeString(sv.name)}
|
|
|
1456
1456
|
},
|
|
1457
1457
|
`;
|
|
1458
1458
|
}
|
|
1459
|
-
return `import { defineFragment } from "@fragments/core";
|
|
1459
|
+
return `import { defineFragment } from "@fragments-sdk/cli/core";
|
|
1460
1460
|
import { ${componentName} } from "${componentImport}";
|
|
1461
1461
|
|
|
1462
1462
|
export default defineFragment({
|
|
@@ -1806,7 +1806,7 @@ ${BRAND.name} Dev Server
|
|
|
1806
1806
|
}
|
|
1807
1807
|
}
|
|
1808
1808
|
}
|
|
1809
|
-
const { createDevServer } = await import("./viewer-
|
|
1809
|
+
const { createDevServer } = await import("./viewer-ZA7WK3EY.js");
|
|
1810
1810
|
console.log(pc7.dim("\nStarting dev server..."));
|
|
1811
1811
|
const parsedPort = typeof port === "string" ? parseInt(port, 10) : port;
|
|
1812
1812
|
try {
|
|
@@ -3722,7 +3722,7 @@ function generateFragmentStub(name, category, template) {
|
|
|
3722
3722
|
};
|
|
3723
3723
|
const scenarioTags = scenarioTagHints[template] || scenarioTagHints.display;
|
|
3724
3724
|
return `import React from 'react';
|
|
3725
|
-
import { defineFragment } from '@fragments/core';
|
|
3725
|
+
import { defineFragment } from '@fragments-sdk/cli/core';
|
|
3726
3726
|
import { ${name} } from './index.js';
|
|
3727
3727
|
|
|
3728
3728
|
export default defineFragment({
|
|
@@ -5577,7 +5577,7 @@ Make sure the dev server is running: ${BRAND.cliCommand} dev`));
|
|
|
5577
5577
|
});
|
|
5578
5578
|
program.command("view").description(`Generate a static HTML viewer for ${BRAND.outFile}`).option("-i, --input <path>", `Path to ${BRAND.outFile}`, BRAND.outFile).option("-o, --output <path>", "Output HTML file path", BRAND.viewerHtmlFile).option("--open", "Open in browser after generation").action(async (options) => {
|
|
5579
5579
|
try {
|
|
5580
|
-
const { generateViewerFromJson } = await import("./static-viewer-
|
|
5580
|
+
const { generateViewerFromJson } = await import("./static-viewer-2RQD5QLR.js");
|
|
5581
5581
|
const fs2 = await import("fs/promises");
|
|
5582
5582
|
const path = await import("path");
|
|
5583
5583
|
const inputPath = path.resolve(process.cwd(), options.input);
|
|
@@ -5625,7 +5625,7 @@ program.command("add").argument("[name]", 'Component name (e.g., "Button", "Text
|
|
|
5625
5625
|
});
|
|
5626
5626
|
program.command("init").description("Initialize fragments in a project (interactive by default)").option("--force", "Overwrite existing config").option("-y, --yes", "Non-interactive mode - auto-detect and use defaults").action(async (options) => {
|
|
5627
5627
|
try {
|
|
5628
|
-
const { init } = await import("./init-
|
|
5628
|
+
const { init } = await import("./init-GID2DXB3.js");
|
|
5629
5629
|
const result = await init({
|
|
5630
5630
|
projectRoot: process.cwd(),
|
|
5631
5631
|
force: options.force,
|
|
@@ -5645,7 +5645,7 @@ program.command("init").description("Initialize fragments in a project (interact
|
|
|
5645
5645
|
});
|
|
5646
5646
|
program.command("tokens").description("Discover and list design tokens from CSS/SCSS files").option("-c, --config <path>", "Path to config file").option("--json", "Output as JSON").option("--categories", "Group tokens by category").option("--theme <theme>", "Filter by theme name").option("--category <category>", "Filter by category (color, spacing, typography, etc.)").option("--verbose", "Show all tokens (no truncation)").action(async (options) => {
|
|
5647
5647
|
try {
|
|
5648
|
-
const { tokens } = await import("./tokens-
|
|
5648
|
+
const { tokens } = await import("./tokens-A3BZIQPB.js");
|
|
5649
5649
|
const result = await tokens({
|
|
5650
5650
|
config: options.config,
|
|
5651
5651
|
json: options.json,
|
|
@@ -5664,7 +5664,7 @@ program.command("tokens").description("Discover and list design tokens from CSS/
|
|
|
5664
5664
|
});
|
|
5665
5665
|
program.command("generate").description("Generate fragment files from component source code").argument("[component]", "Specific component name to generate (optional)").option("--force", "Overwrite existing fragment files").option("--pattern <glob>", "Pattern for component files", "src/components/**/*.tsx").action(async (component, options) => {
|
|
5666
5666
|
try {
|
|
5667
|
-
const { generate } = await import("./generate-
|
|
5667
|
+
const { generate } = await import("./generate-ZPERYZLF.js");
|
|
5668
5668
|
const result = await generate({
|
|
5669
5669
|
projectRoot: process.cwd(),
|
|
5670
5670
|
component,
|
|
@@ -5691,7 +5691,7 @@ program.command("graph").description("Query the component relationship graph").a
|
|
|
5691
5691
|
program.command("test").description("Run interaction tests for fragments with play functions").option("-c, --config <path>", "Path to config file").option("--component <name>", "Filter by component name").option("--tags <tags>", "Filter by tags (comma-separated)").option("--grep <pattern>", "Filter by variant name pattern").option("--exclude <pattern>", "Exclude tests matching pattern").option("--parallel <count>", "Number of parallel browser contexts", parseInt, 4).option("--timeout <ms>", "Timeout per test in milliseconds", parseInt, 3e4).option("--retries <count>", "Number of retries for failed tests", parseInt, 0).option("--bail", "Stop on first failure").option("--browser <name>", "Browser to use (chromium, firefox, webkit)", "chromium").option("--headed", "Run in headed mode (show browser)").option("--a11y", "Run accessibility checks with axe-core").option("--visual", "Capture screenshots for visual regression").option("--update-snapshots", "Update visual snapshots").option("--watch", "Watch mode - re-run on file changes").option("--reporters <names>", "Reporters to use (console, junit, json)", "console").option("-o, --output <dir>", "Output directory for results", "./test-results").option("--server-url <url>", "URL of running dev server (skips starting server)").option("-p, --port <port>", "Port for dev server", parseInt, 6006).option("--ci", "CI mode - non-interactive, exit with code 1 on failure").option("--list", "List available tests without running them").action(async (options) => {
|
|
5692
5692
|
try {
|
|
5693
5693
|
const { config, configDir } = await loadConfig(options.config);
|
|
5694
|
-
const { runTestCommand, listTests } = await import("./test-
|
|
5694
|
+
const { runTestCommand, listTests } = await import("./test-36UELXTE.js");
|
|
5695
5695
|
if (options.list) {
|
|
5696
5696
|
await listTests(config, configDir, {
|
|
5697
5697
|
component: options.component,
|