efficient-web-builder 38.2.0 → 40.0.0
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 +82 -1
- package/dist/editor/components/ChatSettingsPanel.js +1 -1
- package/dist/editor/components/PagesPanel.js +1 -1
- package/dist/editor/components/PreviewThemeFrame.d.ts +1 -1
- package/dist/editor/components/PreviewThemeFrame.js +8 -8
- package/dist/editor/components/SectionWidthRows.d.ts +2 -2
- package/dist/editor/components/SectionWidthRows.js +1 -1
- package/dist/editor/components/StylesPanel.js +1 -1
- package/dist/editor/components/ThemeCard.js +1 -1
- package/dist/editor/components/ThemeColourField.js +1 -1
- package/dist/editor/components/TickerSettingsPanel.js +1 -1
- package/dist/editor/components/WebsitePreviewButton.js +1 -1
- package/dist/editor/components/WebsiteScreenParts.js +1 -1
- package/dist/editor/components/WebsiteSettingsPanel.js +1 -1
- package/dist/editor/components/storefront-editor.css +19 -13
- package/dist/editor/components/useHostDocumentBridge.d.ts +1 -0
- package/dist/editor/components/useHostDocumentBridge.js +1 -0
- package/dist/editor/lib/puck/ColourControl.d.ts +9 -2
- package/dist/editor/lib/puck/ColourControl.js +1 -1
- package/dist/editor/lib/puck/blocks/general/Flex/fields.js +1 -1
- package/dist/editor/lib/puck/controls.d.ts +4 -3
- package/dist/editor/lib/puck/controls.js +1 -1
- package/dist/editor/lib/puck/part-anchors.js +1 -1
- package/dist/editor/lib/puck/section-text-suppress.js +1 -1
- package/dist/format/lib/canvas-accent.d.ts +1 -0
- package/dist/format/lib/canvas-accent.js +1 -0
- package/dist/format/lib/editor-words-catalogue.d.ts +1 -2
- package/dist/format/lib/editor-words-catalogue.js +2 -2
- package/dist/format/lib/host-document-bridge.d.ts +28 -0
- package/dist/format/lib/host-document-bridge.js +1 -0
- package/dist/format/lib/puck/source-row-name.d.ts +2 -0
- package/dist/format/lib/puck/source-row-name.js +1 -0
- package/dist/format/lib/source-rules/panel-controls-medium.js +5 -4
- package/dist/render/components/ContactLocations.js +16 -13
- package/dist/render/components/HeroSection.js +4 -4
- package/dist/render/components/HeroSingle.js +4 -4
- package/dist/render/components/PublishedPartStylesContext.d.ts +1 -0
- package/dist/render/components/PublishedPartStylesContext.js +1 -1
- package/dist/render/lib/puck/part-rows.js +1 -1
- package/dist/render/lib/puck/text-parts.d.ts +2 -0
- package/dist/render/lib/puck/text-parts.js +1 -1
- package/package.json +5 -5
- package/dist/format/components/floating-editor/tokens.d.ts +0 -27
- package/dist/format/components/floating-editor/tokens.js +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
"use client";import{jsx as e,jsxs as p}from"react/jsx-runtime";import{useEffect as Z,useRef as
|
|
1
|
+
"use client";import{jsx as e,jsxs as p}from"react/jsx-runtime";import{useEffect as Z,useRef as C,useState as $}from"react";import I from"./HeroPoster.js";import{HeroVideoBackdrop as ee,HeroVideoPlayer as oe}from"./HeroVideoPlay.js";import{resolveMedia as l}from"../lib/media.js";import{hasSectionHeight as re,resolveSectionHeight as z}from"../../format/lib/content/section-height.js";import{DEFAULT_OVERLAY_COLOR as te,DEFAULT_OVERLAY_POSITION as se,overlayGradient as ne}from"../../format/lib/sections/hero-overlay.js";import{ON_MEDIA_INK_STYLE as ie}from"../../format/lib/content/ink.js";import{usePreviewHeroPart as ae}from"./PreviewHeroPartContext.js";import{CANVAS_ACCENT as M}from"../../format/lib/canvas-accent.js";import{HERO_PART_ATTR as ce,heroPartId as le,readHeroPartId as de}from"../lib/puck/hero-media-parts.js";import{markOverlayPortal as me}from"../../format/lib/puck/overlay-portal.js";import{hidableText as pe}from"efficient-easel/draw";import{normaliseVideoPlayback as ue,normaliseVideoSource as fe,parseYouTubeId as he}from"../../format/lib/hero-video.js";import{heroPictureCount as xe,normaliseMediaLayout as ve,resolvePhoneLayout as ge}from"../../format/lib/hero-media-layout.js";const D=`
|
|
2
2
|
.hero-part-pick { cursor: pointer; }
|
|
3
3
|
.hero-part-pick:hover {
|
|
4
|
-
outline: 2px solid color-mix(in srgb, ${
|
|
4
|
+
outline: 2px solid color-mix(in srgb, ${M} 45%, transparent);
|
|
5
5
|
outline-offset: -2px;
|
|
6
6
|
}
|
|
7
7
|
.hero-part-pick[data-selected] {
|
|
8
|
-
outline: 2px solid ${
|
|
8
|
+
outline: 2px solid ${M};
|
|
9
9
|
outline-offset: -2px;
|
|
10
10
|
}
|
|
11
|
-
`;function Pe({overlay:r=100,overlayColor:o=te,overlayPosition:y=se,mediaType:u="image",mediaSrc:i,poster:f,objectPosition:d,objectPositionPhone:m,tintColor:h="#000000",tintOpacity:n=0,heightDesktop:x,heightMobile:t,boxes:a,videoSource:k,youtubeUrl:v,videoPlayback:g,mediaLayout:
|
|
11
|
+
`;function Pe({overlay:r=100,overlayColor:o=te,overlayPosition:y=se,mediaType:u="image",mediaSrc:i,poster:f,objectPosition:d,objectPositionPhone:m,tintColor:h="#000000",tintOpacity:n=0,heightDesktop:x,heightMobile:t,boxes:a,videoSource:k,youtubeUrl:v,videoPlayback:g,mediaLayout:T,mediaLayoutPhone:E,mediaImage2:F,objectPosition2:G,objectPosition2Phone:K,tintColor2:U="#000000",tintOpacity2:B=0,editing:s=!1}){const H=re(x,t),q=H?"h-[var(--sf-hero-h-m)] min-[720px]:h-[var(--sf-hero-h-d)]":"h-screen min-h-[680px]",J=H?{"--sf-hero-h-d":z(x),"--sf-hero-h-m":z(t)}:void 0,c=u==="video",A=c?l(i):void 0,R=c?l(f):l(i)??l(f),P=c&&fe(k)==="youtube",w=c&&ue(g)==="click",V=P?he(pe(v)):null,O=c&&!P&&!w,[L,Q]=$(!1),_=!L,W=C(null),X=u==="video"?"media":"image",b=ve(T),N=ge(E,b),j=!c&&xe({mediaLayout:T,mediaLayoutPhone:E})>1;return p("section",{ref:W,className:`relative mx-[var(--sf-hero-bleed-m,calc(50%_-_50vw))] w-[var(--sf-hero-bleed-w,100vw)] ${q} max-w-[var(--sf-hero-cap,none)] overflow-hidden`,style:J,children:[j?p("div",{className:`absolute inset-0 z-[1] grid ${be[N]} ${ye[b]}`,"data-hero-layout":b,"data-hero-layout-phone":N,children:[s&&e("style",{children:D}),p(S,{part:"image",editing:s,className:"relative overflow-hidden",children:[e(I,{posterSrc:l(i),showVideo:!1,objectPosition:d,objectPositionPhone:m}),e(Y,{color:h,opacity:n})]}),p(S,{part:"image2",editing:s,className:`relative overflow-hidden${N==="one"?" max-[719px]:hidden":""}${b==="one"?" min-[720px]:hidden":""}`,children:[e(I,{posterSrc:l(F),showVideo:!1,objectPosition:G,objectPositionPhone:K}),e(Y,{color:U,opacity:B})]})]}):p(S,{part:X,editing:s,className:"absolute inset-0 z-[1]",children:[s&&e("style",{children:D}),e(I,{videoSrc:O?A:void 0,posterSrc:R,showVideo:O,objectPosition:d,objectPositionPhone:m}),P&&e(ee,{youTubeId:V,ownPoster:!!R,background:!w,editing:s})]}),w&&e(oe,{youTubeId:V,fileSrc:P?void 0:A,playing:L,onPlay:()=>Q(!0),editing:s}),_&&!j&&n>0&&e("div",{className:"pointer-events-none absolute inset-0 z-[2]",style:{background:h,opacity:Math.min(Math.max(n,0),100)/100}}),_&&e("div",{className:"pointer-events-none absolute inset-0 z-[2]",style:{background:ne(o,y),opacity:Math.min(Math.max(r,0),100)/100}}),_&&a&&e("div",{className:["sf-hero-group-layer absolute inset-0 z-[3] mx-auto","max-w-[var(--sf-site-width,1600px)]","px-[var(--sf-site-gutter,40px)] pt-[140px] pb-14",s?"sf-hero-group-layer-edit":""].filter(Boolean).join(" "),style:ie,children:e(a,{className:"sf-hero-group-zone",minEmptyHeight:160})})]})}const be={one:"max-[719px]:grid-cols-1 max-[719px]:grid-rows-1",side:"max-[719px]:grid-cols-2 max-[719px]:grid-rows-1",stacked:"max-[719px]:grid-cols-1 max-[719px]:grid-rows-2"},ye={one:"min-[720px]:grid-cols-1 min-[720px]:grid-rows-1",side:"min-[720px]:grid-cols-2 min-[720px]:grid-rows-1",stacked:"min-[720px]:grid-cols-1 min-[720px]:grid-rows-2"};function Y({color:r,opacity:o}){return o>0?e("div",{className:"pointer-events-none absolute inset-0 z-[2]",style:{background:r,opacity:Math.min(Math.max(o,0),100)/100}}):null}function S({part:r,editing:o,className:y,children:u}){const i=C(null),{selectedHeroPart:f,select:d}=ae(),[m,h]=$(null);Z(()=>{if(!o)return;const t=i.current;if(!t)return;const a=t.closest("[data-puck-component]")?.getAttribute("data-puck-component")??null;h(a);const k=me(t),v=g=>{a&&(g.stopPropagation(),g.preventDefault(),d(le(a,r)))};return t.addEventListener("click",v,{capture:!0}),()=>{k(),t.removeEventListener("click",v,{capture:!0})}},[o,r,d]);const n=de(f),x=o&&m!=null&&n?.nodeId===m&&(n.part===r||n.part==="media");return e("div",{ref:i,className:`${y}${o?" hero-part-pick":""}`,...o?{[ce]:r}:{},"data-selected":x?"":void 0,children:u})}export{Pe as default};
|
|
@@ -7,6 +7,7 @@ export declare function PublishedPartStyles({ needles, styles, type, children, }
|
|
|
7
7
|
type?: string;
|
|
8
8
|
children: ReactNode;
|
|
9
9
|
}): import("react").JSX.Element;
|
|
10
|
+
export declare const PART_STYLES_PRECEDENCE = "sf-part-styles";
|
|
10
11
|
export declare function usePublishedPartRule(value: string): PublishedPartRule | null;
|
|
11
12
|
export declare function usePublishedPartKindRule(kind: string): PublishedPartRule | null;
|
|
12
13
|
export declare function ClaimedStamp({ stamp, children }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{Fragment as d,jsx as
|
|
1
|
+
"use client";import{Fragment as d,jsx as o,jsxs as f}from"react/jsx-runtime";import{createContext as c,useContext as s,useId as C,useMemo as R}from"react";import{blockDrawsTextStyle as _,partRuleForKind as h,partRuleForText as y,partStyleCss as p,publishedPartStyles as b}from"../lib/puck/part-styles.js";import{styleKeyForPart as g}from"../../format/lib/sections/section-text-kinds.js";const u=c(null),x=c(null),m=c(null);function $({needles:e,styles:t,type:r,children:n}){const i=C(),S=JSON.stringify([i,e,t,r]),l=R(()=>b(e,t,i,a=>g(r,a),a=>_(r,a)),[S]);return l?f(d,{children:[o("style",{href:`${E}${i}-${T(p(l))}`,precedence:P,dangerouslySetInnerHTML:{__html:p(l).replace(/</g,"\\3c ")}}),o(u.Provider,{value:l,children:n})]}):o(d,{children:n})}const P="sf-part-styles",E=`${P}-`;function T(e){let t=2166136261;for(let r=0;r<e.length;r+=1)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(36)}function A(e){const t=s(u),r=s(x),n=y(t,e);return n&&n.stamp!==r?n:null}function H(e){return h(s(u),e)}function L({stamp:e,children:t}){return o(x.Provider,{value:e,children:t})}function M({children:e}){const t=s(u);return o(m.Provider,{value:t,children:e})}function k(e){return h(s(m),e)}export{L as ClaimedStamp,P as PART_STYLES_PRECEDENCE,$ as PublishedPartStyles,M as SharedPartKinds,H as usePublishedPartKindRule,A as usePublishedPartRule,k as usePublishedSharedKindRule};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{TEXT_FIELD_MARKER as
|
|
1
|
+
import{TEXT_FIELD_MARKER as x}from"efficient-easel/draw";import{partText as s,partValueWithText as y,typeInPlaceKind as d}from"./part-text.js";import{decodePartKey as b,encodePartKey as j}from"../../../format/lib/puck/part-key.js";function p(t){if(!(!t||typeof t!="object"))return t[x]}function l(t){if(!t||typeof t!="object")return null;const r=t.arrayFields;return r&&typeof r=="object"?r:null}function R(t,r){if(!Array.isArray(r))return[];const e=p(t),i=[];if(e?.control==="textList"){const n=e.itemKey??"text";return r.forEach((c,a)=>{const u=c?.[n];typeof u=="string"&&u&&i.push({row:{index:a,rowKey:n},text:u})}),i}const o=l(t);return o?(r.forEach((n,c)=>{for(const[a,u]of Object.entries(o)){if(!d(u))continue;const f=s(n?.[a])||p(u)?.placeholder||"";f&&i.push({row:{index:c,rowKey:a},text:f})}}),i):[]}function h(t,r){if(Array.isArray(t))return t[r.index]?.[r.rowKey]}function w(t,r,e,i){const o=t[r];return!Array.isArray(o)||e.index<0||e.index>=o.length?null:{...t,[r]:o.map((n,c)=>c===e.index?{...n,[e.rowKey]:i}:n)}}function T(t,r,e,i,o){const n=h(t[r],e);return s(n)===o?null:w(t,r,e,y(i,n,o))}function E(t,r){return r?`${t} · row ${r.index+1}`:t}export{l as arrayFieldsOf,b as decodePartKey,j as encodePartKey,T as partPropsWithRowText,w as partPropsWithRowValue,E as partRowHeadLabel,R as partRowTexts,h as partRowValue,p as textMeta};
|
|
@@ -3,6 +3,8 @@ import { type TextFieldMeta } from "efficient-easel/draw";
|
|
|
3
3
|
import { type PartRow } from "./part-rows.js";
|
|
4
4
|
export declare const PART_ATTR = "data-sf-part";
|
|
5
5
|
export declare const REGION_PART_ATTR = "data-sf-region-part";
|
|
6
|
+
export declare const PART_ROW_ATTR = "data-sf-part-row";
|
|
7
|
+
export declare function encodePartRow(key: string, index: number): string;
|
|
6
8
|
export declare const PART_SELECTED_ATTR = "data-sf-part-selected";
|
|
7
9
|
export declare const PART_KIND_ATTR = "data-sf-part-kind";
|
|
8
10
|
export declare const PART_STYLE_OWNER_ATTR = "data-sf-part-style-owner";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{decodePartId as m,encodePartId as
|
|
1
|
+
import{decodePartId as m,encodePartId as P}from"efficient-easel/draw";import{stripMarkup as R}from"../../../format/lib/markup.js";import{LINK_FIELD_MARKER as A,SCAFFOLD_FIELD_MARKER as y,TEXT_FIELD_MARKER as u}from"efficient-easel/draw";import{readHidable as _}from"efficient-easel/draw";import{SCALAR_TEXT_CONTROLS as g}from"efficient-easel/draw";import{isStructuralTextProp as b}from"../../../format/lib/puck/neutralization-contracts.js";import{fieldInOwnBox as L}from"../../../format/lib/puck/own-box.js";import{partRowTexts as I}from"./part-rows.js";const B="data-sf-part",H="data-sf-region-part",W="data-sf-part-row";function $(e,t){return`${e}[${t}]`}const G="data-sf-part-selected",q="data-sf-part-kind",S="data-sf-part-style-owner",j="data-sf-part-style-kind";function J(e){for(let t=e;t;t=t.parentElement){const r=t.getAttribute(S),n=t.getAttribute(j);if(r&&n)return{owner:r,kind:n};if(t.getAttribute("data-puck-component"))return null}return null}const h=2;function Q(e,t){if(!e)return!1;const r=m(e);return!!r?.propKey&&r.nodeId===t}function w(e){return R(e).replace(/\s+/gu,"")}function l(e,t,r){const n=e[u];if(n){if(n.control==="textList"){const o=n.itemKey??"text";if(!Array.isArray(t))return;for(const i of t){const c=i?.[o];typeof c=="string"&&r.push(c)}return}const{text:s}=_(t);s?r.push(s):n.placeholder&&r.push(n.placeholder);return}if(!e[A]){if(e.type==="text"||e.type==="textarea"){typeof t=="string"&&t&&r.push(t);return}if(e.arrayFields&&Array.isArray(t)){for(const s of t)for(const[o,i]of Object.entries(e.arrayFields))l(i,s?.[o],r);return}if(e.objectFields&&t&&typeof t=="object")for(const[s,o]of Object.entries(e.objectFields))l(o,t[s],r)}}function U(e){if(!e||typeof e!="object")return!1;const t=e;return t[A]?!1:!!t[u]||t.type==="text"||t.type==="textarea"}function E(e,t){const r=e[u];return r?.label?r.label:typeof e.label=="string"?e.label:t}function N(e){const t=e.indexOf(" (");return(t>0?e.slice(0,t):e).trim()}function V(e,t){if(!e)return[];const r=[];for(const[n,s]of Object.entries(e)){if(!s||typeof s!="object"||b(n))continue;const o=s,i=[];l(o,t?.[n],i),!i.length&&o[y]!==void 0&&l(o,o[y],i);const c=E(o,n),a=new Set;for(const{row:T,text:f}of I(o,t?.[n])){const d=w(f);d.length<h||(a.add(d),r.push({key:n,label:c,texts:[d],row:T}))}const p=new Set(a),x=[];for(const T of i){const f=w(T);f.length<h||p.has(f)||(p.add(f),x.push(f))}x.length&&r.push({key:n,label:c,texts:x})}return r}const F=g;function O(e,t){if(!t||typeof t!="object"||b(e)||L(t))return null;const r=t[u];return!r||!F.includes(r.control)?null:r}function Z(e,t){const r=O(e,t);return r!==null&&r.identifier!==!0}function v(e,t){if(!e)return[];const r=[];for(const[n,s]of Object.entries(e)){const o=O(n,s);if(!o)continue;const{text:i,hidden:c}=_(t?.[n]),a=i||o.placeholder||"",p=R(a).replace(/\s+/gu," ").trim();r.push({key:n,label:N(E(s,n)),preview:p,offPage:o.offPage===!0,identifier:o.identifier===!0,hidden:!!c})}return r}export{B as PART_ATTR,q as PART_KIND_ATTR,W as PART_ROW_ATTR,G as PART_SELECTED_ATTR,j as PART_STYLE_KIND_ATTR,S as PART_STYLE_OWNER_ATTR,H as REGION_PART_ATTR,m as decodePartId,P as encodePartId,$ as encodePartRow,O as entryPartMetaOf,Z as fieldDrawsEntryRow,U as holdsAuthoredText,w as normalizePartText,N as partHeadLabel,E as partLabel,V as partNeedles,Q as partOpenOn,J as partStyleOwnerOf,v as sectionTextParts};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "efficient-web-builder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "40.0.0",
|
|
4
4
|
"description": "The EFFICIENT website builder: the website editor, the general sections and the renderer that draws them, compiled. Hostable by any EFFICIENT product; nothing here imports a host.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Efficient Pty Ltd",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@tabler/icons-react": "^3.46.0",
|
|
56
|
-
"efficient-easel": "^
|
|
57
|
-
"efficient-shell": "^
|
|
56
|
+
"efficient-easel": "^20.2.0",
|
|
57
|
+
"efficient-shell": "^9.1.0",
|
|
58
58
|
"isomorphic-dompurify": "^3.18.0",
|
|
59
59
|
"next": ">=16",
|
|
60
60
|
"react": ">=19",
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
"@types/node": "^20",
|
|
73
73
|
"@types/react": "^19",
|
|
74
74
|
"@types/react-dom": "^19",
|
|
75
|
-
"efficient-easel": "^
|
|
76
|
-
"efficient-shell": "^
|
|
75
|
+
"efficient-easel": "^20.2.0",
|
|
76
|
+
"efficient-shell": "^9.1.0",
|
|
77
77
|
"esbuild": "^0.28.0",
|
|
78
78
|
"happy-dom": "^20.14.5",
|
|
79
79
|
"isomorphic-dompurify": "^3.18.0",
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export declare const tk: {
|
|
2
|
-
readonly accent: "#2563eb";
|
|
3
|
-
readonly accentTint: "#eff6ff";
|
|
4
|
-
readonly accentText: "#1d4ed8";
|
|
5
|
-
readonly appBg: "#f9fafb";
|
|
6
|
-
readonly previewBg: "#f3f4f6";
|
|
7
|
-
readonly panel: "#ffffff";
|
|
8
|
-
readonly fieldBg: "#ffffff";
|
|
9
|
-
readonly inputBorder: "#d1d5db";
|
|
10
|
-
readonly text: "#111827";
|
|
11
|
-
readonly text2: "#374151";
|
|
12
|
-
readonly muted: "#6b7280";
|
|
13
|
-
readonly line: "#e5e7eb";
|
|
14
|
-
readonly chipBg: "#f3f4f6";
|
|
15
|
-
readonly chipFg: "#6b7280";
|
|
16
|
-
readonly panelRadius: 12;
|
|
17
|
-
readonly rowRadius: 8;
|
|
18
|
-
readonly panelShadow: "0 1px 2px rgba(0,0,0,.05), 0 10px 30px rgba(0,0,0,.06)";
|
|
19
|
-
readonly topbarShadow: "0 1px 3px rgba(0,0,0,.06)";
|
|
20
|
-
readonly panelGap: 10;
|
|
21
|
-
readonly leftWidth: 288;
|
|
22
|
-
readonly rightWidth: 308;
|
|
23
|
-
readonly topbarHeight: 52;
|
|
24
|
-
readonly labelFont: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif";
|
|
25
|
-
};
|
|
26
|
-
export type Device = "desktop" | "tablet" | "mobile";
|
|
27
|
-
export declare const DEVICE_WIDTH: Record<Device, string>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e={accent:"#2563eb",accentTint:"#eff6ff",accentText:"#1d4ed8",appBg:"#f9fafb",previewBg:"#f3f4f6",panel:"#ffffff",fieldBg:"#ffffff",inputBorder:"#d1d5db",text:"#111827",text2:"#374151",muted:"#6b7280",line:"#e5e7eb",chipBg:"#f3f4f6",chipFg:"#6b7280",panelRadius:12,rowRadius:8,panelShadow:"0 1px 2px rgba(0,0,0,.05), 0 10px 30px rgba(0,0,0,.06)",topbarShadow:"0 1px 3px rgba(0,0,0,.06)",panelGap:10,leftWidth:288,rightWidth:308,topbarHeight:52,labelFont:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif"},t={desktop:"100%",tablet:"800px",mobile:"390px"};export{t as DEVICE_WIDTH,e as tk};
|