@ydesign/react-editor 0.0.2

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.
Files changed (150) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/LICENSE +21 -0
  3. package/README.md +129 -0
  4. package/dist/app.css +2 -0
  5. package/dist/app.d.ts +13 -0
  6. package/dist/app.js +17 -0
  7. package/dist/canvas/context-menu/context-menu.d.ts +2 -0
  8. package/dist/canvas/context-menu/context-menu.js +0 -0
  9. package/dist/canvas/hotkeys.d.ts +3 -0
  10. package/dist/canvas/hotkeys.js +1 -0
  11. package/dist/canvas/workspace-canvas.d.ts +15 -0
  12. package/dist/canvas/workspace-canvas.js +1 -0
  13. package/dist/canvas/workspace.d.ts +9 -0
  14. package/dist/canvas/workspace.js +1 -0
  15. package/dist/chunk-2AWYWIIK.js +1 -0
  16. package/dist/chunk-3HQUN5MA.js +14 -0
  17. package/dist/chunk-55FJG4FK.js +1 -0
  18. package/dist/chunk-5MWZMSER.js +1 -0
  19. package/dist/chunk-6LFGFFHI.js +1 -0
  20. package/dist/chunk-75WC3GVB.js +1 -0
  21. package/dist/chunk-7LU5UGIG.js +16 -0
  22. package/dist/chunk-B35ZYWID.js +1 -0
  23. package/dist/chunk-DBQHEZPG.js +1 -0
  24. package/dist/chunk-DJBTBRPS.js +1 -0
  25. package/dist/chunk-E7ZSWHPU.js +1 -0
  26. package/dist/chunk-EMAFC3HG.js +1 -0
  27. package/dist/chunk-FIAIYSJ7.js +1 -0
  28. package/dist/chunk-GMISU6MD.js +1 -0
  29. package/dist/chunk-GYDTKPW5.js +1 -0
  30. package/dist/chunk-H67HTXU4.js +1 -0
  31. package/dist/chunk-IUFYYEGO.js +1 -0
  32. package/dist/chunk-JMIN2XMC.js +1 -0
  33. package/dist/chunk-JW76IC3E.js +1 -0
  34. package/dist/chunk-JWQ2DUXA.js +8 -0
  35. package/dist/chunk-LW2W4B2N.js +22 -0
  36. package/dist/chunk-M33EDDXB.js +1 -0
  37. package/dist/chunk-MNACXCF5.js +1 -0
  38. package/dist/chunk-O2XFH626.js +1 -0
  39. package/dist/chunk-OQ6HU62L.js +1 -0
  40. package/dist/chunk-P5I43V7X.js +1 -0
  41. package/dist/chunk-PBQY5UTI.js +1 -0
  42. package/dist/chunk-QJBRJELT.js +1 -0
  43. package/dist/chunk-R6Z6F447.js +1 -0
  44. package/dist/chunk-TE6HYOIP.js +7 -0
  45. package/dist/chunk-TX4BNXQC.js +1 -0
  46. package/dist/chunk-U7HIFGXC.js +1 -0
  47. package/dist/chunk-V5RJX32O.js +1 -0
  48. package/dist/chunk-V6ZZKUTN.js +1 -0
  49. package/dist/chunk-WIM26GEM.js +1 -0
  50. package/dist/chunk-WJT6VPDR.js +9 -0
  51. package/dist/chunk-XDLFQXMN.js +54 -0
  52. package/dist/chunk-XRRO2RT7.js +1 -0
  53. package/dist/chunk-XZAP76LL.js +1 -0
  54. package/dist/config.d.ts +2 -0
  55. package/dist/config.js +0 -0
  56. package/dist/hooks/use-duplicate-element.d.ts +12 -0
  57. package/dist/hooks/use-duplicate-element.js +1 -0
  58. package/dist/hooks/use-lock.d.ts +14 -0
  59. package/dist/hooks/use-lock.js +1 -0
  60. package/dist/hooks/use-remove-element.d.ts +12 -0
  61. package/dist/hooks/use-remove-element.js +1 -0
  62. package/dist/lib/utils.d.ts +5 -0
  63. package/dist/lib/utils.js +1 -0
  64. package/dist/model/store.d.ts +307 -0
  65. package/dist/model/store.js +1 -0
  66. package/dist/project.d.ts +21 -0
  67. package/dist/project.js +1 -0
  68. package/dist/side-panel/background-panel.d.ts +10 -0
  69. package/dist/side-panel/background-panel.js +1 -0
  70. package/dist/side-panel/index.d.ts +6 -0
  71. package/dist/side-panel/index.js +1 -0
  72. package/dist/side-panel/layers-panel.d.ts +10 -0
  73. package/dist/side-panel/layers-panel.js +1 -0
  74. package/dist/side-panel/photos-panel.d.ts +10 -0
  75. package/dist/side-panel/photos-panel.js +1 -0
  76. package/dist/side-panel/shapes-panel.d.ts +10 -0
  77. package/dist/side-panel/shapes-panel.js +1 -0
  78. package/dist/side-panel/side-panel.d.ts +35 -0
  79. package/dist/side-panel/side-panel.js +1 -0
  80. package/dist/side-panel/size-panel.d.ts +10 -0
  81. package/dist/side-panel/size-panel.js +1 -0
  82. package/dist/side-panel/tab-button.d.ts +12 -0
  83. package/dist/side-panel/tab-button.js +1 -0
  84. package/dist/side-panel/templates-panel.d.ts +10 -0
  85. package/dist/side-panel/templates-panel.js +1 -0
  86. package/dist/side-panel/text-panel.d.ts +10 -0
  87. package/dist/side-panel/text-panel.js +1 -0
  88. package/dist/side-panel/upload-panel.d.ts +10 -0
  89. package/dist/side-panel/upload-panel.js +1 -0
  90. package/dist/toolbar/default-toolbar.d.ts +12 -0
  91. package/dist/toolbar/default-toolbar.js +1 -0
  92. package/dist/toolbar/download-button.d.ts +10 -0
  93. package/dist/toolbar/download-button.js +1 -0
  94. package/dist/toolbar/duplicate-button.d.ts +12 -0
  95. package/dist/toolbar/duplicate-button.js +1 -0
  96. package/dist/toolbar/element-container.d.ts +13 -0
  97. package/dist/toolbar/element-container.js +1 -0
  98. package/dist/toolbar/filters-picker.d.ts +14 -0
  99. package/dist/toolbar/filters-picker.js +1 -0
  100. package/dist/toolbar/flip-button.d.ts +12 -0
  101. package/dist/toolbar/flip-button.js +1 -0
  102. package/dist/toolbar/group-button.d.ts +12 -0
  103. package/dist/toolbar/group-button.js +1 -0
  104. package/dist/toolbar/history-buttons.d.ts +12 -0
  105. package/dist/toolbar/history-buttons.js +1 -0
  106. package/dist/toolbar/image-eraser-pen.d.ts +5 -0
  107. package/dist/toolbar/image-eraser-pen.js +1 -0
  108. package/dist/toolbar/image-remove-background.d.ts +5 -0
  109. package/dist/toolbar/image-remove-background.js +1 -0
  110. package/dist/toolbar/image-toolbar.d.ts +24 -0
  111. package/dist/toolbar/image-toolbar.js +1 -0
  112. package/dist/toolbar/lock-button.d.ts +12 -0
  113. package/dist/toolbar/lock-button.js +1 -0
  114. package/dist/toolbar/many-toolbar.d.ts +5 -0
  115. package/dist/toolbar/many-toolbar.js +1 -0
  116. package/dist/toolbar/opacity-picker.d.ts +12 -0
  117. package/dist/toolbar/opacity-picker.js +1 -0
  118. package/dist/toolbar/position-picker.d.ts +12 -0
  119. package/dist/toolbar/position-picker.js +1 -0
  120. package/dist/toolbar/remove-button.d.ts +12 -0
  121. package/dist/toolbar/remove-button.js +1 -0
  122. package/dist/toolbar/text-ai-write.d.ts +7 -0
  123. package/dist/toolbar/text-ai-write.js +1 -0
  124. package/dist/toolbar/text-toolbar.d.ts +15 -0
  125. package/dist/toolbar/text-toolbar.js +1 -0
  126. package/dist/toolbar/toolbar.d.ts +20 -0
  127. package/dist/toolbar/toolbar.js +1 -0
  128. package/dist/toolbar/zoom-buttons.d.ts +15 -0
  129. package/dist/toolbar/zoom-buttons.js +12 -0
  130. package/dist/utils/blob.d.ts +5 -0
  131. package/dist/utils/blob.js +1 -0
  132. package/dist/utils/download.d.ts +3 -0
  133. package/dist/utils/download.js +1 -0
  134. package/dist/utils/file.d.ts +3 -0
  135. package/dist/utils/file.js +1 -0
  136. package/dist/utils/filters.d.ts +2 -0
  137. package/dist/utils/filters.js +0 -0
  138. package/dist/utils/fonts.d.ts +68 -0
  139. package/dist/utils/fonts.js +1 -0
  140. package/dist/utils/image.d.ts +13 -0
  141. package/dist/utils/image.js +1 -0
  142. package/dist/utils/index.d.ts +21 -0
  143. package/dist/utils/index.js +1 -0
  144. package/dist/utils/l10n.d.ts +21 -0
  145. package/dist/utils/l10n.js +1 -0
  146. package/dist/utils/loader.d.ts +6 -0
  147. package/dist/utils/loader.js +1 -0
  148. package/dist/utils/screen.d.ts +6 -0
  149. package/dist/utils/screen.js +1 -0
  150. package/package.json +128 -0
