@codefluss/sandbox 0.0.1-alpha.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/CHANGELOG.md +75 -0
- package/README.md +413 -0
- package/dist/__tests__/auto-resize-script.test.d.ts +2 -0
- package/dist/__tests__/auto-resize-script.test.d.ts.map +1 -0
- package/dist/__tests__/auto-resize-script.test.js +49 -0
- package/dist/__tests__/auto-resize-script.test.js.map +1 -0
- package/dist/__tests__/sandbox-component.test.d.ts +2 -0
- package/dist/__tests__/sandbox-component.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-component.test.js +281 -0
- package/dist/__tests__/sandbox-component.test.js.map +1 -0
- package/dist/__tests__/sandbox-config.test.d.ts +2 -0
- package/dist/__tests__/sandbox-config.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-config.test.js +148 -0
- package/dist/__tests__/sandbox-config.test.js.map +1 -0
- package/dist/__tests__/sandbox-iframe.test.d.ts +2 -0
- package/dist/__tests__/sandbox-iframe.test.d.ts.map +1 -0
- package/dist/__tests__/sandbox-iframe.test.js +212 -0
- package/dist/__tests__/sandbox-iframe.test.js.map +1 -0
- package/dist/__tests__/setup.d.ts +2 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +27 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +5 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/performance-wrapper.d.ts +12 -0
- package/dist/components/performance-wrapper.d.ts.map +1 -0
- package/dist/components/performance-wrapper.js +162 -0
- package/dist/components/performance-wrapper.js.map +1 -0
- package/dist/components/sandbox-component.d.ts +3 -0
- package/dist/components/sandbox-component.d.ts.map +1 -0
- package/dist/components/sandbox-component.js +123 -0
- package/dist/components/sandbox-component.js.map +1 -0
- package/dist/components/sandbox-iframe-cached.d.ts +3 -0
- package/dist/components/sandbox-iframe-cached.d.ts.map +1 -0
- package/dist/components/sandbox-iframe-cached.js +176 -0
- package/dist/components/sandbox-iframe-cached.js.map +1 -0
- package/dist/components/sandbox-iframe.d.ts +3 -0
- package/dist/components/sandbox-iframe.d.ts.map +1 -0
- package/dist/components/sandbox-iframe.js +131 -0
- package/dist/components/sandbox-iframe.js.map +1 -0
- package/dist/converters/auto-detect/auto-detect.d.ts +13 -0
- package/dist/converters/auto-detect/auto-detect.d.ts.map +1 -0
- package/dist/converters/auto-detect/auto-detect.js +224 -0
- package/dist/converters/auto-detect/auto-detect.js.map +1 -0
- package/dist/converters/auto-detect/index.d.ts +3 -0
- package/dist/converters/auto-detect/index.d.ts.map +1 -0
- package/dist/converters/auto-detect/index.js +2 -0
- package/dist/converters/auto-detect/index.js.map +1 -0
- package/dist/converters/codepen/codepen-converter.d.ts +9 -0
- package/dist/converters/codepen/codepen-converter.d.ts.map +1 -0
- package/dist/converters/codepen/codepen-converter.js +99 -0
- package/dist/converters/codepen/codepen-converter.js.map +1 -0
- package/dist/converters/codepen/index.d.ts +2 -0
- package/dist/converters/codepen/index.d.ts.map +1 -0
- package/dist/converters/codepen/index.js +2 -0
- package/dist/converters/codepen/index.js.map +1 -0
- package/dist/converters/gist/gist-converter.d.ts +31 -0
- package/dist/converters/gist/gist-converter.d.ts.map +1 -0
- package/dist/converters/gist/gist-converter.js +162 -0
- package/dist/converters/gist/gist-converter.js.map +1 -0
- package/dist/converters/gist/index.d.ts +2 -0
- package/dist/converters/gist/index.d.ts.map +1 -0
- package/dist/converters/gist/index.js +2 -0
- package/dist/converters/gist/index.js.map +1 -0
- package/dist/converters/shared/html-parser.d.ts +4 -0
- package/dist/converters/shared/html-parser.d.ts.map +1 -0
- package/dist/converters/shared/html-parser.js +39 -0
- package/dist/converters/shared/html-parser.js.map +1 -0
- package/dist/converters/shared/index.d.ts +4 -0
- package/dist/converters/shared/index.d.ts.map +1 -0
- package/dist/converters/shared/index.js +3 -0
- package/dist/converters/shared/index.js.map +1 -0
- package/dist/converters/shared/sanitization.d.ts +5 -0
- package/dist/converters/shared/sanitization.d.ts.map +1 -0
- package/dist/converters/shared/sanitization.js +176 -0
- package/dist/converters/shared/sanitization.js.map +1 -0
- package/dist/converters/shared/types.d.ts +23 -0
- package/dist/converters/shared/types.d.ts.map +1 -0
- package/dist/converters/shared/types.js +2 -0
- package/dist/converters/shared/types.js.map +1 -0
- package/dist/core/index.d.ts +13 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/frameworks/__tests__/file-utils.test.d.ts +2 -0
- package/dist/frameworks/__tests__/file-utils.test.d.ts.map +1 -0
- package/dist/frameworks/__tests__/file-utils.test.js +408 -0
- package/dist/frameworks/__tests__/file-utils.test.js.map +1 -0
- package/dist/frameworks/__tests__/sandpack-wrapper.test.d.ts +2 -0
- package/dist/frameworks/__tests__/sandpack-wrapper.test.d.ts.map +1 -0
- package/dist/frameworks/__tests__/sandpack-wrapper.test.js +147 -0
- package/dist/frameworks/__tests__/sandpack-wrapper.test.js.map +1 -0
- package/dist/frameworks/file-utils.d.ts +20 -0
- package/dist/frameworks/file-utils.d.ts.map +1 -0
- package/dist/frameworks/file-utils.js +293 -0
- package/dist/frameworks/file-utils.js.map +1 -0
- package/dist/frameworks/framework-detector.d.ts +5 -0
- package/dist/frameworks/framework-detector.d.ts.map +1 -0
- package/dist/frameworks/framework-detector.js +117 -0
- package/dist/frameworks/framework-detector.js.map +1 -0
- package/dist/frameworks/index.d.ts +6 -0
- package/dist/frameworks/index.d.ts.map +1 -0
- package/dist/frameworks/index.js +5 -0
- package/dist/frameworks/index.js.map +1 -0
- package/dist/frameworks/sandpack-wrapper.d.ts +28 -0
- package/dist/frameworks/sandpack-wrapper.d.ts.map +1 -0
- package/dist/frameworks/sandpack-wrapper.js +55 -0
- package/dist/frameworks/sandpack-wrapper.js.map +1 -0
- package/dist/frameworks/templates/index.d.ts +8 -0
- package/dist/frameworks/templates/index.d.ts.map +1 -0
- package/dist/frameworks/templates/index.js +29 -0
- package/dist/frameworks/templates/index.js.map +1 -0
- package/dist/frameworks/templates/react-template.d.ts +3 -0
- package/dist/frameworks/templates/react-template.d.ts.map +1 -0
- package/dist/frameworks/templates/react-template.js +376 -0
- package/dist/frameworks/templates/react-template.js.map +1 -0
- package/dist/frameworks/templates/svelte-template.d.ts +3 -0
- package/dist/frameworks/templates/svelte-template.d.ts.map +1 -0
- package/dist/frameworks/templates/svelte-template.js +373 -0
- package/dist/frameworks/templates/svelte-template.js.map +1 -0
- package/dist/frameworks/templates/vanilla-template.d.ts +3 -0
- package/dist/frameworks/templates/vanilla-template.d.ts.map +1 -0
- package/dist/frameworks/templates/vanilla-template.js +455 -0
- package/dist/frameworks/templates/vanilla-template.js.map +1 -0
- package/dist/frameworks/templates/vue-template.d.ts +3 -0
- package/dist/frameworks/templates/vue-template.d.ts.map +1 -0
- package/dist/frameworks/templates/vue-template.js +388 -0
- package/dist/frameworks/templates/vue-template.js.map +1 -0
- package/dist/frameworks/types.d.ts +57 -0
- package/dist/frameworks/types.d.ts.map +1 -0
- package/dist/frameworks/types.js +2 -0
- package/dist/frameworks/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/performance-tracker.d.ts +45 -0
- package/dist/lib/performance-tracker.d.ts.map +1 -0
- package/dist/lib/performance-tracker.js +165 -0
- package/dist/lib/performance-tracker.js.map +1 -0
- package/dist/lib/sandbox-cache.d.ts +24 -0
- package/dist/lib/sandbox-cache.d.ts.map +1 -0
- package/dist/lib/sandbox-cache.js +138 -0
- package/dist/lib/sandbox-cache.js.map +1 -0
- package/dist/locales/de.json +72 -0
- package/dist/locales/en.json +72 -0
- package/dist/locales/index.d.ts +148 -0
- package/dist/locales/index.d.ts.map +1 -0
- package/dist/locales/index.js +7 -0
- package/dist/locales/index.js.map +1 -0
- package/dist/performance/sandpack-bundle-cache.d.ts +19 -0
- package/dist/performance/sandpack-bundle-cache.d.ts.map +1 -0
- package/dist/performance/sandpack-bundle-cache.js +48 -0
- package/dist/performance/sandpack-bundle-cache.js.map +1 -0
- package/dist/sandbox-config.d.ts +4 -0
- package/dist/sandbox-config.d.ts.map +1 -0
- package/dist/sandbox-config.js +235 -0
- package/dist/sandbox-config.js.map +1 -0
- package/dist/storage/__tests__/indexeddb-adapter.test.d.ts +2 -0
- package/dist/storage/__tests__/indexeddb-adapter.test.d.ts.map +1 -0
- package/dist/storage/__tests__/indexeddb-adapter.test.js +192 -0
- package/dist/storage/__tests__/indexeddb-adapter.test.js.map +1 -0
- package/dist/storage/__tests__/project-manager.test.d.ts +2 -0
- package/dist/storage/__tests__/project-manager.test.d.ts.map +1 -0
- package/dist/storage/__tests__/project-manager.test.js +266 -0
- package/dist/storage/__tests__/project-manager.test.js.map +1 -0
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +4 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/indexeddb-adapter.d.ts +18 -0
- package/dist/storage/indexeddb-adapter.d.ts.map +1 -0
- package/dist/storage/indexeddb-adapter.js +232 -0
- package/dist/storage/indexeddb-adapter.js.map +1 -0
- package/dist/storage/project-manager.d.ts +35 -0
- package/dist/storage/project-manager.d.ts.map +1 -0
- package/dist/storage/project-manager.js +213 -0
- package/dist/storage/project-manager.js.map +1 -0
- package/dist/storage/types.d.ts +59 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +2 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/storage/zip-handler.d.ts +5 -0
- package/dist/storage/zip-handler.d.ts.map +1 -0
- package/dist/storage/zip-handler.js +200 -0
- package/dist/storage/zip-handler.js.map +1 -0
- package/dist/types/sandbox-types.d.ts +54 -0
- package/dist/types/sandbox-types.d.ts.map +1 -0
- package/dist/types/sandbox-types.js +2 -0
- package/dist/types/sandbox-types.js.map +1 -0
- package/dist/utils/__tests__/converters/auto-detect.test.d.ts +2 -0
- package/dist/utils/__tests__/converters/auto-detect.test.d.ts.map +1 -0
- package/dist/utils/__tests__/converters/auto-detect.test.js +381 -0
- package/dist/utils/__tests__/converters/auto-detect.test.js.map +1 -0
- package/dist/utils/__tests__/converters/codepen-converter.test.d.ts +2 -0
- package/dist/utils/__tests__/converters/codepen-converter.test.d.ts.map +1 -0
- package/dist/utils/__tests__/converters/codepen-converter.test.js +408 -0
- package/dist/utils/__tests__/converters/codepen-converter.test.js.map +1 -0
- package/dist/utils/__tests__/converters/gist-converter.test.d.ts +2 -0
- package/dist/utils/__tests__/converters/gist-converter.test.d.ts.map +1 -0
- package/dist/utils/__tests__/converters/gist-converter.test.js +458 -0
- package/dist/utils/__tests__/converters/gist-converter.test.js.map +1 -0
- package/dist/utils/__tests__/converters/html-parser.test.d.ts +2 -0
- package/dist/utils/__tests__/converters/html-parser.test.d.ts.map +1 -0
- package/dist/utils/__tests__/converters/html-parser.test.js +285 -0
- package/dist/utils/__tests__/converters/html-parser.test.js.map +1 -0
- package/dist/utils/__tests__/converters/sanitization.test.d.ts +2 -0
- package/dist/utils/__tests__/converters/sanitization.test.d.ts.map +1 -0
- package/dist/utils/__tests__/converters/sanitization.test.js +210 -0
- package/dist/utils/__tests__/converters/sanitization.test.js.map +1 -0
- package/dist/utils/auto-resize-script.d.ts +4 -0
- package/dist/utils/auto-resize-script.d.ts.map +1 -0
- package/dist/utils/auto-resize-script.js +125 -0
- package/dist/utils/auto-resize-script.js.map +1 -0
- package/dist/widgets/banner/BannerWidget.d.ts +15 -0
- package/dist/widgets/banner/BannerWidget.d.ts.map +1 -0
- package/dist/widgets/banner/BannerWidget.js +33 -0
- package/dist/widgets/banner/BannerWidget.js.map +1 -0
- package/dist/widgets/form/FormWidget.d.ts +23 -0
- package/dist/widgets/form/FormWidget.d.ts.map +1 -0
- package/dist/widgets/form/FormWidget.js +42 -0
- package/dist/widgets/form/FormWidget.js.map +1 -0
- package/dist/widgets/index.d.ts +8 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/widgets/index.js +28 -0
- package/dist/widgets/index.js.map +1 -0
- package/dist/widgets/types.d.ts +28 -0
- package/dist/widgets/types.d.ts.map +1 -0
- package/dist/widgets/types.js +2 -0
- package/dist/widgets/types.js.map +1 -0
- package/package.json +116 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { WidgetConfig } from '../types';
|
|
3
|
+
export interface BannerWidgetProps {
|
|
4
|
+
title: string;
|
|
5
|
+
message: string;
|
|
6
|
+
type?: 'info' | 'success' | 'warning' | 'error';
|
|
7
|
+
dismissible?: boolean;
|
|
8
|
+
action?: {
|
|
9
|
+
label: string;
|
|
10
|
+
onClick: () => void;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare const BannerWidget: React.FC<BannerWidgetProps>;
|
|
14
|
+
export declare const bannerWidgetDefinition: WidgetConfig;
|
|
15
|
+
//# sourceMappingURL=BannerWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BannerWidget.d.ts","sourceRoot":"","sources":["../../../src/widgets/banner/BannerWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuDpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAWpC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const BannerWidget = ({ title, message, type = 'info', dismissible = false, action, }) => {
|
|
4
|
+
const [isVisible, setIsVisible] = React.useState(true);
|
|
5
|
+
if (!isVisible)
|
|
6
|
+
return null;
|
|
7
|
+
const typeColors = {
|
|
8
|
+
info: 'bg-blue-50 border-blue-200 text-blue-900',
|
|
9
|
+
success: 'bg-green-50 border-green-200 text-green-900',
|
|
10
|
+
warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',
|
|
11
|
+
error: 'bg-red-50 border-red-200 text-red-900',
|
|
12
|
+
};
|
|
13
|
+
const typeIcons = {
|
|
14
|
+
info: '🔵',
|
|
15
|
+
success: '✅',
|
|
16
|
+
warning: '⚠️',
|
|
17
|
+
error: '❌',
|
|
18
|
+
};
|
|
19
|
+
return (_jsx("div", { className: `border rounded-lg p-4 ${typeColors[type]}`, children: _jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex items-start gap-3 flex-1", children: [_jsx("span", { className: "text-2xl", children: typeIcons[type] }), _jsxs("div", { className: "flex-1", children: [_jsx("h3", { className: "font-semibold text-lg mb-1", children: title }), _jsx("p", { className: "text-sm", children: message }), action && (_jsx("button", { onClick: action.onClick, className: "mt-3 px-4 py-2 bg-white border border-current rounded-md text-sm font-medium hover:bg-opacity-90 transition-colors", children: action.label }))] })] }), dismissible && (_jsx("button", { onClick: () => setIsVisible(false), className: "ml-3 text-current hover:opacity-70 transition-opacity", "aria-label": "Dismiss", children: "\u2715" }))] }) }));
|
|
20
|
+
};
|
|
21
|
+
export const bannerWidgetDefinition = {
|
|
22
|
+
id: 'banner-widget',
|
|
23
|
+
type: 'banner',
|
|
24
|
+
title: 'Banner Widget',
|
|
25
|
+
description: 'Display informational banners with different types and actions',
|
|
26
|
+
props: {
|
|
27
|
+
title: 'Welcome!',
|
|
28
|
+
message: 'This is a banner widget for displaying important information.',
|
|
29
|
+
type: 'info',
|
|
30
|
+
dismissible: true,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=BannerWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BannerWidget.js","sourceRoot":"","sources":["../../../src/widgets/banner/BannerWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EACxD,KAAK,EACL,OAAO,EACP,IAAI,GAAG,MAAM,EACb,WAAW,GAAG,KAAK,EACnB,MAAM,GACP,EAAE,EAAE;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEvD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,6CAA6C;QACtD,OAAO,EAAE,gDAAgD;QACzD,KAAK,EAAE,uCAAuC;KAC/C,CAAC;IAEF,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,GAAG;KACX,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAE,yBAAyB,UAAU,CAAC,IAAI,CAAC,EAAE,YACzD,eAAK,SAAS,EAAC,kCAAkC,aAC/C,eAAK,SAAS,EAAC,+BAA+B,aAC5C,eAAM,SAAS,EAAC,UAAU,YAAE,SAAS,CAAC,IAAI,CAAC,GAAQ,EACnD,eAAK,SAAS,EAAC,QAAQ,aACrB,aAAI,SAAS,EAAC,4BAA4B,YAAE,KAAK,GAAM,EACvD,YAAG,SAAS,EAAC,SAAS,YAAE,OAAO,GAAK,EACnC,MAAM,IAAI,CACT,iBACE,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,SAAS,EAAC,oHAAoH,YAE7H,MAAM,CAAC,KAAK,GACN,CACV,IACG,IACF,EACL,WAAW,IAAI,CACd,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAClC,SAAS,EAAC,uDAAuD,gBACtD,SAAS,uBAGb,CACV,IACG,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAiB;IAClD,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,gEAAgE;IAC7E,KAAK,EAAE;QACL,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,+DAA+D;QACxE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,IAAI;KAClB;CACF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { WidgetConfig } from '../types';
|
|
3
|
+
export interface FormField {
|
|
4
|
+
id: string;
|
|
5
|
+
type: 'text' | 'email' | 'textarea' | 'checkbox' | 'select';
|
|
6
|
+
label: string;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
options?: {
|
|
10
|
+
value: string;
|
|
11
|
+
label: string;
|
|
12
|
+
}[];
|
|
13
|
+
}
|
|
14
|
+
export interface FormWidgetProps {
|
|
15
|
+
title: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
fields: FormField[];
|
|
18
|
+
submitLabel?: string;
|
|
19
|
+
onSubmit: (data: Record<string, unknown>) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare const FormWidget: React.FC<FormWidgetProps>;
|
|
22
|
+
export declare const formWidgetDefinition: WidgetConfig;
|
|
23
|
+
//# sourceMappingURL=FormWidget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormWidget.d.ts","sourceRoot":"","sources":["../../../src/widgets/form/FormWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8GhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAelC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const FormWidget = ({ title, description, fields, submitLabel = 'Submit', onSubmit, }) => {
|
|
4
|
+
const [formData, setFormData] = React.useState({});
|
|
5
|
+
const handleChange = (fieldId, value) => {
|
|
6
|
+
setFormData(prev => ({ ...prev, [fieldId]: value }));
|
|
7
|
+
};
|
|
8
|
+
const handleSubmit = (e) => {
|
|
9
|
+
e.preventDefault();
|
|
10
|
+
onSubmit(formData);
|
|
11
|
+
};
|
|
12
|
+
const renderField = (field) => {
|
|
13
|
+
switch (field.type) {
|
|
14
|
+
case 'textarea':
|
|
15
|
+
return (_jsx("textarea", { id: field.id, placeholder: field.placeholder, required: field.required, value: formData[field.id] || '', onChange: (e) => handleChange(field.id, e.target.value), className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500", rows: 4 }));
|
|
16
|
+
case 'checkbox':
|
|
17
|
+
return (_jsxs("div", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", id: field.id, required: field.required, checked: formData[field.id] || false, onChange: (e) => handleChange(field.id, e.target.checked), className: "w-4 h-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" }), _jsx("label", { htmlFor: field.id, className: "ml-2 text-sm text-gray-700", children: field.label })] }));
|
|
18
|
+
case 'select':
|
|
19
|
+
return (_jsxs("select", { id: field.id, required: field.required, value: formData[field.id] || '', onChange: (e) => handleChange(field.id, e.target.value), className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500", children: [_jsx("option", { value: "", children: "Select an option..." }), field.options?.map(option => (_jsx("option", { value: option.value, children: option.label }, option.value)))] }));
|
|
20
|
+
default:
|
|
21
|
+
return (_jsx("input", { type: field.type, id: field.id, placeholder: field.placeholder, required: field.required, value: formData[field.id] || '', onChange: (e) => handleChange(field.id, e.target.value), className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500" }));
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return (_jsxs("div", { className: "bg-white rounded-lg shadow-md p-6 max-w-2xl", children: [_jsx("h2", { className: "text-2xl font-bold mb-2", children: title }), description && _jsx("p", { className: "text-gray-600 mb-6", children: description }), _jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [fields.map(field => (_jsxs("div", { children: [field.type !== 'checkbox' && (_jsxs("label", { htmlFor: field.id, className: "block text-sm font-medium text-gray-700 mb-1", children: [field.label, field.required && _jsx("span", { className: "text-red-500 ml-1", children: "*" })] })), renderField(field)] }, field.id))), _jsx("button", { type: "submit", className: "w-full px-4 py-2 bg-blue-600 text-white font-medium rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors", children: submitLabel })] })] }));
|
|
25
|
+
};
|
|
26
|
+
export const formWidgetDefinition = {
|
|
27
|
+
id: 'form-widget',
|
|
28
|
+
type: 'form',
|
|
29
|
+
title: 'Form Widget',
|
|
30
|
+
description: 'Interactive form with customizable fields',
|
|
31
|
+
props: {
|
|
32
|
+
title: 'Contact Us',
|
|
33
|
+
description: 'Fill out the form below to get in touch',
|
|
34
|
+
fields: [
|
|
35
|
+
{ id: 'name', type: 'text', label: 'Name', required: true },
|
|
36
|
+
{ id: 'email', type: 'email', label: 'Email', required: true },
|
|
37
|
+
{ id: 'message', type: 'textarea', label: 'Message', required: true },
|
|
38
|
+
],
|
|
39
|
+
submitLabel: 'Send Message',
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=FormWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormWidget.js","sourceRoot":"","sources":["../../../src/widgets/form/FormWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './banner/BannerWidget';
|
|
3
|
+
export * from './form/FormWidget';
|
|
4
|
+
import type { WidgetRegistry } from './types';
|
|
5
|
+
export declare const widgetRegistry: WidgetRegistry;
|
|
6
|
+
export declare function getWidgetDefinition(type: string): import("./types").WidgetDefinition;
|
|
7
|
+
export declare function getAvailableWidgets(): import("./types").WidgetDefinition[];
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAKA,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQ9C,eAAO,MAAM,cAAc,EAAE,cAe5B,CAAC;AAKF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,sCAE/C;AAKD,wBAAgB,mBAAmB,yCAElC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './banner/BannerWidget';
|
|
3
|
+
export * from './form/FormWidget';
|
|
4
|
+
import { bannerWidgetDefinition } from './banner/BannerWidget';
|
|
5
|
+
import { formWidgetDefinition } from './form/FormWidget';
|
|
6
|
+
export const widgetRegistry = {
|
|
7
|
+
banner: {
|
|
8
|
+
type: 'banner',
|
|
9
|
+
name: 'Banner Widget',
|
|
10
|
+
description: 'Display informational banners with different types and actions',
|
|
11
|
+
category: 'Display',
|
|
12
|
+
defaultProps: bannerWidgetDefinition.props || {},
|
|
13
|
+
},
|
|
14
|
+
form: {
|
|
15
|
+
type: 'form',
|
|
16
|
+
name: 'Form Widget',
|
|
17
|
+
description: 'Interactive form with customizable fields',
|
|
18
|
+
category: 'Input',
|
|
19
|
+
defaultProps: formWidgetDefinition.props || {},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
export function getWidgetDefinition(type) {
|
|
23
|
+
return widgetRegistry[type];
|
|
24
|
+
}
|
|
25
|
+
export function getAvailableWidgets() {
|
|
26
|
+
return Object.values(widgetRegistry);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/widgets/index.ts"],"names":[],"mappings":"AAKA,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gEAAgE;QAC7E,QAAQ,EAAE,SAAS;QACnB,YAAY,EAAE,sBAAsB,CAAC,KAAK,IAAI,EAAE;KACjD;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,OAAO;QACjB,YAAY,EAAE,oBAAoB,CAAC,KAAK,IAAI,EAAE;KAC/C;CACF,CAAC;AAKF,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAKD,MAAM,UAAU,mBAAmB;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type WidgetType = 'banner' | 'form' | 'calendar' | 'email-button' | 'custom';
|
|
2
|
+
export interface WidgetConfig {
|
|
3
|
+
id: string;
|
|
4
|
+
type: WidgetType;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
props?: Record<string, unknown>;
|
|
8
|
+
styles?: Record<string, string>;
|
|
9
|
+
}
|
|
10
|
+
export interface WidgetDefinition {
|
|
11
|
+
type: WidgetType;
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
category: string;
|
|
15
|
+
previewImage?: string;
|
|
16
|
+
defaultProps: Record<string, unknown>;
|
|
17
|
+
schema?: {
|
|
18
|
+
properties: Record<string, {
|
|
19
|
+
type: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
default?: unknown;
|
|
22
|
+
}>;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface WidgetRegistry {
|
|
26
|
+
[key: string]: WidgetDefinition;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/widgets/types.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC;AAEpF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,OAAO,CAAC,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/widgets/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@codefluss/sandbox",
|
|
3
|
+
"version": "0.0.1-alpha.1",
|
|
4
|
+
"description": "Sandbox plugin for securely rendering user-generated HTML/CSS/JavaScript code",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./core": {
|
|
13
|
+
"types": "./dist/core/index.d.ts",
|
|
14
|
+
"default": "./dist/core/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./converters/shared": {
|
|
17
|
+
"types": "./dist/converters/shared/index.d.ts",
|
|
18
|
+
"default": "./dist/converters/shared/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./converters/codepen": {
|
|
21
|
+
"types": "./dist/converters/codepen/index.d.ts",
|
|
22
|
+
"default": "./dist/converters/codepen/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./converters/gist": {
|
|
25
|
+
"types": "./dist/converters/gist/index.d.ts",
|
|
26
|
+
"default": "./dist/converters/gist/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./converters/auto-detect": {
|
|
29
|
+
"types": "./dist/converters/auto-detect/index.d.ts",
|
|
30
|
+
"default": "./dist/converters/auto-detect/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./storage": {
|
|
33
|
+
"types": "./dist/storage/index.d.ts",
|
|
34
|
+
"default": "./dist/storage/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./frameworks": {
|
|
37
|
+
"types": "./dist/frameworks/index.d.ts",
|
|
38
|
+
"default": "./dist/frameworks/index.js"
|
|
39
|
+
},
|
|
40
|
+
"./frameworks/templates": {
|
|
41
|
+
"types": "./dist/frameworks/templates/index.d.ts",
|
|
42
|
+
"default": "./dist/frameworks/templates/index.js"
|
|
43
|
+
},
|
|
44
|
+
"./renderer": {
|
|
45
|
+
"types": "./dist/renderer.d.ts",
|
|
46
|
+
"default": "./dist/renderer.js"
|
|
47
|
+
},
|
|
48
|
+
"./components": {
|
|
49
|
+
"types": "./dist/components/index.d.ts",
|
|
50
|
+
"default": "./dist/components/index.js"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"dist",
|
|
55
|
+
"README.md",
|
|
56
|
+
"CHANGELOG.md"
|
|
57
|
+
],
|
|
58
|
+
"keywords": [
|
|
59
|
+
"sandbox",
|
|
60
|
+
"iframe",
|
|
61
|
+
"code-editor",
|
|
62
|
+
"html",
|
|
63
|
+
"css",
|
|
64
|
+
"javascript",
|
|
65
|
+
"preview",
|
|
66
|
+
"plugin",
|
|
67
|
+
"page-builder"
|
|
68
|
+
],
|
|
69
|
+
"author": "Codefluss",
|
|
70
|
+
"license": "MIT",
|
|
71
|
+
"repository": {
|
|
72
|
+
"type": "git",
|
|
73
|
+
"url": "https://github.com/codefluss/builder.git",
|
|
74
|
+
"directory": "frontend/plugins/sandbox"
|
|
75
|
+
},
|
|
76
|
+
"peerDependencies": {
|
|
77
|
+
"next": "^16.0.1",
|
|
78
|
+
"react": "^19.2.0"
|
|
79
|
+
},
|
|
80
|
+
"dependencies": {
|
|
81
|
+
"@codesandbox/sandpack-react": "^2.20.0",
|
|
82
|
+
"cheerio": "^1.1.2",
|
|
83
|
+
"clsx": "^2.1.1",
|
|
84
|
+
"isomorphic-dompurify": "^2.34.0",
|
|
85
|
+
"jszip": "^3.10.1",
|
|
86
|
+
"tailwind-merge": "^3.4.0",
|
|
87
|
+
"@codefluss/base-types": "0.0.1-alpha.1"
|
|
88
|
+
},
|
|
89
|
+
"devDependencies": {
|
|
90
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
91
|
+
"@testing-library/react": "^16.3.0",
|
|
92
|
+
"@testing-library/user-event": "^14.6.1",
|
|
93
|
+
"@types/dompurify": "^3.2.0",
|
|
94
|
+
"@types/jszip": "^3.4.1",
|
|
95
|
+
"@types/node": "^24.10.3",
|
|
96
|
+
"@types/react": "^19.2.7",
|
|
97
|
+
"@types/react-dom": "^19.2.3",
|
|
98
|
+
"@vitejs/plugin-react": "^5.1.2",
|
|
99
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
100
|
+
"@vitest/ui": "^4.0.15",
|
|
101
|
+
"happy-dom": "^20.0.11",
|
|
102
|
+
"typescript": "^5.9.3",
|
|
103
|
+
"vitest": "^4.0.15"
|
|
104
|
+
},
|
|
105
|
+
"publishConfig": {
|
|
106
|
+
"access": "public"
|
|
107
|
+
},
|
|
108
|
+
"scripts": {
|
|
109
|
+
"build": "tsc",
|
|
110
|
+
"dev": "tsc --watch",
|
|
111
|
+
"test": "vitest",
|
|
112
|
+
"test:watch": "vitest --watch",
|
|
113
|
+
"lint": "biome check src/",
|
|
114
|
+
"format": "biome format --write src/"
|
|
115
|
+
}
|
|
116
|
+
}
|