@fragments-sdk/cli 0.10.0 → 0.11.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.
- package/dist/bin.js +26 -8
- package/dist/bin.js.map +1 -1
- package/dist/{chunk-ZDA3PLQ6.js → chunk-5G3VZH43.js} +2 -2
- package/dist/{chunk-566BNPQZ.js → chunk-HRFUSSZI.js} +25 -6
- package/dist/chunk-HRFUSSZI.js.map +1 -0
- package/dist/{chunk-CAMXG5HJ.js → chunk-ZM4ZQZWZ.js} +2 -2
- package/dist/{generate-BGKTKO6E.js → generate-FBHSXR3D.js} +2 -2
- package/dist/index.js +2 -2
- package/dist/{init-Q53R5Q2T.js → init-UFGK5TCN.js} +77 -6
- package/dist/init-UFGK5TCN.js.map +1 -0
- package/dist/{scan-OQU7M4GH.js → scan-CJF2DOQW.js} +3 -3
- package/dist/{scan-generate-T5QNUG7N.js → scan-generate-SJAN5MVI.js} +2 -2
- package/dist/snapshot-SV2JOFZH.js +139 -0
- package/dist/snapshot-SV2JOFZH.js.map +1 -0
- package/dist/{test-2CSOSS3B.js → test-Z5LVO724.js} +2 -2
- package/dist/{tokens-DXEGYTOJ.js → tokens-CE46OTMD.js} +2 -2
- package/dist/{viewer-DBEPYM3G.js → viewer-DLLJIMCK.js} +69 -47
- package/dist/viewer-DLLJIMCK.js.map +1 -0
- package/package.json +6 -14
- package/src/bin.ts +30 -0
- package/src/commands/init.ts +76 -1
- package/src/commands/snapshot.ts +197 -0
- package/src/core/loader.ts +38 -8
- package/src/viewer/__tests__/viewer-integration.test.ts +85 -74
- package/src/viewer/server.ts +37 -22
- package/src/viewer/vite-plugin.ts +25 -9
- package/dist/chunk-566BNPQZ.js.map +0 -1
- package/dist/init-Q53R5Q2T.js.map +0 -1
- package/dist/viewer-DBEPYM3G.js.map +0 -1
- package/src/viewer/__tests__/a11y-fixes.test.ts +0 -358
- package/src/viewer/__tests__/jsx-parser.test.ts +0 -502
- package/src/viewer/__tests__/render-utils.test.ts +0 -232
- package/src/viewer/__tests__/style-utils.test.ts +0 -404
- package/src/viewer/assets/fragments-logo.ts +0 -4
- package/src/viewer/components/AccessibilityPanel.tsx +0 -1457
- package/src/viewer/components/ActionCapture.tsx +0 -172
- package/src/viewer/components/ActionsPanel.tsx +0 -332
- package/src/viewer/components/AllVariantsPreview.tsx +0 -78
- package/src/viewer/components/App.tsx +0 -582
- package/src/viewer/components/BottomPanel.tsx +0 -288
- package/src/viewer/components/CodePanel.naming.test.tsx +0 -59
- package/src/viewer/components/CodePanel.tsx +0 -118
- package/src/viewer/components/CommandPalette.tsx +0 -392
- package/src/viewer/components/ComponentDocView.tsx +0 -164
- package/src/viewer/components/ComponentGraph.tsx +0 -380
- package/src/viewer/components/ComponentHeader.tsx +0 -88
- package/src/viewer/components/ContractPanel.tsx +0 -241
- package/src/viewer/components/EmptyVariantMessage.tsx +0 -54
- package/src/viewer/components/ErrorBoundary.tsx +0 -97
- package/src/viewer/components/FigmaEmbed.tsx +0 -238
- package/src/viewer/components/FragmentEditor.tsx +0 -525
- package/src/viewer/components/FragmentRenderer.tsx +0 -61
- package/src/viewer/components/HeaderSearch.tsx +0 -24
- package/src/viewer/components/HealthDashboard.tsx +0 -441
- package/src/viewer/components/HmrStatusIndicator.tsx +0 -61
- package/src/viewer/components/Icons.tsx +0 -479
- package/src/viewer/components/InteractionsPanel.tsx +0 -757
- package/src/viewer/components/IsolatedPreviewFrame.tsx +0 -346
- package/src/viewer/components/IsolatedRender.tsx +0 -113
- package/src/viewer/components/KeyboardShortcutsHelp.tsx +0 -53
- package/src/viewer/components/LandingPage.tsx +0 -421
- package/src/viewer/components/Layout.tsx +0 -27
- package/src/viewer/components/LeftSidebar.tsx +0 -472
- package/src/viewer/components/LoadErrorMessage.tsx +0 -102
- package/src/viewer/components/MultiViewportPreview.tsx +0 -522
- package/src/viewer/components/NoVariantsMessage.tsx +0 -59
- package/src/viewer/components/PanelShell.tsx +0 -161
- package/src/viewer/components/PerformancePanel.tsx +0 -304
- package/src/viewer/components/PreviewArea.tsx +0 -472
- package/src/viewer/components/PreviewAside.tsx +0 -168
- package/src/viewer/components/PreviewFrameHost.tsx +0 -303
- package/src/viewer/components/PreviewPane.tsx +0 -149
- package/src/viewer/components/PreviewToolbar.tsx +0 -80
- package/src/viewer/components/PropsEditor.tsx +0 -506
- package/src/viewer/components/PropsTable.tsx +0 -111
- package/src/viewer/components/RelationsSection.tsx +0 -88
- package/src/viewer/components/ResizablePanel.tsx +0 -271
- package/src/viewer/components/RightSidebar.tsx +0 -102
- package/src/viewer/components/RuntimeToolsRegistrar.tsx +0 -17
- package/src/viewer/components/ScreenshotButton.tsx +0 -90
- package/src/viewer/components/Sidebar.tsx +0 -169
- package/src/viewer/components/SkeletonLoader.tsx +0 -161
- package/src/viewer/components/ThemeProvider.tsx +0 -42
- package/src/viewer/components/Toast.tsx +0 -3
- package/src/viewer/components/TokenStylePanel.tsx +0 -699
- package/src/viewer/components/TopToolbar.tsx +0 -159
- package/src/viewer/components/UsageSection.tsx +0 -95
- package/src/viewer/components/VariantMatrix.tsx +0 -388
- package/src/viewer/components/VariantRenderer.tsx +0 -131
- package/src/viewer/components/VariantTabs.tsx +0 -40
- package/src/viewer/components/ViewerHeader.tsx +0 -69
- package/src/viewer/components/ViewerStateSync.tsx +0 -52
- package/src/viewer/components/ViewportSelector.tsx +0 -172
- package/src/viewer/components/WebMCPDevTools.tsx +0 -503
- package/src/viewer/components/WebMCPIntegration.tsx +0 -47
- package/src/viewer/components/WebMCPStatusIndicator.tsx +0 -60
- package/src/viewer/components/_future/CreatePage.tsx +0 -836
- package/src/viewer/components/viewer-utils.ts +0 -16
- package/src/viewer/composition-renderer.ts +0 -381
- package/src/viewer/constants/index.ts +0 -1
- package/src/viewer/constants/ui.ts +0 -166
- package/src/viewer/entry.tsx +0 -335
- package/src/viewer/hooks/index.ts +0 -2
- package/src/viewer/hooks/useA11yCache.ts +0 -383
- package/src/viewer/hooks/useA11yService.ts +0 -364
- package/src/viewer/hooks/useActions.ts +0 -138
- package/src/viewer/hooks/useAppState.ts +0 -147
- package/src/viewer/hooks/useCompiledFragments.ts +0 -42
- package/src/viewer/hooks/useFigmaIntegration.ts +0 -132
- package/src/viewer/hooks/useHmrStatus.ts +0 -109
- package/src/viewer/hooks/useKeyboardShortcuts.ts +0 -270
- package/src/viewer/hooks/usePreviewBridge.ts +0 -347
- package/src/viewer/hooks/useScrollSpy.ts +0 -78
- package/src/viewer/hooks/useUrlState.ts +0 -318
- package/src/viewer/hooks/useViewSettings.ts +0 -111
- package/src/viewer/index.html +0 -28
- package/src/viewer/intelligence/healthReport.ts +0 -505
- package/src/viewer/intelligence/styleDrift.ts +0 -340
- package/src/viewer/intelligence/usageScanner.ts +0 -309
- package/src/viewer/jsx-parser.ts +0 -486
- package/src/viewer/preview-frame-entry.tsx +0 -25
- package/src/viewer/preview-frame.html +0 -125
- package/src/viewer/public/favicon.ico +0 -0
- package/src/viewer/render-template.html +0 -68
- package/src/viewer/styles/globals.css +0 -278
- package/src/viewer/types/a11y.ts +0 -197
- package/src/viewer/utils/a11y-fixes.ts +0 -509
- package/src/viewer/utils/actionExport.ts +0 -372
- package/src/viewer/utils/colorSchemes.ts +0 -201
- package/src/viewer/utils/detectRelationships.ts +0 -256
- package/src/viewer/vendor/shared/src/ComponentDocContent.module.scss +0 -10
- package/src/viewer/vendor/shared/src/ComponentDocContent.module.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/ComponentDocContent.tsx +0 -274
- package/src/viewer/vendor/shared/src/DocsHeaderBar.tsx +0 -129
- package/src/viewer/vendor/shared/src/DocsPageAsideHost.tsx +0 -89
- package/src/viewer/vendor/shared/src/DocsPageShell.tsx +0 -124
- package/src/viewer/vendor/shared/src/DocsSearchCommand.tsx +0 -99
- package/src/viewer/vendor/shared/src/DocsSidebarNav.tsx +0 -66
- package/src/viewer/vendor/shared/src/PropsTable.module.scss +0 -68
- package/src/viewer/vendor/shared/src/PropsTable.module.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/PropsTable.tsx +0 -76
- package/src/viewer/vendor/shared/src/VariantPreviewCard.module.scss +0 -114
- package/src/viewer/vendor/shared/src/VariantPreviewCard.module.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/VariantPreviewCard.tsx +0 -134
- package/src/viewer/vendor/shared/src/docs-data/index.ts +0 -32
- package/src/viewer/vendor/shared/src/docs-data/mcp-configs.ts +0 -72
- package/src/viewer/vendor/shared/src/docs-data/palettes.ts +0 -75
- package/src/viewer/vendor/shared/src/docs-data/setup-examples.ts +0 -55
- package/src/viewer/vendor/shared/src/docs-layout.scss +0 -28
- package/src/viewer/vendor/shared/src/docs-layout.scss.d.ts +0 -2
- package/src/viewer/vendor/shared/src/index.ts +0 -34
- package/src/viewer/vendor/shared/src/types.ts +0 -53
- package/src/viewer/webmcp/__tests__/analytics.test.ts +0 -108
- package/src/viewer/webmcp/analytics.ts +0 -165
- package/src/viewer/webmcp/index.ts +0 -3
- package/src/viewer/webmcp/posthog-bridge.ts +0 -39
- package/src/viewer/webmcp/runtime-tools.ts +0 -152
- package/src/viewer/webmcp/scan-utils.ts +0 -135
- package/src/viewer/webmcp/use-tool-analytics.ts +0 -69
- package/src/viewer/webmcp/viewer-state.ts +0 -45
- /package/dist/{chunk-ZDA3PLQ6.js.map → chunk-5G3VZH43.js.map} +0 -0
- /package/dist/{chunk-CAMXG5HJ.js.map → chunk-ZM4ZQZWZ.js.map} +0 -0
- /package/dist/{generate-BGKTKO6E.js.map → generate-FBHSXR3D.js.map} +0 -0
- /package/dist/{scan-OQU7M4GH.js.map → scan-CJF2DOQW.js.map} +0 -0
- /package/dist/{scan-generate-T5QNUG7N.js.map → scan-generate-SJAN5MVI.js.map} +0 -0
- /package/dist/{test-2CSOSS3B.js.map → test-Z5LVO724.js.map} +0 -0
- /package/dist/{tokens-DXEGYTOJ.js.map → tokens-CE46OTMD.js.map} +0 -0
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skeleton Loading Components
|
|
3
|
-
*
|
|
4
|
-
* Shows animated placeholders while the app is loading.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { Skeleton, Loading, Stack, Box } from '@fragments-sdk/ui';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Full app skeleton shown during initial load
|
|
11
|
-
*/
|
|
12
|
-
export function AppSkeleton() {
|
|
13
|
-
return (
|
|
14
|
-
<div
|
|
15
|
-
style={{
|
|
16
|
-
display: 'grid',
|
|
17
|
-
minHeight: '100vh',
|
|
18
|
-
minHeight: '100dvh',
|
|
19
|
-
gridTemplateRows: '56px 1fr',
|
|
20
|
-
gridTemplateColumns: '260px 1fr 240px',
|
|
21
|
-
gridTemplateAreas: '"header header header" "sidebar main aside"',
|
|
22
|
-
backgroundColor: 'var(--bg-primary)',
|
|
23
|
-
}}
|
|
24
|
-
>
|
|
25
|
-
<div
|
|
26
|
-
style={{
|
|
27
|
-
gridArea: 'header',
|
|
28
|
-
display: 'flex',
|
|
29
|
-
alignItems: 'center',
|
|
30
|
-
justifyContent: 'space-between',
|
|
31
|
-
gap: '16px',
|
|
32
|
-
padding: '0 16px',
|
|
33
|
-
borderBottom: '1px solid var(--border)',
|
|
34
|
-
backgroundColor: 'var(--bg-primary)',
|
|
35
|
-
}}
|
|
36
|
-
>
|
|
37
|
-
<Stack direction="row" align="center" gap="sm">
|
|
38
|
-
<Skeleton.Circle size={20} />
|
|
39
|
-
<Skeleton variant="text" width={96} />
|
|
40
|
-
<Skeleton variant="text" width={64} />
|
|
41
|
-
</Stack>
|
|
42
|
-
<Skeleton variant="rect" width={240} height={32} radius="md" />
|
|
43
|
-
<Stack direction="row" align="center" gap="sm">
|
|
44
|
-
<Skeleton variant="rect" width={64} height={28} radius="md" />
|
|
45
|
-
<Skeleton.Circle size={20} />
|
|
46
|
-
<Skeleton.Circle size={20} />
|
|
47
|
-
<Skeleton.Circle size={20} />
|
|
48
|
-
</Stack>
|
|
49
|
-
</div>
|
|
50
|
-
|
|
51
|
-
<aside
|
|
52
|
-
style={{
|
|
53
|
-
gridArea: 'sidebar',
|
|
54
|
-
borderRight: '1px solid var(--border)',
|
|
55
|
-
backgroundColor: 'var(--bg-primary)',
|
|
56
|
-
display: 'flex',
|
|
57
|
-
flexDirection: 'column',
|
|
58
|
-
minHeight: 0,
|
|
59
|
-
}}
|
|
60
|
-
>
|
|
61
|
-
<Box paddingX="md" paddingY="sm">
|
|
62
|
-
<Skeleton variant="rect" height={32} radius="md" />
|
|
63
|
-
</Box>
|
|
64
|
-
<Stack gap="sm" style={{ padding: '0 12px', overflow: 'hidden' }}>
|
|
65
|
-
<Skeleton variant="text" width={68} />
|
|
66
|
-
<Skeleton variant="rect" height={30} radius="md" />
|
|
67
|
-
<Skeleton variant="rect" height={30} radius="md" />
|
|
68
|
-
<Skeleton variant="rect" height={30} radius="md" />
|
|
69
|
-
<Skeleton variant="text" width={84} />
|
|
70
|
-
<Skeleton variant="rect" height={30} radius="md" />
|
|
71
|
-
<Skeleton variant="rect" height={30} radius="md" />
|
|
72
|
-
<Skeleton variant="rect" width="78%" height={30} radius="md" />
|
|
73
|
-
</Stack>
|
|
74
|
-
<div style={{ marginTop: 'auto', padding: '12px 16px', borderTop: '1px solid var(--border-subtle)' }}>
|
|
75
|
-
<Skeleton variant="text" width={92} />
|
|
76
|
-
</div>
|
|
77
|
-
</aside>
|
|
78
|
-
|
|
79
|
-
<main
|
|
80
|
-
style={{
|
|
81
|
-
gridArea: 'main',
|
|
82
|
-
display: 'flex',
|
|
83
|
-
flexDirection: 'column',
|
|
84
|
-
minWidth: 0,
|
|
85
|
-
minHeight: 0,
|
|
86
|
-
backgroundColor: 'var(--bg-primary)',
|
|
87
|
-
}}
|
|
88
|
-
>
|
|
89
|
-
<div style={{ flex: 1, padding: '20px', overflow: 'hidden' }}>
|
|
90
|
-
<div
|
|
91
|
-
style={{
|
|
92
|
-
border: '1px solid var(--border)',
|
|
93
|
-
borderRadius: '10px',
|
|
94
|
-
overflow: 'hidden',
|
|
95
|
-
marginBottom: '16px',
|
|
96
|
-
}}
|
|
97
|
-
>
|
|
98
|
-
<div style={{ padding: '12px 14px', borderBottom: '1px solid var(--border-subtle)', backgroundColor: 'var(--bg-secondary)', display: 'flex', gap: '10px' }}>
|
|
99
|
-
<Skeleton variant="text" width={84} />
|
|
100
|
-
<Skeleton variant="text" width={120} />
|
|
101
|
-
</div>
|
|
102
|
-
<div style={{ padding: '24px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
|
|
103
|
-
<Skeleton variant="rect" width={280} height={120} radius="lg" />
|
|
104
|
-
</div>
|
|
105
|
-
</div>
|
|
106
|
-
|
|
107
|
-
<div
|
|
108
|
-
style={{
|
|
109
|
-
border: '1px solid var(--border)',
|
|
110
|
-
borderRadius: '10px',
|
|
111
|
-
overflow: 'hidden',
|
|
112
|
-
}}
|
|
113
|
-
>
|
|
114
|
-
<div style={{ height: '40px', display: 'flex', alignItems: 'center', gap: '6px', padding: '0 14px', borderBottom: '1px solid var(--border-subtle)', backgroundColor: 'var(--bg-secondary)' }}>
|
|
115
|
-
<Skeleton variant="rect" width={52} height={22} radius="md" />
|
|
116
|
-
<Skeleton variant="rect" width={88} height={22} radius="md" />
|
|
117
|
-
<Skeleton variant="rect" width={58} height={22} radius="md" />
|
|
118
|
-
</div>
|
|
119
|
-
<div style={{ padding: '16px' }}>
|
|
120
|
-
<Skeleton.Text lines={4} lastLineWidth={72} />
|
|
121
|
-
</div>
|
|
122
|
-
</div>
|
|
123
|
-
</div>
|
|
124
|
-
</main>
|
|
125
|
-
|
|
126
|
-
<aside
|
|
127
|
-
style={{
|
|
128
|
-
gridArea: 'aside',
|
|
129
|
-
borderLeft: '1px solid var(--border)',
|
|
130
|
-
backgroundColor: 'var(--bg-primary)',
|
|
131
|
-
padding: '16px 14px',
|
|
132
|
-
}}
|
|
133
|
-
>
|
|
134
|
-
<Stack gap="sm">
|
|
135
|
-
<Skeleton variant="text" width={92} />
|
|
136
|
-
<Skeleton variant="text" width={64} />
|
|
137
|
-
<Skeleton variant="text" width={48} />
|
|
138
|
-
<Skeleton variant="text" width={76} />
|
|
139
|
-
<Skeleton variant="rect" height={1} />
|
|
140
|
-
<Skeleton variant="text" width={86} />
|
|
141
|
-
<Skeleton variant="rect" width="100%" height={26} radius="md" />
|
|
142
|
-
<Skeleton variant="rect" width="84%" height={26} radius="md" />
|
|
143
|
-
<Skeleton variant="rect" width="70%" height={26} radius="md" />
|
|
144
|
-
</Stack>
|
|
145
|
-
</aside>
|
|
146
|
-
</div>
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Component preview skeleton
|
|
152
|
-
*/
|
|
153
|
-
export function PreviewSkeleton() {
|
|
154
|
-
return (
|
|
155
|
-
<Stack direction="row" align="center" justify="center" style={{ padding: '32px' }}>
|
|
156
|
-
<Loading size="md" />
|
|
157
|
-
</Stack>
|
|
158
|
-
);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
export default AppSkeleton;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
ThemeProvider as FragmentsThemeProvider,
|
|
4
|
-
useTheme as useFragmentsTheme,
|
|
5
|
-
} from '@fragments-sdk/ui';
|
|
6
|
-
import { BRAND } from '../../core/index.js';
|
|
7
|
-
|
|
8
|
-
type Theme = 'light' | 'dark' | 'system';
|
|
9
|
-
|
|
10
|
-
interface ViewerThemeContextValue {
|
|
11
|
-
theme: Theme;
|
|
12
|
-
resolvedTheme: 'light' | 'dark';
|
|
13
|
-
setTheme: (theme: Theme) => void;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const STORAGE_KEY = `${BRAND.storagePrefix}theme`;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Viewer theme adapter that reuses the shared UI ThemeProvider while preserving
|
|
20
|
-
* existing viewer storage keys and API shape.
|
|
21
|
-
*/
|
|
22
|
-
export function ThemeProvider({ children }: { children: ReactNode }) {
|
|
23
|
-
return (
|
|
24
|
-
<FragmentsThemeProvider
|
|
25
|
-
defaultMode="system"
|
|
26
|
-
storageKey={STORAGE_KEY}
|
|
27
|
-
attribute="class"
|
|
28
|
-
>
|
|
29
|
-
{children}
|
|
30
|
-
</FragmentsThemeProvider>
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function useTheme(): ViewerThemeContextValue {
|
|
35
|
-
const { mode, setMode, resolvedMode } = useFragmentsTheme();
|
|
36
|
-
|
|
37
|
-
return {
|
|
38
|
-
theme: mode,
|
|
39
|
-
resolvedTheme: resolvedMode,
|
|
40
|
-
setTheme: setMode,
|
|
41
|
-
};
|
|
42
|
-
}
|