@@ -0,0 +1,9 @@
1
+ import*as A from"mobx";var u=A.observable([]);function S(t){u.push(t)}function I(t){let e=u.findIndex(n=>n.fontFamily===t);e!==-1&&u.splice(e,1)}function O(t){u.replace(t)}var E="Some test text;?#D-\u041F\u0420\u0418\u0412\u0415\u0422!1230o9u8i7y6t5r4e3w2q1",g=null;function i(t,e="Arial",n="normal",s="normal"){g||(g=document.createElement("canvas"));let o=g.getContext("2d");return o.font=`${n} ${s} 40px '${t}', ${e}`,o.measureText(E).width}var c={Arial:!0},N=t=>!!c[t],v=6e3,p=60,y=()=>{},R=t=>{y=t},$=()=>v,W=t=>{$=t};async function M(t,e="normal",n="normal"){if(c[t])return;let s=!!document.fonts?.load,o=i("Arial","Arial",e,n);if(s)try{if(await document.fonts.load(`${n} ${e} 16px '${t}'`),i(t,"Arial",e,n)!==o){c[t]=!0;return}}catch{}let l=i("Times","Times",e,n),a=i(t,"Arial",e,n),d=Math.min(v,$())/p;for(let m=0;m<d;m++){let x=i(t,"Arial",e,n),C=i(t,"Times",e,n);if(x!==a||x!==o||C!==l){await T(p),c[t]=!0;return}await T(p)}let f=`Timeout for loading font "${t}". Is it a correct font family?`;console.warn(f),y(f)}function T(t){return new Promise(e=>setTimeout(e,t))}var F={},r=null;function w(){return r||(r=document.getElementById("custom-font-style"),r||(r=document.createElement("style"),r.id="custom-font-style",document.head.appendChild(r))),r.sheet}function P(t){let{fontFamily:e,url:n,styles:s}=t;if(F[e]||!n&&!s)return;let o=s||(n?[{src:`url("${n}")`}]:[]),l=w();o.forEach(a=>{let d=`
2
+ @font-face {
3
+ font-family: '${e}';
4
+ src: ${a.src};
5
+ font-style: ${a.fontStyle||"normal"};
6
+ font-weight: ${a.fontWeight||"normal"};
7
+ font-display: swap;
8
+ }
9
+ `;l.insertRule(d,l.cssRules.length)}),F[e]=!0}var b={},h="400,400italic,700,700italic";function j(t){h=t}function V(){return h}function L(t){return`https://fonts.googleapis.com/css?family=${t.replace(/ /g,"+")}:${h}`}function k(t){if(b[t])return;let e=document.createElement("link");e.rel="stylesheet",e.type="text/css",e.href=L(t),document.head.appendChild(e),b[t]=!0}export{u as a,S as b,I as c,O as d,N as e,R as f,W as g,M as h,P as i,j,V as k,L as l,k as m};
@@ -0,0 +1,54 @@
1
+ import{c as s,d as S}from"./chunk-JWQ2DUXA.js";import{a as x}from"./chunk-WIM26GEM.js";import{a as o}from"./chunk-LW2W4B2N.js";import{a as P}from"./chunk-QJBRJELT.js";import{a as u}from"./chunk-6LFGFFHI.js";import{a as h}from"./chunk-DBQHEZPG.js";import{a as m}from"./chunk-TX4BNXQC.js";import{a as y}from"./chunk-M33EDDXB.js";import{a as f}from"./chunk-DJBTBRPS.js";import{a as T}from"./chunk-55FJG4FK.js";import a from"styled-components";import{useRef as g,useLayoutEffect as C}from"react";import{observer as i}from"mobx-react-lite";import{LayoutTemplate as z,TypeOutline as L,Image as N,Shapes as M,Upload as B,Wallpaper as H,Layers as I,ImageUpscale as E}from"lucide-react";import{clsx as R}from"clsx";import{jsx as n,jsxs as p}from"react/jsx-runtime";var U=a.div`
2
+ display: flex;
3
+ height: 100% !important;
4
+ padding: 0px !important;
5
+ position: relative;
6
+
7
+ &.bp5-navbar {
8
+ box-shadow: none;
9
+ }
10
+ `,$=a.div`
11
+ @media screen and (min-width: 501px) {
12
+ overflow-y: auto;
13
+ overflow-x: hidden;
14
+ min-width: 72px;
15
+ }
16
+ `,D=a.div`
17
+ display: flex;
18
+ flex-direction: column;
19
+ `,F=a.div`
20
+ padding: 10px 10px 0px 10px !important;
21
+ height: 100% !important;
22
+
23
+ &.bp5-navbar {
24
+ width: 350px;
25
+ }
26
+
27
+ &.bp5-navbar.collapsed {
28
+ width: 0px;
29
+ }
30
+ `,O=a.div`
31
+ display: none;
32
+ ${s(`
33
+ position: absolute;
34
+ bottom: 72px;
35
+ display: block;
36
+ width: 100vw;
37
+ height: 100vh;
38
+ background-color: rgba(0, 0, 0, 0.05);
39
+ `)}
40
+ `,W=a.div`
41
+ position: absolute;
42
+ right: 1px;
43
+ top: 50%;
44
+ height: 96px;
45
+ width: 15px;
46
+ fill: white;
47
+ cursor: pointer;
48
+ z-index: 10;
49
+ transform: translate(100%, -50%);
50
+
51
+ ${s(`
52
+ display: none;
53
+ `)}
54
+ `,A=({onClick:e})=>n(W,{onClick:e,children:n("div",{children:p("button",{className:"grid relative justify-center arrow",children:[p("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 13 96",width:"13",height:"96",fill:"none",children:[n("path",{d:"M0,0 h1 c0,20,12,12,12,32 v32 c0,20,-12,12,-12,32 H0 z",className:"fill-white dark:fill-[#0b0809]"}),n("path",{d:"M0.5,0 c0,20,12,12,12,32 v32 c0,20,-12,12,-12,32",className:"fill-white stroke-gray-200 dark:fill-[#0b0809] dark:stroke-[#0b0809]"})]}),n("div",{className:"absolute self-center",children:n("span",{className:"w-3 h-3 text-block inline-flex items-center box-border dark:text-white",children:n("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 12 12",children:n("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeWidth:"1.25",d:"M7 3.17 4.88 5.3a1 1 0 0 0 0 1.42L7 8.83"})})})})]})})}),_={name:"templates",Tab:i(e=>n(o,{name:"templates",...e,children:n(z,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(P,{store:e})},j={name:"text",Tab:i(e=>n(o,{name:"text",...e,children:n(L,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(u,{store:e})},q={name:"photos",Tab:i(e=>n(o,{name:"photos",...e,children:n(N,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(f,{store:e})},G={name:"shapes",Tab:i(e=>n(o,{name:"shapes",...e,children:n(M,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(T,{store:e})},J={name:"upload",Tab:i(e=>n(o,{name:"upload",...e,children:n(B,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(h,{store:e})},K={name:"background",Tab:i(e=>n(o,{name:"background",...e,children:n(H,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(m,{store:e})},Q={name:"layers",Tab:i(e=>n(o,{name:"layers",...e,children:n(I,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(y,{store:e})},V={name:"size",Tab:i(e=>n(o,{name:"size",...e,children:n(E,{style:{display:"inline-block"},size:20})})),Panel:({store:e})=>n(x,{store:e})},X=[_,j,q,G,J,K,Q,V],Y=i(({store:e,sections:v,defaultSection:c="templates"})=>{(()=>{let t=g(!0);t.current&&(t.current=!1,e.openSidePanel(c))})();let r=S();C(()=>{r?e.openSidePanel(""):e.openSidePanel(c)},[r]);let d=[...v||X].filter(t=>t.visibleInList!==!1),b=d.find(t=>t.name===e.openedSidePanel)?.Panel,k=g(null);return p(U,{className:`bp5-navbar design-side-panel ${e.openedSidePanel?"":"collapsed"}`,children:[n($,{className:"design-side-tabs-container border-r-1 border-gray-200 dark:border-gray-800",ref:k,children:n(D,{className:"design-side-tabs-inner",children:d.map(({name:t,Tab:l})=>n(l,{name:t,onClick:()=>{t===e.openedSidePanel?e.openSidePanel(""):e.openSidePanel(t)},active:e.openedSidePanel===t},t))})}),b&&n(F,{className:R("bp5-navbar design-panel-container","border-r-1 border-gray-200 dark:border-gray-800"),onClick:t=>{let l=t.target.closest(".design-close-panel"),w=t.target.closest(".design-mobile");l&&(r||w)&&e.openSidePanel("")},children:n(b,{store:e})}),e.openedSidePanel&&n(O,{onClick:()=>e.openSidePanel("")}),e.openedSidePanel&&n(A,{onClick:()=>e.openSidePanel("")})]})}),Pe=Y;export{_ as a,j as b,q as c,G as d,J as e,K as f,Q as g,V as h,X as i,Y as j,Pe as k};
@@ -0,0 +1 @@
1
+ import{jsx as d}from"react/jsx-runtime";var o=()=>d("div",{}),r=o;export{o as a,r as b};
@@ -0,0 +1 @@
1
+ import{a as u,b as m}from"./chunk-3HQUN5MA.js";import{a as s}from"./chunk-OQ6HU62L.js";import{a as c,b as p}from"./chunk-E7ZSWHPU.js";import{ColorPicker as y,Tooltip as k,Button as f}from"antd";import{CirclePlus as g}from"lucide-react";import{cssGradient2FabricGradient as T}from"@ydesign/core";import{jsx as t,jsxs as d}from"react/jsx-runtime";var C=async e=>s(e),x=({store:e})=>{let i=e.editor?.workareaHandler.workarea?.fill,o=c(i);return t(k,{title:"\u80CC\u666F\u989C\u8272",children:t("div",{style:{height:32},children:t(y,{value:o,allowClear:!0,mode:["single","gradient"],onChangeComplete:r=>{let n=r.toCssString();if(n.includes("gradient")){let a=T(n);e.editor?.workareaHandler.setWorkareaBgColor(a)}else e.editor?.workareaHandler.setWorkareaBgColor(n)}})})})},P=({store:e})=>t("div",{children:d("label",{htmlFor:"input-file",children:[d(f,{type:"text",styles:{root:{padding:"0 8px"}},onClick:()=>{document.querySelector("#input-file")?.click()},children:[t(g,{size:16})," add image"]}),t("input",{type:"file",id:"input-file",style:{display:"none"},onChange:async i=>{let{target:o}=i;if(!(!o.files||o.files.length===0)){for(let r of o.files){let a={type:"image",src:await C(r)};e.editor?.objectsHandler.add(a)}o.value=""}},multiple:!0,accept:"image/*"})]})}),v=({store:e})=>t("div",{children:d(f,{type:"text",styles:{root:{padding:"0 8px"}},onClick:()=>{e.editor?.objectsHandler.add({originX:"left",originY:"top",fontSize:100,textAlign:"left",fill:p(),text:"Hello World",type:"textbox"})},children:[t(g,{size:16}),"add text"]})}),b={DefaultBackgroundPicker:x,DefaultAddImage:P,DefaultAddText:v},h=({store:e,components:l})=>{let o=u({type:"text",usedItems:["DefaultBackgroundPicker","DefaultAddImage","DefaultAddText"],components:l});return t(m,{items:o,itemRender:r=>{let n=l[r]||b[r];return n&&t(n,{store:e},r)}})},I=h;export{h as a,I as b};
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/dist/config.js ADDED
File without changes
@@ -0,0 +1,12 @@
1
+ import { StoreType } from '../model/store.js';
2
+ import 'mobx-state-tree';
3
+ import '@ydesign/core';
4
+
5
+ declare const useDuplicateElement: ({ store }: {
6
+ store: StoreType;
7
+ }) => {
8
+ disabled: boolean;
9
+ duplicate: () => void;
10
+ };
11
+
12
+ export { useDuplicateElement };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-JMIN2XMC.js";import"../chunk-O2XFH626.js";export{a as useDuplicateElement};
@@ -0,0 +1,14 @@
1
+ import { StoreType } from '../model/store.js';
2
+ import 'mobx-state-tree';
3
+ import '@ydesign/core';
4
+
5
+ declare const useLock: ({ store }: {
6
+ store: StoreType;
7
+ }) => {
8
+ disabled: boolean;
9
+ lock: () => void;
10
+ unlock: () => void;
11
+ locked: boolean | undefined;
12
+ };
13
+
14
+ export { useLock };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-75WC3GVB.js";import"../chunk-O2XFH626.js";export{a as useLock};
@@ -0,0 +1,12 @@
1
+ import { StoreType } from '../model/store.js';
2
+ import 'mobx-state-tree';
3
+ import '@ydesign/core';
4
+
5
+ declare const useRemoveElement: ({ store }: {
6
+ store: StoreType;
7
+ }) => {
8
+ disabled: boolean;
9
+ remove: () => void;
10
+ };
11
+
12
+ export { useRemoveElement };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-IUFYYEGO.js";import"../chunk-O2XFH626.js";export{a as useRemoveElement};
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+
5
+ export { cn };
@@ -0,0 +1 @@
1
+ import"../chunk-O2XFH626.js";import{clsx as e}from"clsx";import{twMerge as t}from"tailwind-merge";function s(...r){return t(e(r))}export{s as cn};
@@ -0,0 +1,307 @@
1
+ import * as mobx_state_tree from 'mobx-state-tree';
2
+ import { Instance } from 'mobx-state-tree';
3
+ import { Editor } from '@ydesign/core';
4
+
5
+ interface ExportOptions {
6
+ multiplier: number;
7
+ format?: 'jpeg' | 'png' | 'webp';
8
+ quality?: number;
9
+ enableRetinaScaling?: boolean;
10
+ left?: number;
11
+ top?: number;
12
+ width?: number;
13
+ height?: number;
14
+ filter?: (object: any) => boolean;
15
+ }
16
+ interface BaseElement {
17
+ id: string;
18
+ type: string;
19
+ locked?: boolean;
20
+ [key: string]: any;
21
+ }
22
+ type ElementType = (BaseElement & {
23
+ type: 'textbox';
24
+ text: string;
25
+ }) | (BaseElement & {
26
+ type: 'image';
27
+ src: string;
28
+ }) | (BaseElement & {
29
+ type: 'group';
30
+ objects: ElementsArray;
31
+ }) | BaseElement;
32
+ type ElementsArray = ElementType[];
33
+ declare const forEveryChild: (e: any, callback: (e: ElementType) => boolean | void) => void;
34
+ declare const Font: mobx_state_tree.IModelType<{
35
+ fontFamily: mobx_state_tree.ISimpleType<string>;
36
+ name: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
37
+ url: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
38
+ img: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
39
+ styles: mobx_state_tree.IType<any, any, any>;
40
+ }, {}, mobx_state_tree.ModelCreationType<{
41
+ fontFamily: string;
42
+ name: string | undefined;
43
+ url: string | undefined;
44
+ img: string | undefined;
45
+ styles: any;
46
+ }>, mobx_state_tree._NotCustomized>;
47
+ /**
48
+ * 三个对象要搞清楚关系
49
+ * 1. selectedElementsIds: 选中的元素id数组
50
+ * 2. selectedElements: 会根据ids返回元素实例
51
+ * 3. selectElements: 设置 ids 的
52
+ * 4. selectedShapes:
53
+ */
54
+ declare const Store: mobx_state_tree.IModelType<{
55
+ name: mobx_state_tree.IType<string | undefined, string, string>;
56
+ width: mobx_state_tree.IType<number | undefined, number, number>;
57
+ height: mobx_state_tree.IType<number | undefined, number, number>;
58
+ scale: mobx_state_tree.IType<number | undefined, number, number>;
59
+ scaleToFit: mobx_state_tree.IType<number | undefined, number, number>;
60
+ unit: mobx_state_tree.IType<string | undefined, string, string>;
61
+ dpi: mobx_state_tree.IType<number | undefined, number, number>;
62
+ bleed: mobx_state_tree.IType<number | undefined, number, number>;
63
+ bleedVisible: mobx_state_tree.IType<boolean | undefined, boolean, boolean>;
64
+ rulesVisible: mobx_state_tree.IType<boolean | undefined, boolean, boolean>;
65
+ openedSidePanel: mobx_state_tree.IType<string | undefined, string, string>;
66
+ selectedElementsIds: mobx_state_tree.IArrayType<mobx_state_tree.ISimpleType<string>>;
67
+ fonts: mobx_state_tree.IArrayType<mobx_state_tree.IModelType<{
68
+ fontFamily: mobx_state_tree.ISimpleType<string>;
69
+ name: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
70
+ url: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
71
+ img: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
72
+ styles: mobx_state_tree.IType<any, any, any>;
73
+ }, {}, mobx_state_tree.ModelCreationType<{
74
+ fontFamily: string;
75
+ name: string | undefined;
76
+ url: string | undefined;
77
+ img: string | undefined;
78
+ styles: any;
79
+ }>, mobx_state_tree._NotCustomized>>;
80
+ editor: mobx_state_tree.IType<Editor | null | undefined, Editor | null, Editor | null>;
81
+ custom: mobx_state_tree.IType<any, any, any>;
82
+ objects: mobx_state_tree.IType<any, any, any>;
83
+ _key: mobx_state_tree.IType<string | undefined, string, string>;
84
+ _updateTrigger: mobx_state_tree.IType<number | undefined, number, number>;
85
+ _updateHistory: mobx_state_tree.IType<number | undefined, number, number>;
86
+ _updateFontSize: mobx_state_tree.IType<number | undefined, number, number>;
87
+ }, {
88
+ readonly selectedElements: ElementType[];
89
+ } & {
90
+ readonly selectedShapes: ElementType[];
91
+ } & {
92
+ _setEditor(editor: Editor): void;
93
+ _triggerUpdate(): void;
94
+ _historyUpdate(): void;
95
+ _fontSizeUpdate(): void;
96
+ } & {
97
+ setObjects(objects: any): void;
98
+ selectElements(ids: string[]): void;
99
+ openSidePanel(t: string): void;
100
+ deleteElements(ids: string[]): void;
101
+ setScale(scale: number): void;
102
+ clone(): void;
103
+ addElement(): void;
104
+ setupEditorListeners(): void;
105
+ } & {
106
+ _forEachElementUp(ids: Array<string>, callback: Function): void;
107
+ _forEachElementDown(ids: Array<string>, callback: Function): false | undefined;
108
+ } & {
109
+ canMoveElementsUp(ids: Array<string>): false;
110
+ moveElementsUp(ids: Array<string>): void;
111
+ canMoveElementsTop(ids: Array<string>): false;
112
+ moveElementsTop(ids: Array<string>): void;
113
+ canMoveElementsDown(ids: Array<string>): false;
114
+ moveElementsDown(ids: Array<string>): void;
115
+ canMoveElementsBottom(ids: Array<string>): false;
116
+ moveElementsBottom(ids: Array<string>): void;
117
+ setElementZIndex(): void;
118
+ } & {
119
+ toDataURL(options?: ExportOptions): Promise<string | null | undefined>;
120
+ toBlob(options?: ExportOptions): Promise<Blob | null | undefined>;
121
+ saveAsImage(options?: ExportOptions & {
122
+ fileName?: string;
123
+ }): Promise<void>;
124
+ toJSON(): any;
125
+ toObject(): any;
126
+ loadJSON: (data: any) => Promise<void>;
127
+ clear(): void;
128
+ } & {
129
+ addFont(): void;
130
+ removeFont(): void;
131
+ /**
132
+ * 加载字体(注入 CSS 并等待字体可用)
133
+ * @param fontFamily - 字体名称
134
+ */
135
+ loadFont(fontFamily: string): Promise<void[]>;
136
+ }, mobx_state_tree._NotCustomized, mobx_state_tree._NotCustomized>;
137
+ type StoreType = Instance<typeof Store>;
138
+ interface StoreProps {
139
+ key: string;
140
+ }
141
+ declare function createStore({ key }: StoreProps): mobx_state_tree.ModelInstanceTypeProps<{
142
+ name: mobx_state_tree.IType<string | undefined, string, string>;
143
+ width: mobx_state_tree.IType<number | undefined, number, number>;
144
+ height: mobx_state_tree.IType<number | undefined, number, number>;
145
+ scale: mobx_state_tree.IType<number | undefined, number, number>;
146
+ scaleToFit: mobx_state_tree.IType<number | undefined, number, number>;
147
+ unit: mobx_state_tree.IType<string | undefined, string, string>;
148
+ dpi: mobx_state_tree.IType<number | undefined, number, number>;
149
+ bleed: mobx_state_tree.IType<number | undefined, number, number>;
150
+ bleedVisible: mobx_state_tree.IType<boolean | undefined, boolean, boolean>;
151
+ rulesVisible: mobx_state_tree.IType<boolean | undefined, boolean, boolean>;
152
+ openedSidePanel: mobx_state_tree.IType<string | undefined, string, string>;
153
+ selectedElementsIds: mobx_state_tree.IArrayType<mobx_state_tree.ISimpleType<string>>;
154
+ fonts: mobx_state_tree.IArrayType<mobx_state_tree.IModelType<{
155
+ fontFamily: mobx_state_tree.ISimpleType<string>;
156
+ name: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
157
+ url: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
158
+ img: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
159
+ styles: mobx_state_tree.IType<any, any, any>;
160
+ }, {}, mobx_state_tree.ModelCreationType<{
161
+ fontFamily: string;
162
+ name: string | undefined;
163
+ url: string | undefined;
164
+ img: string | undefined;
165
+ styles: any;
166
+ }>, mobx_state_tree._NotCustomized>>;
167
+ editor: mobx_state_tree.IType<Editor | null | undefined, Editor | null, Editor | null>;
168
+ custom: mobx_state_tree.IType<any, any, any>;
169
+ objects: mobx_state_tree.IType<any, any, any>;
170
+ _key: mobx_state_tree.IType<string | undefined, string, string>;
171
+ _updateTrigger: mobx_state_tree.IType<number | undefined, number, number>;
172
+ _updateHistory: mobx_state_tree.IType<number | undefined, number, number>;
173
+ _updateFontSize: mobx_state_tree.IType<number | undefined, number, number>;
174
+ }> & {
175
+ readonly selectedElements: ElementType[];
176
+ } & {
177
+ readonly selectedShapes: ElementType[];
178
+ } & {
179
+ _setEditor(editor: Editor): void;
180
+ _triggerUpdate(): void;
181
+ _historyUpdate(): void;
182
+ _fontSizeUpdate(): void;
183
+ } & {
184
+ setObjects(objects: any): void;
185
+ selectElements(ids: string[]): void;
186
+ openSidePanel(t: string): void;
187
+ deleteElements(ids: string[]): void;
188
+ setScale(scale: number): void;
189
+ clone(): void;
190
+ addElement(): void;
191
+ setupEditorListeners(): void;
192
+ } & {
193
+ _forEachElementUp(ids: Array<string>, callback: Function): void;
194
+ _forEachElementDown(ids: Array<string>, callback: Function): false | undefined;
195
+ } & {
196
+ canMoveElementsUp(ids: Array<string>): false;
197
+ moveElementsUp(ids: Array<string>): void;
198
+ canMoveElementsTop(ids: Array<string>): false;
199
+ moveElementsTop(ids: Array<string>): void;
200
+ canMoveElementsDown(ids: Array<string>): false;
201
+ moveElementsDown(ids: Array<string>): void;
202
+ canMoveElementsBottom(ids: Array<string>): false;
203
+ moveElementsBottom(ids: Array<string>): void;
204
+ setElementZIndex(): void;
205
+ } & {
206
+ toDataURL(options?: ExportOptions): Promise<string | null | undefined>;
207
+ toBlob(options?: ExportOptions): Promise<Blob | null | undefined>;
208
+ saveAsImage(options?: ExportOptions & {
209
+ fileName?: string;
210
+ }): Promise<void>;
211
+ toJSON(): any;
212
+ toObject(): any;
213
+ loadJSON: (data: any) => Promise<void>;
214
+ clear(): void;
215
+ } & {
216
+ addFont(): void;
217
+ removeFont(): void;
218
+ /**
219
+ * 加载字体(注入 CSS 并等待字体可用)
220
+ * @param fontFamily - 字体名称
221
+ */
222
+ loadFont(fontFamily: string): Promise<void[]>;
223
+ } & mobx_state_tree.IStateTreeNode<mobx_state_tree.IModelType<{
224
+ name: mobx_state_tree.IType<string | undefined, string, string>;
225
+ width: mobx_state_tree.IType<number | undefined, number, number>;
226
+ height: mobx_state_tree.IType<number | undefined, number, number>;
227
+ scale: mobx_state_tree.IType<number | undefined, number, number>;
228
+ scaleToFit: mobx_state_tree.IType<number | undefined, number, number>;
229
+ unit: mobx_state_tree.IType<string | undefined, string, string>;
230
+ dpi: mobx_state_tree.IType<number | undefined, number, number>;
231
+ bleed: mobx_state_tree.IType<number | undefined, number, number>;
232
+ bleedVisible: mobx_state_tree.IType<boolean | undefined, boolean, boolean>;
233
+ rulesVisible: mobx_state_tree.IType<boolean | undefined, boolean, boolean>;
234
+ openedSidePanel: mobx_state_tree.IType<string | undefined, string, string>;
235
+ selectedElementsIds: mobx_state_tree.IArrayType<mobx_state_tree.ISimpleType<string>>;
236
+ fonts: mobx_state_tree.IArrayType<mobx_state_tree.IModelType<{
237
+ fontFamily: mobx_state_tree.ISimpleType<string>;
238
+ name: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
239
+ url: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
240
+ img: mobx_state_tree.IOptionalIType<mobx_state_tree.ISimpleType<string>, [undefined]>;
241
+ styles: mobx_state_tree.IType<any, any, any>;
242
+ }, {}, mobx_state_tree.ModelCreationType<{
243
+ fontFamily: string;
244
+ name: string | undefined;
245
+ url: string | undefined;
246
+ img: string | undefined;
247
+ styles: any;
248
+ }>, mobx_state_tree._NotCustomized>>;
249
+ editor: mobx_state_tree.IType<Editor | null | undefined, Editor | null, Editor | null>;
250
+ custom: mobx_state_tree.IType<any, any, any>;
251
+ objects: mobx_state_tree.IType<any, any, any>;
252
+ _key: mobx_state_tree.IType<string | undefined, string, string>;
253
+ _updateTrigger: mobx_state_tree.IType<number | undefined, number, number>;
254
+ _updateHistory: mobx_state_tree.IType<number | undefined, number, number>;
255
+ _updateFontSize: mobx_state_tree.IType<number | undefined, number, number>;
256
+ }, {
257
+ readonly selectedElements: ElementType[];
258
+ } & {
259
+ readonly selectedShapes: ElementType[];
260
+ } & {
261
+ _setEditor(editor: Editor): void;
262
+ _triggerUpdate(): void;
263
+ _historyUpdate(): void;
264
+ _fontSizeUpdate(): void;
265
+ } & {
266
+ setObjects(objects: any): void;
267
+ selectElements(ids: string[]): void;
268
+ openSidePanel(t: string): void;
269
+ deleteElements(ids: string[]): void;
270
+ setScale(scale: number): void;
271
+ clone(): void;
272
+ addElement(): void;
273
+ setupEditorListeners(): void;
274
+ } & {
275
+ _forEachElementUp(ids: Array<string>, callback: Function): void;
276
+ _forEachElementDown(ids: Array<string>, callback: Function): false | undefined;
277
+ } & {
278
+ canMoveElementsUp(ids: Array<string>): false;
279
+ moveElementsUp(ids: Array<string>): void;
280
+ canMoveElementsTop(ids: Array<string>): false;
281
+ moveElementsTop(ids: Array<string>): void;
282
+ canMoveElementsDown(ids: Array<string>): false;
283
+ moveElementsDown(ids: Array<string>): void;
284
+ canMoveElementsBottom(ids: Array<string>): false;
285
+ moveElementsBottom(ids: Array<string>): void;
286
+ setElementZIndex(): void;
287
+ } & {
288
+ toDataURL(options?: ExportOptions): Promise<string | null | undefined>;
289
+ toBlob(options?: ExportOptions): Promise<Blob | null | undefined>;
290
+ saveAsImage(options?: ExportOptions & {
291
+ fileName?: string;
292
+ }): Promise<void>;
293
+ toJSON(): any;
294
+ toObject(): any;
295
+ loadJSON: (data: any) => Promise<void>;
296
+ clear(): void;
297
+ } & {
298
+ addFont(): void;
299
+ removeFont(): void;
300
+ /**
301
+ * 加载字体(注入 CSS 并等待字体可用)
302
+ * @param fontFamily - 字体名称
303
+ */
304
+ loadFont(fontFamily: string): Promise<void[]>;
305
+ }, mobx_state_tree._NotCustomized, mobx_state_tree._NotCustomized>>;
306
+
307
+ export { type BaseElement, type ElementType, type ElementsArray, type ExportOptions, Font, Store, type StoreProps, type StoreType, createStore, createStore as default, forEveryChild };
@@ -0,0 +1 @@
1
+ import{a as g}from"../chunk-P5I43V7X.js";import{a as l,h as c,i as p,m}from"../chunk-WJT6VPDR.js";import"../chunk-O2XFH626.js";import{types as i,cast as u,flow as f}from"mobx-state-tree";var y=(e,t)=>{if(e?.objects)for(let n of e.objects){if(t(n)===!0)break;y(n,t)}},E=i.model("Font",{fontFamily:i.string,name:i.optional(i.string,""),url:i.optional(i.string,""),img:i.optional(i.string,""),styles:i.frozen()}).preProcessSnapshot(e=>Object.assign(Object.assign({},e),{fontFamily:e.fontFamily||e.name})),b=i.model("Store",{name:"yitu-design",width:1080,height:1080,scale:1,scaleToFit:1,unit:"px",dpi:72,bleed:0,bleedVisible:!1,rulesVisible:!1,openedSidePanel:"",selectedElementsIds:i.array(i.string),fonts:i.array(E),editor:i.frozen(null),custom:i.frozen(),objects:i.frozen(),_key:"",_updateTrigger:0,_updateHistory:0,_updateFontSize:0}).views(e=>({get selectedElements(){let t=e._updateTrigger;return console.log("_trigger\u90FD\u53D8\u5316\u662F\u89E6\u53D1\u805A\u7126\u5143\u7D20\u7684\u5237\u65B0 ---> ",t),e.selectedElementsIds.map(n=>e.editor?.objectsHandler.findOneById(n))}})).views(e=>({get selectedShapes(){let t=[];return y({objects:e.selectedElements},n=>{n?.type!=="group"&&t.push(n)}),t}})).actions(e=>({_setEditor(t){e.editor=t},_triggerUpdate(){e._updateTrigger=e._updateTrigger+1},_historyUpdate(){e._updateHistory=e._updateHistory+1},_fontSizeUpdate(){e._updateFontSize=e._updateFontSize+1}})).actions(e=>({setObjects(t){e.objects=t},selectElements(t){e.selectedElementsIds=u(t)},openSidePanel(t){e.openedSidePanel!==t&&(e.openedSidePanel=t)},deleteElements(t){t.forEach(n=>{e.editor?.objectsHandler.remove(n)})},setScale(t){e.scale=t},clone(){e.editor?.objectsHandler.clone()},addElement(){},setupEditorListeners(){e.editor&&(e.editor.on("object:modified",()=>{console.log("\u805A\u7126\u5BF9\u8C61\u5C5E\u6027\u53D8\u5316: ---> "),e._triggerUpdate()}),e.editor.on("history:change",()=>{console.log("\u5386\u53F2\u8BB0\u5F55\u53D8\u5316: ---> "),e._historyUpdate()}),e.editor.on("textbox:modified",()=>{e._fontSizeUpdate()}))}})).actions(e=>({_forEachElementUp(t,n){if(!e.editor)return;let a=e.editor.layerHandler.getEffectiveLayers(),o=t.map(r=>({id:r,index:a.findIndex(d=>d.id===r)}));o.sort((r,d)=>d.index-r.index);for(let{index:r}of o){if(r==-1)continue;let d=r<a.length-1&&a[r+1],s=t.indexOf(d?.id)>=0;r===a.length-1||s||n(r)}},_forEachElementDown(t,n){if(!e.editor)return;let a=e.editor.layerHandler.getEffectiveLayers(),o=t.map(r=>({id:r,index:a.findIndex(d=>d.id===r)}));o.sort((r,d)=>d.index-r.index);for(let{index:r}of o){if(r==-1)continue;let d=r>0&&a[r-1],s=t.indexOf(d?.id)>=0;r===0||s||n(r)}return!1}})).actions(e=>({canMoveElementsUp(t){let n=!1;return e._forEachElementUp(t,()=>{n=!0}),n},moveElementsUp(t){if(!e.editor)return;let n=e.editor.layerHandler.getEffectiveLayers();[...t].map(o=>({id:o,index:n.findIndex(r=>r.id===o)})).filter(o=>o.index!==-1).sort((o,r)=>r.index-o.index).map(o=>o.id).forEach(o=>{e.editor?.layerHandler.bringForward(o)}),e._triggerUpdate()},canMoveElementsTop(t){return this.canMoveElementsUp(t)},moveElementsTop(t){e.editor&&(t.forEach(n=>{e.editor?.layerHandler.bringToFront(n)}),e._triggerUpdate())},canMoveElementsDown(t){let n=!1;return e._forEachElementDown(t,()=>{n=!0}),n},moveElementsDown(t){if(!e.editor)return;let n=e.editor.layerHandler.getEffectiveLayers();[...t].map(o=>({id:o,index:n.findIndex(r=>r.id===o)})).filter(o=>o.index!==-1).sort((o,r)=>o.index-r.index).map(o=>o.id).forEach(o=>{e.editor?.layerHandler.sendBackwards(o)}),e._triggerUpdate()},canMoveElementsBottom(t){return this.canMoveElementsDown(t)},moveElementsBottom(t){e.editor&&(t.forEach(n=>{e.editor?.layerHandler.sendToBack(n)}),e._triggerUpdate())},setElementZIndex(){}})).actions(e=>({async toDataURL(t){return e.editor?.rendererHandler.toDataURL(t)},async toBlob(t){return e.editor?.rendererHandler.toBlob(t)},async saveAsImage(t){if(!e.editor)return;let{fileName:n,...a}=t||{multiplier:1},o=await e.editor.rendererHandler.toBlob(a);o&&g(o,n||"yitu."+a.format)},toJSON(){return e.editor?.rendererHandler.toJSON()},toObject(){return e.editor?.rendererHandler.toObject()},loadJSON:f(function*(t){if(!e.editor)return;let n=yield e.editor.sceneHandler.importFromJSON(t);n&&(e.width=n.width,e.height=n.height)}),clear(){}})).actions(e=>({addFont(){},removeFont(){},async loadFont(t){let n=e.fonts.find(r=>r.fontFamily===t)||l.find(r=>r.fontFamily===t),o=[{fontStyle:"normal",fontWeight:"normal"},{fontStyle:"normal",fontWeight:"bold"}];return n?(n.styles&&(o=n.styles.map(r=>({fontStyle:r.fontStyle||"normal",fontWeight:r.fontWeight||"normal"}))),p(n)):m(t),Promise.all(o.map(r=>c(t,r.fontStyle,r.fontWeight)))}}));function x({key:e}){return b.create({_key:e})}var j=x;export{E as Font,b as Store,x as createStore,j as default,y as forEveryChild};
@@ -0,0 +1,21 @@
1
+ import * as react from 'react';
2
+ import { StoreType } from './model/store.js';
3
+ import { FONT } from './utils/fonts.js';
4
+ import 'mobx-state-tree';
5
+ import '@ydesign/core';
6
+ import 'mobx';
7
+
8
+ interface ProjectOptions {
9
+ store: StoreType;
10
+ }
11
+ declare class Project {
12
+ store: StoreType;
13
+ constructor({ store }: ProjectOptions);
14
+ firstLoad(data?: any): Promise<void>;
15
+ getGlobalFont(fonts?: FONT[]): Promise<FONT[]>;
16
+ }
17
+ declare const ProjectContext: react.Context<Project | null>;
18
+ declare const useProject: () => Project;
19
+ declare const createProject: (options: ProjectOptions) => Project;
20
+
21
+ export { ProjectContext, createProject, createProject as default, useProject };
@@ -0,0 +1 @@
1
+ import{d as s}from"./chunk-WJT6VPDR.js";import{a as r}from"./chunk-O2XFH626.js";import*as c from"mobx";import{createContext as n,useContext as i}from"react";var o=class{constructor({store:t}){r(this,"store");c.makeAutoObservable(this),this.store=t}async firstLoad(t){this.store.loadJSON(t)}async getGlobalFont(t){return t?.length?(s(t),t):[]}},a=n(null),j=()=>{let e=i(a);if(!e)throw new Error("useProject must be used within a ProjectProvider");return e},p=e=>new o(e),P=p;export{a as ProjectContext,p as createProject,P as default,j as useProject};
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { StoreType } from '../model/store.js';
3
+ import 'mobx-state-tree';
4
+ import '@ydesign/core';
5
+
6
+ declare const BackgroundPanel: ({ store }: {
7
+ store: StoreType;
8
+ }) => react_jsx_runtime.JSX.Element;
9
+
10
+ export { BackgroundPanel };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-TX4BNXQC.js";import"../chunk-O2XFH626.js";export{a as BackgroundPanel};
@@ -0,0 +1,6 @@
1
+ export { BackgroundSection, DEFAULT_SECTIONS, LayersSection, PhotosSection, Section, ShapesSection, default as SidePanel, SizeSection, TemplatesSection, TextSection, UploadSection } from './side-panel.js';
2
+ export { SectionTab } from './tab-button.js';
3
+ import '../model/store.js';
4
+ import 'mobx-state-tree';
5
+ import '@ydesign/core';
6
+ import 'react/jsx-runtime';
@@ -0,0 +1 @@
1
+ import{a as r,b as e,c as f,d as m,e as p,f as t,g as x,h as a,i as b,j as c}from"../chunk-XDLFQXMN.js";import"../chunk-JWQ2DUXA.js";import"../chunk-WIM26GEM.js";import{a as o}from"../chunk-LW2W4B2N.js";import"../chunk-QJBRJELT.js";import"../chunk-6LFGFFHI.js";import"../chunk-DBQHEZPG.js";import"../chunk-TX4BNXQC.js";import"../chunk-M33EDDXB.js";import"../chunk-DJBTBRPS.js";import"../chunk-55FJG4FK.js";import"../chunk-O2XFH626.js";export{t as BackgroundSection,b as DEFAULT_SECTIONS,x as LayersSection,f as PhotosSection,o as SectionTab,m as ShapesSection,c as SidePanel,a as SizeSection,r as TemplatesSection,e as TextSection,p as UploadSection};
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { StoreType } from '../model/store.js';
3
+ import 'mobx-state-tree';
4
+ import '@ydesign/core';
5
+
6
+ declare const LayersPanel: ({ store }: {
7
+ store: StoreType;
8
+ }) => react_jsx_runtime.JSX.Element;
9
+
10
+ export { LayersPanel };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-M33EDDXB.js";import"../chunk-O2XFH626.js";export{a as LayersPanel};
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { StoreType } from '../model/store.js';
3
+ import 'mobx-state-tree';
4
+ import '@ydesign/core';
5
+
6
+ declare const PhotosPanel: ({ store }: {
7
+ store: StoreType;
8
+ }) => react_jsx_runtime.JSX.Element;
9
+
10
+ export { PhotosPanel };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-DJBTBRPS.js";import"../chunk-O2XFH626.js";export{a as PhotosPanel};
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { StoreType } from '../model/store.js';
3
+ import 'mobx-state-tree';
4
+ import '@ydesign/core';
5
+
6
+ declare const ShapesPanel: ({ store }: {
7
+ store: StoreType;
8
+ }) => react_jsx_runtime.JSX.Element;
9
+
10
+ export { ShapesPanel };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-55FJG4FK.js";import"../chunk-O2XFH626.js";export{a as ShapesPanel};
@@ -0,0 +1,35 @@
1
+ import { StoreType } from '../model/store.js';
2
+ export { SectionTab } from './tab-button.js';
3
+ import 'mobx-state-tree';
4
+ import '@ydesign/core';
5
+ import 'react/jsx-runtime';
6
+
7
+ interface SectionTabProps {
8
+ onClick: any;
9
+ active: boolean;
10
+ }
11
+ type Section = {
12
+ name: string;
13
+ Tab: React.ComponentType<SectionTabProps>;
14
+ Panel: React.ComponentType<{
15
+ store: StoreType;
16
+ }>;
17
+ visibleInList?: boolean;
18
+ };
19
+ interface SidePanelProps {
20
+ store: StoreType;
21
+ sections?: Section[];
22
+ defaultSection?: string;
23
+ }
24
+ declare const TemplatesSection: Section;
25
+ declare const TextSection: Section;
26
+ declare const PhotosSection: Section;
27
+ declare const ShapesSection: Section;
28
+ declare const UploadSection: Section;
29
+ declare const BackgroundSection: Section;
30
+ declare const LayersSection: Section;
31
+ declare const SizeSection: Section;
32
+ declare const DEFAULT_SECTIONS: Section[];
33
+ declare const SidePanel: React.FC<SidePanelProps>;
34
+
35
+ export { BackgroundSection, DEFAULT_SECTIONS, LayersSection, PhotosSection, type Section, ShapesSection, SidePanel, SizeSection, TemplatesSection, TextSection, UploadSection, SidePanel as default };
@@ -0,0 +1 @@
1
+ import{a as b,b as c,c as d,d as e,e as f,f as g,g as h,h as i,i as j,j as k,k as l}from"../chunk-XDLFQXMN.js";import"../chunk-JWQ2DUXA.js";import"../chunk-WIM26GEM.js";import{a}from"../chunk-LW2W4B2N.js";import"../chunk-QJBRJELT.js";import"../chunk-6LFGFFHI.js";import"../chunk-DBQHEZPG.js";import"../chunk-TX4BNXQC.js";import"../chunk-M33EDDXB.js";import"../chunk-DJBTBRPS.js";import"../chunk-55FJG4FK.js";import"../chunk-O2XFH626.js";export{g as BackgroundSection,j as DEFAULT_SECTIONS,h as LayersSection,d as PhotosSection,a as SectionTab,e as ShapesSection,k as SidePanel,i as SizeSection,b as TemplatesSection,c as TextSection,f as UploadSection,l as default};
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { StoreType } from '../model/store.js';
3
+ import 'mobx-state-tree';
4
+ import '@ydesign/core';
5
+
6
+ declare const SizePanel: ({ store }: {
7
+ store: StoreType;
8
+ }) => react_jsx_runtime.JSX.Element;
9
+
10
+ export { SizePanel };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-WIM26GEM.js";import"../chunk-O2XFH626.js";export{a as SizePanel};
@@ -0,0 +1,12 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface SectionTabProps {
4
+ children: any;
5
+ name: string;
6
+ onClick: any;
7
+ active: boolean;
8
+ iconSize?: number;
9
+ }
10
+ declare const SectionTab: ({ children, name, iconSize, onClick, active }: SectionTabProps) => react_jsx_runtime.JSX.Element;
11
+
12
+ export { SectionTab };
@@ -0,0 +1 @@
1
+ import{a}from"../chunk-LW2W4B2N.js";import"../chunk-O2XFH626.js";export{a as SectionTab};