slice-machine-ui 2.19.2-alpha.jp-figma-to-prismic.2 → 2.19.2-alpha.jp-figma-to-prismic.3
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/out/404.html +1 -1
- package/out/_next/static/{j0_D1z-ZN75hJO-JvwC0X → 8UM-Fh6SBL5e0B_msyLxt}/_buildManifest.js +1 -1
- package/out/_next/static/chunks/907-fbd4308471792876.js +1 -0
- package/out/_next/static/chunks/pages/{_app-b73cf0344465689d.js → _app-a9ca8c9f371bd423.js} +1 -1
- package/out/changelog.html +1 -1
- package/out/changes.html +1 -1
- package/out/custom-types/[customTypeId].html +1 -1
- package/out/custom-types.html +1 -1
- package/out/index.html +1 -1
- package/out/labs.html +1 -1
- package/out/page-types/[pageTypeId].html +1 -1
- package/out/slices/[lib]/[sliceName]/[variation]/simulator.html +1 -1
- package/out/slices/[lib]/[sliceName]/[variation].html +1 -1
- package/out/slices.html +1 -1
- package/package.json +3 -3
- package/src/features/customTypes/customTypesBuilder/CreateSliceFromImageModal/CreateSliceFromImageModal.tsx +155 -55
- package/src/features/customTypes/customTypesBuilder/CreateSliceFromImageModal/SliceCard.tsx +17 -2
- package/test/src/modules/__fixtures__/serverState.ts +2 -1
- package/out/_next/static/chunks/907-88dafe5c1e80dead.js +0 -1
- /package/out/_next/static/{j0_D1z-ZN75hJO-JvwC0X → 8UM-Fh6SBL5e0B_msyLxt}/_ssgManifest.js +0 -0
package/out/changelog.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/59b4e022-ef680789f7cc9b11.js" defer=""></script><script src="/_next/static/chunks/183-4ea255b867ff171b.js" defer=""></script><script src="/_next/static/chunks/870-a72b74312773efea.js" defer=""></script><script src="/_next/static/chunks/pages/changelog-8514e0696e90a1b2.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/changelog","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
package/out/changes.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/d98ebc475f8423a3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d98ebc475f8423a3.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/d98ebc475f8423a3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/d98ebc475f8423a3.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/59b4e022-ef680789f7cc9b11.js" defer=""></script><script src="/_next/static/chunks/c8eae200-966ce352f7b5d2b9.js" defer=""></script><script src="/_next/static/chunks/8eec4907-b712959d9f984b68.js" defer=""></script><script src="/_next/static/chunks/66-d9d3bcb5d041cb6d.js" defer=""></script><script src="/_next/static/chunks/125-00b909bdbab2ca15.js" defer=""></script><script src="/_next/static/chunks/20-4cb8941c8aafa019.js" defer=""></script><script src="/_next/static/chunks/593-97393b59cba3d429.js" defer=""></script><script src="/_next/static/chunks/pages/changes-b3f45dfeb5dc08f0.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/changes","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/56f2a6684a524374.css" as="style"/><link rel="stylesheet" href="/_next/static/css/56f2a6684a524374.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/56f2a6684a524374.css" as="style"/><link rel="stylesheet" href="/_next/static/css/56f2a6684a524374.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/59b4e022-ef680789f7cc9b11.js" defer=""></script><script src="/_next/static/chunks/f36c6662-1f3a854183168b10.js" defer=""></script><script src="/_next/static/chunks/4c744e84-480e426e4b1cfef3.js" defer=""></script><script src="/_next/static/chunks/065a3ddb-9a38ca0d60f0bf2f.js" defer=""></script><script src="/_next/static/chunks/1cc2734a-09fb3b997ad1eb70.js" defer=""></script><script src="/_next/static/chunks/397-e6c340070a3bcb41.js" defer=""></script><script src="/_next/static/chunks/66-d9d3bcb5d041cb6d.js" defer=""></script><script src="/_next/static/chunks/183-4ea255b867ff171b.js" defer=""></script><script src="/_next/static/chunks/344-b64f09e670634ed1.js" defer=""></script><script src="/_next/static/chunks/256-07f768a2b19b0a0e.js" defer=""></script><script src="/_next/static/chunks/422-c9192a1dbdd2ae0e.js" defer=""></script><script src="/_next/static/chunks/20-4cb8941c8aafa019.js" defer=""></script><script src="/_next/static/chunks/647-aa094286bc248d52.js" defer=""></script><script src="/_next/static/chunks/630-2bf927bca082a191.js" defer=""></script><script src="/_next/static/chunks/907-fbd4308471792876.js" defer=""></script><script src="/_next/static/chunks/489-ce3053e1d81ade83.js" defer=""></script><script src="/_next/static/chunks/pages/custom-types/%5BcustomTypeId%5D-02278526092bcf5c.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/custom-types/[customTypeId]","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
package/out/custom-types.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/4e475d945cf8a890.css" as="style"/><link rel="stylesheet" href="/_next/static/css/4e475d945cf8a890.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/4e475d945cf8a890.css" as="style"/><link rel="stylesheet" href="/_next/static/css/4e475d945cf8a890.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/397-e6c340070a3bcb41.js" defer=""></script><script src="/_next/static/chunks/647-aa094286bc248d52.js" defer=""></script><script src="/_next/static/chunks/248-84a5987f0499b074.js" defer=""></script><script src="/_next/static/chunks/pages/custom-types-5acd56959b60346f.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/custom-types","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
package/out/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/4e475d945cf8a890.css" as="style"/><link rel="stylesheet" href="/_next/static/css/4e475d945cf8a890.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/4e475d945cf8a890.css" as="style"/><link rel="stylesheet" href="/_next/static/css/4e475d945cf8a890.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/397-e6c340070a3bcb41.js" defer=""></script><script src="/_next/static/chunks/647-aa094286bc248d52.js" defer=""></script><script src="/_next/static/chunks/248-84a5987f0499b074.js" defer=""></script><script src="/_next/static/chunks/pages/index-0d8cb369de720a35.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
package/out/labs.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/pages/labs-56fd818a63553497.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/labs","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/56f2a6684a524374.css" as="style"/><link rel="stylesheet" href="/_next/static/css/56f2a6684a524374.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/56f2a6684a524374.css" as="style"/><link rel="stylesheet" href="/_next/static/css/56f2a6684a524374.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/59b4e022-ef680789f7cc9b11.js" defer=""></script><script src="/_next/static/chunks/f36c6662-1f3a854183168b10.js" defer=""></script><script src="/_next/static/chunks/4c744e84-480e426e4b1cfef3.js" defer=""></script><script src="/_next/static/chunks/065a3ddb-9a38ca0d60f0bf2f.js" defer=""></script><script src="/_next/static/chunks/1cc2734a-09fb3b997ad1eb70.js" defer=""></script><script src="/_next/static/chunks/397-e6c340070a3bcb41.js" defer=""></script><script src="/_next/static/chunks/66-d9d3bcb5d041cb6d.js" defer=""></script><script src="/_next/static/chunks/183-4ea255b867ff171b.js" defer=""></script><script src="/_next/static/chunks/344-b64f09e670634ed1.js" defer=""></script><script src="/_next/static/chunks/256-07f768a2b19b0a0e.js" defer=""></script><script src="/_next/static/chunks/422-c9192a1dbdd2ae0e.js" defer=""></script><script src="/_next/static/chunks/20-4cb8941c8aafa019.js" defer=""></script><script src="/_next/static/chunks/647-aa094286bc248d52.js" defer=""></script><script src="/_next/static/chunks/630-2bf927bca082a191.js" defer=""></script><script src="/_next/static/chunks/907-fbd4308471792876.js" defer=""></script><script src="/_next/static/chunks/489-ce3053e1d81ade83.js" defer=""></script><script src="/_next/static/chunks/pages/page-types/%5BpageTypeId%5D-4d99de1b52de7c9b.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/page-types/[pageTypeId]","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/c8eae200-966ce352f7b5d2b9.js" defer=""></script><script src="/_next/static/chunks/72585f70-28b4d7d5384b3703.js" defer=""></script><script src="/_next/static/chunks/429-aab52070cad2884b.js" defer=""></script><script src="/_next/static/chunks/pages/slices/%5Blib%5D/%5BsliceName%5D/%5Bvariation%5D/simulator-faeb6d2f77d97096.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/slices/[lib]/[sliceName]/[variation]/simulator","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/e8e03c0d4003d1eb.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e8e03c0d4003d1eb.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/e8e03c0d4003d1eb.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e8e03c0d4003d1eb.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/59b4e022-ef680789f7cc9b11.js" defer=""></script><script src="/_next/static/chunks/c8eae200-966ce352f7b5d2b9.js" defer=""></script><script src="/_next/static/chunks/f36c6662-1f3a854183168b10.js" defer=""></script><script src="/_next/static/chunks/4c744e84-480e426e4b1cfef3.js" defer=""></script><script src="/_next/static/chunks/065a3ddb-9a38ca0d60f0bf2f.js" defer=""></script><script src="/_next/static/chunks/1cc2734a-09fb3b997ad1eb70.js" defer=""></script><script src="/_next/static/chunks/52d4c156-89c6ec6efca0a0bb.js" defer=""></script><script src="/_next/static/chunks/397-e6c340070a3bcb41.js" defer=""></script><script src="/_next/static/chunks/66-d9d3bcb5d041cb6d.js" defer=""></script><script src="/_next/static/chunks/183-4ea255b867ff171b.js" defer=""></script><script src="/_next/static/chunks/344-b64f09e670634ed1.js" defer=""></script><script src="/_next/static/chunks/256-07f768a2b19b0a0e.js" defer=""></script><script src="/_next/static/chunks/444-d39213143f782fec.js" defer=""></script><script src="/_next/static/chunks/484-3e011e79c41f0342.js" defer=""></script><script src="/_next/static/chunks/20-4cb8941c8aafa019.js" defer=""></script><script src="/_next/static/chunks/630-2bf927bca082a191.js" defer=""></script><script src="/_next/static/chunks/593-97393b59cba3d429.js" defer=""></script><script src="/_next/static/chunks/pages/slices/%5Blib%5D/%5BsliceName%5D/%5Bvariation%5D-330e5d545d9f6269.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/slices/[lib]/[sliceName]/[variation]","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
package/out/slices.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/efa5152b7c0f35c0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/efa5152b7c0f35c0.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/bc89f2cd4e4781f5.css" as="style"/><link rel="stylesheet" href="/_next/static/css/bc89f2cd4e4781f5.css" data-n-g=""/><link rel="preload" href="/_next/static/css/efa5152b7c0f35c0.css" as="style"/><link rel="stylesheet" href="/_next/static/css/efa5152b7c0f35c0.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-24ddb02bea621501.js" defer=""></script><script src="/_next/static/chunks/framework-ab7ddb551c23d05a.js" defer=""></script><script src="/_next/static/chunks/main-de87250a4e0c9fcf.js" defer=""></script><script src="/_next/static/chunks/pages/_app-a9ca8c9f371bd423.js" defer=""></script><script src="/_next/static/chunks/59b4e022-ef680789f7cc9b11.js" defer=""></script><script src="/_next/static/chunks/c8eae200-966ce352f7b5d2b9.js" defer=""></script><script src="/_next/static/chunks/52d4c156-89c6ec6efca0a0bb.js" defer=""></script><script src="/_next/static/chunks/397-e6c340070a3bcb41.js" defer=""></script><script src="/_next/static/chunks/66-d9d3bcb5d041cb6d.js" defer=""></script><script src="/_next/static/chunks/344-b64f09e670634ed1.js" defer=""></script><script src="/_next/static/chunks/444-d39213143f782fec.js" defer=""></script><script src="/_next/static/chunks/20-4cb8941c8aafa019.js" defer=""></script><script src="/_next/static/chunks/907-fbd4308471792876.js" defer=""></script><script src="/_next/static/chunks/593-97393b59cba3d429.js" defer=""></script><script src="/_next/static/chunks/pages/slices-de5f8cf4719e88c4.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_buildManifest.js" defer=""></script><script src="/_next/static/8UM-Fh6SBL5e0B_msyLxt/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/slices","query":{},"buildId":"8UM-Fh6SBL5e0B_msyLxt","runtimeConfig":{"sentryEnvironment":"alpha"},"nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "slice-machine-ui",
|
|
3
|
-
"version": "2.19.2-alpha.jp-figma-to-prismic.
|
|
3
|
+
"version": "2.19.2-alpha.jp-figma-to-prismic.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "A visual builder for your Slice Models with all the tools you need to generate data models and mock CMS content locally.",
|
|
6
6
|
"repository": {
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"start-slicemachine": "./bin/start-slicemachine.cjs"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@slicemachine/manager": "0.25.7-alpha.jp-figma-to-prismic.
|
|
39
|
-
"start-slicemachine": "0.12.65-alpha.jp-figma-to-prismic.
|
|
38
|
+
"@slicemachine/manager": "0.25.7-alpha.jp-figma-to-prismic.4",
|
|
39
|
+
"start-slicemachine": "0.12.65-alpha.jp-figma-to-prismic.4"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@emotion/react": "11.11.1",
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
Box,
|
|
5
5
|
Button,
|
|
6
6
|
Dialog,
|
|
7
|
+
DialogActionButton,
|
|
7
8
|
DialogActions,
|
|
8
9
|
DialogCancelButton,
|
|
9
10
|
DialogContent,
|
|
@@ -54,7 +55,7 @@ interface CreateSliceFromImageModalProps {
|
|
|
54
55
|
export function CreateSliceFromImageModal(
|
|
55
56
|
props: CreateSliceFromImageModalProps,
|
|
56
57
|
) {
|
|
57
|
-
const { open, location, onClose } = props;
|
|
58
|
+
const { open, location, onClose, onSuccess } = props;
|
|
58
59
|
const [slices, setSlices] = useState<Slice[]>([]);
|
|
59
60
|
const { syncChanges } = useAutoSync();
|
|
60
61
|
const { createSliceSuccess } = useSliceMachineActions();
|
|
@@ -105,22 +106,32 @@ export function CreateSliceFromImageModal(
|
|
|
105
106
|
return;
|
|
106
107
|
}
|
|
107
108
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
image
|
|
113
|
-
|
|
114
|
-
|
|
109
|
+
const startIndex = slices.length;
|
|
110
|
+
setSlices((prevSlices) => [
|
|
111
|
+
...prevSlices,
|
|
112
|
+
...images.map(
|
|
113
|
+
(image): Slice => ({
|
|
114
|
+
status: "uploading",
|
|
115
|
+
source: "upload",
|
|
116
|
+
image,
|
|
117
|
+
}),
|
|
118
|
+
),
|
|
119
|
+
]);
|
|
115
120
|
|
|
116
|
-
images.forEach((imageData,
|
|
117
|
-
|
|
121
|
+
images.forEach((imageData, relativeIndex) => {
|
|
122
|
+
const index = startIndex + relativeIndex;
|
|
123
|
+
void uploadImage({ index, imageData, source: "upload" });
|
|
118
124
|
});
|
|
119
125
|
};
|
|
120
126
|
|
|
121
127
|
const handlePaste = async () => {
|
|
122
|
-
|
|
123
|
-
|
|
128
|
+
if (!open) return;
|
|
129
|
+
|
|
130
|
+
// Don't allow pasting while uploads or generation are in progress
|
|
131
|
+
const isLoading = slices.some(
|
|
132
|
+
(slice) => slice.status === "uploading" || slice.status === "generating",
|
|
133
|
+
);
|
|
134
|
+
if (isLoading) return;
|
|
124
135
|
|
|
125
136
|
const supportsClipboardRead =
|
|
126
137
|
typeof navigator.clipboard?.read === "function";
|
|
@@ -217,7 +228,7 @@ export function CreateSliceFromImageModal(
|
|
|
217
228
|
]);
|
|
218
229
|
|
|
219
230
|
// Start uploading the new image
|
|
220
|
-
void
|
|
231
|
+
void uploadImage({ index: newIndex, imageData, source: "figma" });
|
|
221
232
|
|
|
222
233
|
toast.success(`Pasted ${imageName}${success ? " from Figma" : ""}`);
|
|
223
234
|
} catch (error) {
|
|
@@ -228,7 +239,7 @@ export function CreateSliceFromImageModal(
|
|
|
228
239
|
}
|
|
229
240
|
};
|
|
230
241
|
|
|
231
|
-
const
|
|
242
|
+
const uploadImage = async (args: {
|
|
232
243
|
index: number;
|
|
233
244
|
imageData: File;
|
|
234
245
|
source: "figma" | "upload";
|
|
@@ -236,22 +247,28 @@ export function CreateSliceFromImageModal(
|
|
|
236
247
|
const { index, imageData, source } = args;
|
|
237
248
|
const currentId = id.current;
|
|
238
249
|
|
|
239
|
-
const smConfig = await managerClient.project.getSliceMachineConfig();
|
|
240
|
-
const libraryID = smConfig?.libraries?.[0];
|
|
241
|
-
if (libraryID === undefined) {
|
|
242
|
-
throw new Error("No library found in the config.");
|
|
243
|
-
}
|
|
244
|
-
|
|
245
250
|
setSlice({
|
|
246
251
|
index,
|
|
247
|
-
slice: (prevSlice) => ({
|
|
252
|
+
slice: (prevSlice) => ({
|
|
253
|
+
...prevSlice,
|
|
254
|
+
status: "uploading",
|
|
255
|
+
image: imageData,
|
|
256
|
+
source,
|
|
257
|
+
}),
|
|
248
258
|
});
|
|
249
259
|
|
|
250
260
|
try {
|
|
251
261
|
const imageUrl = await getImageUrl({ image: imageData });
|
|
252
262
|
if (currentId !== id.current) return;
|
|
253
263
|
|
|
254
|
-
|
|
264
|
+
setSlice({
|
|
265
|
+
index,
|
|
266
|
+
slice: (prevSlice) => ({
|
|
267
|
+
...prevSlice,
|
|
268
|
+
status: "pending",
|
|
269
|
+
thumbnailUrl: imageUrl,
|
|
270
|
+
}),
|
|
271
|
+
});
|
|
255
272
|
} catch {
|
|
256
273
|
if (currentId !== id.current) return;
|
|
257
274
|
setSlice({
|
|
@@ -259,12 +276,32 @@ export function CreateSliceFromImageModal(
|
|
|
259
276
|
slice: (prevSlice) => ({
|
|
260
277
|
...prevSlice,
|
|
261
278
|
status: "uploadError",
|
|
262
|
-
onRetry: () => void
|
|
279
|
+
onRetry: () => void uploadImage({ index, imageData, source }),
|
|
263
280
|
}),
|
|
264
281
|
});
|
|
265
282
|
}
|
|
266
283
|
};
|
|
267
284
|
|
|
285
|
+
const generateAllPendingSlices = async () => {
|
|
286
|
+
const smConfig = await managerClient.project.getSliceMachineConfig();
|
|
287
|
+
const libraryID = smConfig?.libraries?.[0];
|
|
288
|
+
if (libraryID === undefined) {
|
|
289
|
+
throw new Error("No library found in the config.");
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// Generate all pending slices simultaneously
|
|
293
|
+
slices.forEach((slice, index) => {
|
|
294
|
+
if (slice.status === "pending") {
|
|
295
|
+
void inferSlice({
|
|
296
|
+
index,
|
|
297
|
+
imageUrl: slice.thumbnailUrl,
|
|
298
|
+
libraryID,
|
|
299
|
+
source: slice.source,
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
});
|
|
303
|
+
};
|
|
304
|
+
|
|
268
305
|
const inferSlice = async (args: {
|
|
269
306
|
index: number;
|
|
270
307
|
imageUrl: string;
|
|
@@ -324,29 +361,41 @@ export function CreateSliceFromImageModal(
|
|
|
324
361
|
};
|
|
325
362
|
|
|
326
363
|
const onAllComplete = async () => {
|
|
327
|
-
const newSlices = slices.reduce<NewSlice[]
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
364
|
+
const newSlices = slices.reduce<{ upload: NewSlice[]; figma: NewSlice[] }>(
|
|
365
|
+
(acc, slice) => {
|
|
366
|
+
if (slice.status === "success") {
|
|
367
|
+
if (slice.source === "upload") {
|
|
368
|
+
acc.upload.push(slice);
|
|
369
|
+
} else {
|
|
370
|
+
acc.figma.push(slice);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return acc;
|
|
374
|
+
},
|
|
375
|
+
{ upload: [], figma: [] },
|
|
376
|
+
);
|
|
333
377
|
|
|
334
|
-
if (!newSlices.length) return;
|
|
378
|
+
if (!newSlices.upload.length && !newSlices.figma.length) return;
|
|
335
379
|
|
|
336
380
|
const currentId = id.current;
|
|
337
381
|
try {
|
|
338
382
|
// Only the slices generated from uploaded images need this step
|
|
339
|
-
const { slices, library } = await addSlices(
|
|
340
|
-
newSlices.filter((slice) => slice.source === "upload"),
|
|
341
|
-
);
|
|
383
|
+
const { slices, library } = await addSlices(newSlices.upload);
|
|
342
384
|
if (currentId !== id.current) return;
|
|
343
385
|
|
|
344
|
-
id.current = crypto.randomUUID();
|
|
345
|
-
|
|
346
386
|
const serverState = await getState();
|
|
347
387
|
createSliceSuccess(serverState.libraries);
|
|
348
388
|
syncChanges();
|
|
349
389
|
|
|
390
|
+
const total = newSlices.upload.length + newSlices.figma.length;
|
|
391
|
+
toast.success(
|
|
392
|
+
`${total} new slice${total > 1 ? "s" : ""} successfully generated.`,
|
|
393
|
+
);
|
|
394
|
+
|
|
395
|
+
onSuccess({ slices: [...newSlices.upload, ...newSlices.figma], library });
|
|
396
|
+
id.current = crypto.randomUUID();
|
|
397
|
+
setSlices([]);
|
|
398
|
+
|
|
350
399
|
void completeStep("createSlice");
|
|
351
400
|
|
|
352
401
|
for (const { model, langSmithUrl } of slices) {
|
|
@@ -368,25 +417,38 @@ export function CreateSliceFromImageModal(
|
|
|
368
417
|
langSmithUrl,
|
|
369
418
|
});
|
|
370
419
|
}
|
|
371
|
-
|
|
372
|
-
toast.success(
|
|
373
|
-
`${newSlices.length} new slice${
|
|
374
|
-
newSlices.length > 1 ? "s" : ""
|
|
375
|
-
} successfully generated.`,
|
|
376
|
-
);
|
|
377
420
|
} catch {
|
|
378
421
|
if (currentId !== id.current) return;
|
|
379
422
|
toast.error("An unexpected error happened while adding slices.");
|
|
380
423
|
}
|
|
381
424
|
};
|
|
382
425
|
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
|
|
426
|
+
const handleClose = () => {
|
|
427
|
+
id.current = crypto.randomUUID();
|
|
428
|
+
setSlices([]);
|
|
429
|
+
onClose();
|
|
430
|
+
};
|
|
431
|
+
|
|
432
|
+
const loadingSliceCount = slices.filter((slice) => {
|
|
433
|
+
return slice.status === "uploading" || slice.status === "generating";
|
|
434
|
+
}).length;
|
|
435
|
+
|
|
436
|
+
const pendingSliceCount = slices.filter((slice) => {
|
|
437
|
+
return slice.status === "pending";
|
|
438
|
+
}).length;
|
|
439
|
+
|
|
440
|
+
const hasTriggeredGeneration = slices.some((slice) => {
|
|
441
|
+
return slice.status === "generating" || slice.status === "success";
|
|
442
|
+
});
|
|
443
|
+
|
|
444
|
+
const generateSliceCount = loadingSliceCount + pendingSliceCount;
|
|
386
445
|
|
|
387
446
|
return (
|
|
388
|
-
<Dialog
|
|
389
|
-
|
|
447
|
+
<Dialog
|
|
448
|
+
open={open}
|
|
449
|
+
onOpenChange={loadingSliceCount > 0 ? undefined : onOpenChange}
|
|
450
|
+
>
|
|
451
|
+
<DialogHeader title="Generate with AI" />
|
|
390
452
|
<DialogContent gap={0}>
|
|
391
453
|
<DialogDescription hidden>
|
|
392
454
|
Upload images to generate slices with AI
|
|
@@ -461,24 +523,62 @@ export function CreateSliceFromImageModal(
|
|
|
461
523
|
</FileDropZone>
|
|
462
524
|
</Box>
|
|
463
525
|
) : (
|
|
464
|
-
|
|
526
|
+
<>
|
|
465
527
|
<Box
|
|
466
|
-
display="
|
|
467
|
-
|
|
468
|
-
|
|
528
|
+
display="flex"
|
|
529
|
+
alignItems="center"
|
|
530
|
+
justifyContent="space-between"
|
|
469
531
|
padding={16}
|
|
470
532
|
>
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
533
|
+
<Text variant="h3">Design</Text>
|
|
534
|
+
<FileUploadButton
|
|
535
|
+
size="medium"
|
|
536
|
+
color="grey"
|
|
537
|
+
onFilesSelected={onImagesSelected}
|
|
538
|
+
startIcon="attachFile"
|
|
539
|
+
disabled={hasTriggeredGeneration}
|
|
540
|
+
>
|
|
541
|
+
Add images
|
|
542
|
+
</FileUploadButton>
|
|
474
543
|
</Box>
|
|
475
|
-
|
|
544
|
+
<ScrollArea stableScrollbar={false}>
|
|
545
|
+
<Box
|
|
546
|
+
display="grid"
|
|
547
|
+
gridTemplateColumns="1fr 1fr"
|
|
548
|
+
gap={16}
|
|
549
|
+
padding={16}
|
|
550
|
+
>
|
|
551
|
+
{slices.map((slice, index) => (
|
|
552
|
+
<SliceCard slice={slice} key={`slice-${index}`} />
|
|
553
|
+
))}
|
|
554
|
+
</Box>
|
|
555
|
+
</ScrollArea>
|
|
556
|
+
</>
|
|
476
557
|
)}
|
|
477
558
|
|
|
478
559
|
<DialogActions>
|
|
479
|
-
<DialogCancelButton
|
|
560
|
+
<DialogCancelButton
|
|
561
|
+
size="medium"
|
|
562
|
+
onClick={handleClose}
|
|
563
|
+
disabled={loadingSliceCount > 0}
|
|
564
|
+
>
|
|
480
565
|
Close
|
|
481
566
|
</DialogCancelButton>
|
|
567
|
+
<DialogActionButton
|
|
568
|
+
color="purple"
|
|
569
|
+
startIcon="autoFixHigh"
|
|
570
|
+
onClick={() => void generateAllPendingSlices()}
|
|
571
|
+
disabled={
|
|
572
|
+
hasTriggeredGeneration ||
|
|
573
|
+
loadingSliceCount > 0 ||
|
|
574
|
+
pendingSliceCount === 0
|
|
575
|
+
}
|
|
576
|
+
loading={hasTriggeredGeneration}
|
|
577
|
+
size="medium"
|
|
578
|
+
>
|
|
579
|
+
Generate {generateSliceCount > 0 ? `(${generateSliceCount}) ` : ""}
|
|
580
|
+
{generateSliceCount === 1 ? "Slice" : "Slices"}
|
|
581
|
+
</DialogActionButton>
|
|
482
582
|
</DialogActions>
|
|
483
583
|
</DialogContent>
|
|
484
584
|
</Dialog>
|
|
@@ -18,6 +18,7 @@ export function SliceCard(props: SliceCardProps) {
|
|
|
18
18
|
slice.status === "uploadError" || slice.status === "generateError";
|
|
19
19
|
|
|
20
20
|
const hasThumbnail =
|
|
21
|
+
slice.status === "pending" ||
|
|
21
22
|
slice.status === "generateError" ||
|
|
22
23
|
slice.status === "generating" ||
|
|
23
24
|
slice.status === "success";
|
|
@@ -44,7 +45,7 @@ export function SliceCard(props: SliceCardProps) {
|
|
|
44
45
|
loading={loading}
|
|
45
46
|
startIcon={getStartIcon(slice.status)}
|
|
46
47
|
title={getTitle(slice)}
|
|
47
|
-
subtitle={getSubtitle(slice
|
|
48
|
+
subtitle={getSubtitle(slice)}
|
|
48
49
|
error={error}
|
|
49
50
|
action={action}
|
|
50
51
|
/>
|
|
@@ -65,6 +66,7 @@ function getTitle(slice: Slice) {
|
|
|
65
66
|
export type Slice = { image: File; source: "upload" | "figma" } & (
|
|
66
67
|
| { status: "uploading" }
|
|
67
68
|
| { status: "uploadError"; onRetry: () => void }
|
|
69
|
+
| { status: "pending"; thumbnailUrl: string }
|
|
68
70
|
| { status: "generating"; thumbnailUrl: string }
|
|
69
71
|
| { status: "generateError"; thumbnailUrl: string; onRetry: () => void }
|
|
70
72
|
| {
|
|
@@ -87,12 +89,25 @@ function getStartIcon(status: Slice["status"]) {
|
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
|
|
90
|
-
function
|
|
92
|
+
function formatFileSize(bytes: number): string {
|
|
93
|
+
if (bytes < 1024) {
|
|
94
|
+
return `${bytes} B`;
|
|
95
|
+
}
|
|
96
|
+
if (bytes < 1024 * 1024) {
|
|
97
|
+
return `${(bytes / 1024).toFixed(1)} kB`;
|
|
98
|
+
}
|
|
99
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function getSubtitle(slice: Slice) {
|
|
103
|
+
const { status } = slice;
|
|
91
104
|
switch (status) {
|
|
92
105
|
case "uploading":
|
|
93
106
|
return "Uploading...";
|
|
94
107
|
case "uploadError":
|
|
95
108
|
return "Unable to upload image";
|
|
109
|
+
case "pending":
|
|
110
|
+
return formatFileSize(slice.image.size);
|
|
96
111
|
case "generating":
|
|
97
112
|
return "Generating...";
|
|
98
113
|
case "generateError":
|
|
@@ -26,7 +26,8 @@ export const dummyServerState: Pick<
|
|
|
26
26
|
RepositoryService: "https://api.internal.prismic.io/repository/",
|
|
27
27
|
LocaleService: "https://api.internal.prismic.io/locale/",
|
|
28
28
|
CustomTypeService: "https://api.internal.prismic.io/custom-type/",
|
|
29
|
-
LlmProxyTypeService:
|
|
29
|
+
LlmProxyTypeService:
|
|
30
|
+
"https://sbqznqszdlqhjn4p4nfhtst6ra0wngjc.lambda-url.us-east-1.on.aws/",
|
|
30
31
|
},
|
|
31
32
|
shortId: "shortId",
|
|
32
33
|
},
|