font-controls 1.5.0 → 2.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.
@@ -1,4 +1,4 @@
1
- (function(V,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("react"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react","react-dom"],I):(V=typeof globalThis<"u"?globalThis:V||self,I(V.FontControls={},V.React,V.ReactDOM))})(this,function(V,I,Ge){"use strict";function Ct(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ce={exports:{}},he={};/**
1
+ (function(V,I){typeof exports=="object"&&typeof module<"u"?I(exports,require("react"),require("react-dom")):typeof define=="function"&&define.amd?define(["exports","react","react-dom"],I):(V=typeof globalThis<"u"?globalThis:V||self,I(V.FontControls={},V.React,V.ReactDOM))})(this,function(V,I,Be){"use strict";function Ct(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var we={exports:{}},he={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.js
4
4
  *
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var Ve;function _t(){if(Ve)return he;Ve=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(o,a,i){var p=null;if(i!==void 0&&(p=""+i),a.key!==void 0&&(p=""+a.key),"key"in a){i={};for(var l in a)l!=="key"&&(i[l]=a[l])}else i=a;return a=i.ref,{$$typeof:e,type:o,key:p,ref:a!==void 0?a:null,props:i}}return he.Fragment=t,he.jsx=n,he.jsxs=n,he}var ge={};/**
9
+ */var He;function _t(){if(He)return he;He=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(o,a,i){var u=null;if(i!==void 0&&(u=""+i),a.key!==void 0&&(u=""+a.key),"key"in a){i={};for(var l in a)l!=="key"&&(i[l]=a[l])}else i=a;return a=i.ref,{$$typeof:e,type:o,key:u,ref:a!==void 0?a:null,props:i}}return he.Fragment=t,he.jsx=n,he.jsxs=n,he}var ge={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,33 +14,33 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var qe;function Pt(){return qe||(qe=1,process.env.NODE_ENV!=="production"&&function(){function e(r){if(r==null)return null;if(typeof r=="function")return r.$$typeof===ae?null:r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case O:return"Fragment";case d:return"Profiler";case g:return"StrictMode";case D:return"Suspense";case X:return"SuspenseList";case $:return"Activity"}if(typeof r=="object")switch(typeof r.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),r.$$typeof){case F:return"Portal";case x:return r.displayName||"Context";case w:return(r._context.displayName||"Context")+".Consumer";case s:var h=r.render;return r=r.displayName,r||(r=h.displayName||h.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case B:return h=r.displayName||null,h!==null?h:e(r.type)||"Memo";case W:h=r._payload,r=r._init;try{return e(r(h))}catch{}}return null}function t(r){return""+r}function n(r){try{t(r);var h=!1}catch{h=!0}if(h){h=console;var b=h.error,v=typeof Symbol=="function"&&Symbol.toStringTag&&r[Symbol.toStringTag]||r.constructor.name||"Object";return b.call(h,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",v),t(r)}}function o(r){if(r===O)return"<>";if(typeof r=="object"&&r!==null&&r.$$typeof===W)return"<...>";try{var h=e(r);return h?"<"+h+">":"<...>"}catch{return"<...>"}}function a(){var r=se.A;return r===null?null:r.getOwner()}function i(){return Error("react-stack-top-frame")}function p(r){if(ie.call(r,"key")){var h=Object.getOwnPropertyDescriptor(r,"key").get;if(h&&h.isReactWarning)return!1}return r.key!==void 0}function l(r,h){function b(){H||(H=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",h))}b.isReactWarning=!0,Object.defineProperty(r,"key",{get:b,configurable:!0})}function f(){var r=e(this.type);return Z[r]||(Z[r]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),r=this.props.ref,r!==void 0?r:null}function y(r,h,b,v,R,_){var S=b.ref;return r={$$typeof:Y,type:r,key:h,props:b,_owner:v},(S!==void 0?S:null)!==null?Object.defineProperty(r,"ref",{enumerable:!1,get:f}):Object.defineProperty(r,"ref",{enumerable:!1,value:null}),r._store={},Object.defineProperty(r._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(r,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(r,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:R}),Object.defineProperty(r,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:_}),Object.freeze&&(Object.freeze(r.props),Object.freeze(r)),r}function T(r,h,b,v,R,_){var S=h.children;if(S!==void 0)if(v)if(ee(S)){for(v=0;v<S.length;v++)C(S[v]);Object.freeze&&Object.freeze(S)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else C(S);if(ie.call(h,"key")){S=e(r);var P=Object.keys(h).filter(function(N){return N!=="key"});v=0<P.length?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}",c[S+v]||(P=0<P.length?"{"+P.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
17
+ */var ze;function Pt(){return ze||(ze=1,process.env.NODE_ENV!=="production"&&function(){function e(r){if(r==null)return null;if(typeof r=="function")return r.$$typeof===ae?null:r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case F:return"Fragment";case x:return"Profiler";case g:return"StrictMode";case O:return"Suspense";case X:return"SuspenseList";case $:return"Activity"}if(typeof r=="object")switch(typeof r.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),r.$$typeof){case M:return"Portal";case E:return r.displayName||"Context";case w:return(r._context.displayName||"Context")+".Consumer";case s:var p=r.render;return r=r.displayName,r||(r=p.displayName||p.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case B:return p=r.displayName||null,p!==null?p:e(r.type)||"Memo";case W:p=r._payload,r=r._init;try{return e(r(p))}catch{}}return null}function t(r){return""+r}function n(r){try{t(r);var p=!1}catch{p=!0}if(p){p=console;var v=p.error,y=typeof Symbol=="function"&&Symbol.toStringTag&&r[Symbol.toStringTag]||r.constructor.name||"Object";return v.call(p,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",y),t(r)}}function o(r){if(r===F)return"<>";if(typeof r=="object"&&r!==null&&r.$$typeof===W)return"<...>";try{var p=e(r);return p?"<"+p+">":"<...>"}catch{return"<...>"}}function a(){var r=se.A;return r===null?null:r.getOwner()}function i(){return Error("react-stack-top-frame")}function u(r){if(ie.call(r,"key")){var p=Object.getOwnPropertyDescriptor(r,"key").get;if(p&&p.isReactWarning)return!1}return r.key!==void 0}function l(r,p){function v(){H||(H=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",p))}v.isReactWarning=!0,Object.defineProperty(r,"key",{get:v,configurable:!0})}function d(){var r=e(this.type);return Z[r]||(Z[r]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),r=this.props.ref,r!==void 0?r:null}function m(r,p,v,y,j,C){var S=v.ref;return r={$$typeof:Y,type:r,key:p,props:v,_owner:y},(S!==void 0?S:null)!==null?Object.defineProperty(r,"ref",{enumerable:!1,get:d}):Object.defineProperty(r,"ref",{enumerable:!1,value:null}),r._store={},Object.defineProperty(r._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(r,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(r,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:j}),Object.defineProperty(r,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:C}),Object.freeze&&(Object.freeze(r.props),Object.freeze(r)),r}function b(r,p,v,y,j,C){var S=p.children;if(S!==void 0)if(y)if(ee(S)){for(y=0;y<S.length;y++)_(S[y]);Object.freeze&&Object.freeze(S)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else _(S);if(ie.call(p,"key")){S=e(r);var P=Object.keys(p).filter(function(D){return D!=="key"});y=0<P.length?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}",c[S+y]||(P=0<P.length?"{"+P.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
18
  let props = %s;
19
19
  <%s {...props} />
20
20
  React keys must be passed directly to JSX without using spread:
21
21
  let props = %s;
22
- <%s key={someKey} {...props} />`,v,S,P,S),c[S+v]=!0)}if(S=null,b!==void 0&&(n(b),S=""+b),p(h)&&(n(h.key),S=""+h.key),"key"in h){b={};for(var A in h)A!=="key"&&(b[A]=h[A])}else b=h;return S&&l(b,typeof r=="function"?r.displayName||r.name||"Unknown":r),y(r,S,b,a(),R,_)}function C(r){E(r)?r._store&&(r._store.validated=1):typeof r=="object"&&r!==null&&r.$$typeof===W&&(r._payload.status==="fulfilled"?E(r._payload.value)&&r._payload.value._store&&(r._payload.value._store.validated=1):r._store&&(r._store.validated=1))}function E(r){return typeof r=="object"&&r!==null&&r.$$typeof===Y}var j=I,Y=Symbol.for("react.transitional.element"),F=Symbol.for("react.portal"),O=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),x=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),D=Symbol.for("react.suspense"),X=Symbol.for("react.suspense_list"),B=Symbol.for("react.memo"),W=Symbol.for("react.lazy"),$=Symbol.for("react.activity"),ae=Symbol.for("react.client.reference"),se=j.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ie=Object.prototype.hasOwnProperty,ee=Array.isArray,ue=console.createTask?console.createTask:function(){return null};j={react_stack_bottom_frame:function(r){return r()}};var H,Z={},re=j.react_stack_bottom_frame.bind(j,i)(),fe=ue(o(i)),c={};ge.Fragment=O,ge.jsx=function(r,h,b){var v=1e4>se.recentlyCreatedOwnerStacks++;return T(r,h,b,!1,v?Error("react-stack-top-frame"):re,v?ue(o(r)):fe)},ge.jsxs=function(r,h,b){var v=1e4>se.recentlyCreatedOwnerStacks++;return T(r,h,b,!0,v?Error("react-stack-top-frame"):re,v?ue(o(r)):fe)}}()),ge}process.env.NODE_ENV==="production"?Ce.exports=_t():Ce.exports=Pt();var u=Ce.exports,ye={exports:{}},Je={},_e={exports:{}},ve={exports:{}},k={};/** @license React v16.13.1
22
+ <%s key={someKey} {...props} />`,y,S,P,S),c[S+y]=!0)}if(S=null,v!==void 0&&(n(v),S=""+v),u(p)&&(n(p.key),S=""+p.key),"key"in p){v={};for(var N in p)N!=="key"&&(v[N]=p[N])}else v=p;return S&&l(v,typeof r=="function"?r.displayName||r.name||"Unknown":r),m(r,S,v,a(),j,C)}function _(r){T(r)?r._store&&(r._store.validated=1):typeof r=="object"&&r!==null&&r.$$typeof===W&&(r._payload.status==="fulfilled"?T(r._payload.value)&&r._payload.value._store&&(r._payload.value._store.validated=1):r._store&&(r._store.validated=1))}function T(r){return typeof r=="object"&&r!==null&&r.$$typeof===Y}var R=I,Y=Symbol.for("react.transitional.element"),M=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),E=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),O=Symbol.for("react.suspense"),X=Symbol.for("react.suspense_list"),B=Symbol.for("react.memo"),W=Symbol.for("react.lazy"),$=Symbol.for("react.activity"),ae=Symbol.for("react.client.reference"),se=R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ie=Object.prototype.hasOwnProperty,ee=Array.isArray,ue=console.createTask?console.createTask:function(){return null};R={react_stack_bottom_frame:function(r){return r()}};var H,Z={},re=R.react_stack_bottom_frame.bind(R,i)(),fe=ue(o(i)),c={};ge.Fragment=F,ge.jsx=function(r,p,v){var y=1e4>se.recentlyCreatedOwnerStacks++;return b(r,p,v,!1,y?Error("react-stack-top-frame"):re,y?ue(o(r)):fe)},ge.jsxs=function(r,p,v){var y=1e4>se.recentlyCreatedOwnerStacks++;return b(r,p,v,!0,y?Error("react-stack-top-frame"):re,y?ue(o(r)):fe)}}()),ge}process.env.NODE_ENV==="production"?we.exports=_t():we.exports=Pt();var f=we.exports,ye={exports:{}},Ge={},Ce={exports:{}},ve={exports:{}},A={};/** @license React v16.13.1
23
23
  * react-is.production.min.js
24
24
  *
25
25
  * Copyright (c) Facebook, Inc. and its affiliates.
26
26
  *
27
27
  * This source code is licensed under the MIT license found in the
28
28
  * LICENSE file in the root directory of this source tree.
29
- */var Ke;function jt(){if(Ke)return k;Ke=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,p=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,f=e?Symbol.for("react.async_mode"):60111,y=e?Symbol.for("react.concurrent_mode"):60111,T=e?Symbol.for("react.forward_ref"):60112,C=e?Symbol.for("react.suspense"):60113,E=e?Symbol.for("react.suspense_list"):60120,j=e?Symbol.for("react.memo"):60115,Y=e?Symbol.for("react.lazy"):60116,F=e?Symbol.for("react.block"):60121,O=e?Symbol.for("react.fundamental"):60117,g=e?Symbol.for("react.responder"):60118,d=e?Symbol.for("react.scope"):60119;function w(s){if(typeof s=="object"&&s!==null){var D=s.$$typeof;switch(D){case t:switch(s=s.type,s){case f:case y:case o:case i:case a:case C:return s;default:switch(s=s&&s.$$typeof,s){case l:case T:case Y:case j:case p:return s;default:return D}}case n:return D}}}function x(s){return w(s)===y}return k.AsyncMode=f,k.ConcurrentMode=y,k.ContextConsumer=l,k.ContextProvider=p,k.Element=t,k.ForwardRef=T,k.Fragment=o,k.Lazy=Y,k.Memo=j,k.Portal=n,k.Profiler=i,k.StrictMode=a,k.Suspense=C,k.isAsyncMode=function(s){return x(s)||w(s)===f},k.isConcurrentMode=x,k.isContextConsumer=function(s){return w(s)===l},k.isContextProvider=function(s){return w(s)===p},k.isElement=function(s){return typeof s=="object"&&s!==null&&s.$$typeof===t},k.isForwardRef=function(s){return w(s)===T},k.isFragment=function(s){return w(s)===o},k.isLazy=function(s){return w(s)===Y},k.isMemo=function(s){return w(s)===j},k.isPortal=function(s){return w(s)===n},k.isProfiler=function(s){return w(s)===i},k.isStrictMode=function(s){return w(s)===a},k.isSuspense=function(s){return w(s)===C},k.isValidElementType=function(s){return typeof s=="string"||typeof s=="function"||s===o||s===y||s===i||s===a||s===C||s===E||typeof s=="object"&&s!==null&&(s.$$typeof===Y||s.$$typeof===j||s.$$typeof===p||s.$$typeof===l||s.$$typeof===T||s.$$typeof===O||s.$$typeof===g||s.$$typeof===d||s.$$typeof===F)},k.typeOf=w,k}var M={};/** @license React v16.13.1
29
+ */var Ve;function jt(){if(Ve)return A;Ve=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,u=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,d=e?Symbol.for("react.async_mode"):60111,m=e?Symbol.for("react.concurrent_mode"):60111,b=e?Symbol.for("react.forward_ref"):60112,_=e?Symbol.for("react.suspense"):60113,T=e?Symbol.for("react.suspense_list"):60120,R=e?Symbol.for("react.memo"):60115,Y=e?Symbol.for("react.lazy"):60116,M=e?Symbol.for("react.block"):60121,F=e?Symbol.for("react.fundamental"):60117,g=e?Symbol.for("react.responder"):60118,x=e?Symbol.for("react.scope"):60119;function w(s){if(typeof s=="object"&&s!==null){var O=s.$$typeof;switch(O){case t:switch(s=s.type,s){case d:case m:case o:case i:case a:case _:return s;default:switch(s=s&&s.$$typeof,s){case l:case b:case Y:case R:case u:return s;default:return O}}case n:return O}}}function E(s){return w(s)===m}return A.AsyncMode=d,A.ConcurrentMode=m,A.ContextConsumer=l,A.ContextProvider=u,A.Element=t,A.ForwardRef=b,A.Fragment=o,A.Lazy=Y,A.Memo=R,A.Portal=n,A.Profiler=i,A.StrictMode=a,A.Suspense=_,A.isAsyncMode=function(s){return E(s)||w(s)===d},A.isConcurrentMode=E,A.isContextConsumer=function(s){return w(s)===l},A.isContextProvider=function(s){return w(s)===u},A.isElement=function(s){return typeof s=="object"&&s!==null&&s.$$typeof===t},A.isForwardRef=function(s){return w(s)===b},A.isFragment=function(s){return w(s)===o},A.isLazy=function(s){return w(s)===Y},A.isMemo=function(s){return w(s)===R},A.isPortal=function(s){return w(s)===n},A.isProfiler=function(s){return w(s)===i},A.isStrictMode=function(s){return w(s)===a},A.isSuspense=function(s){return w(s)===_},A.isValidElementType=function(s){return typeof s=="string"||typeof s=="function"||s===o||s===m||s===i||s===a||s===_||s===T||typeof s=="object"&&s!==null&&(s.$$typeof===Y||s.$$typeof===R||s.$$typeof===u||s.$$typeof===l||s.$$typeof===b||s.$$typeof===F||s.$$typeof===g||s.$$typeof===x||s.$$typeof===M)},A.typeOf=w,A}var k={};/** @license React v16.13.1
30
30
  * react-is.development.js
31
31
  *
32
32
  * Copyright (c) Facebook, Inc. and its affiliates.
33
33
  *
34
34
  * This source code is licensed under the MIT license found in the
35
35
  * LICENSE file in the root directory of this source tree.
36
- */var Ze;function Rt(){return Ze||(Ze=1,process.env.NODE_ENV!=="production"&&function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,p=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,f=e?Symbol.for("react.async_mode"):60111,y=e?Symbol.for("react.concurrent_mode"):60111,T=e?Symbol.for("react.forward_ref"):60112,C=e?Symbol.for("react.suspense"):60113,E=e?Symbol.for("react.suspense_list"):60120,j=e?Symbol.for("react.memo"):60115,Y=e?Symbol.for("react.lazy"):60116,F=e?Symbol.for("react.block"):60121,O=e?Symbol.for("react.fundamental"):60117,g=e?Symbol.for("react.responder"):60118,d=e?Symbol.for("react.scope"):60119;function w(m){return typeof m=="string"||typeof m=="function"||m===o||m===y||m===i||m===a||m===C||m===E||typeof m=="object"&&m!==null&&(m.$$typeof===Y||m.$$typeof===j||m.$$typeof===p||m.$$typeof===l||m.$$typeof===T||m.$$typeof===O||m.$$typeof===g||m.$$typeof===d||m.$$typeof===F)}function x(m){if(typeof m=="object"&&m!==null){var oe=m.$$typeof;switch(oe){case t:var we=m.type;switch(we){case f:case y:case o:case i:case a:case C:return we;default:var wt=we&&we.$$typeof;switch(wt){case l:case T:case Y:case j:case p:return wt;default:return oe}}case n:return oe}}}var s=f,D=y,X=l,B=p,W=t,$=T,ae=o,se=Y,ie=j,ee=n,ue=i,H=a,Z=C,re=!1;function fe(m){return re||(re=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),c(m)||x(m)===f}function c(m){return x(m)===y}function r(m){return x(m)===l}function h(m){return x(m)===p}function b(m){return typeof m=="object"&&m!==null&&m.$$typeof===t}function v(m){return x(m)===T}function R(m){return x(m)===o}function _(m){return x(m)===Y}function S(m){return x(m)===j}function P(m){return x(m)===n}function A(m){return x(m)===i}function N(m){return x(m)===a}function q(m){return x(m)===C}M.AsyncMode=s,M.ConcurrentMode=D,M.ContextConsumer=X,M.ContextProvider=B,M.Element=W,M.ForwardRef=$,M.Fragment=ae,M.Lazy=se,M.Memo=ie,M.Portal=ee,M.Profiler=ue,M.StrictMode=H,M.Suspense=Z,M.isAsyncMode=fe,M.isConcurrentMode=c,M.isContextConsumer=r,M.isContextProvider=h,M.isElement=b,M.isForwardRef=v,M.isFragment=R,M.isLazy=_,M.isMemo=S,M.isPortal=P,M.isProfiler=A,M.isStrictMode=N,M.isSuspense=q,M.isValidElementType=w,M.typeOf=x}()),M}var Qe;function et(){return Qe||(Qe=1,process.env.NODE_ENV==="production"?ve.exports=jt():ve.exports=Rt()),ve.exports}/*
36
+ */var qe;function Rt(){return qe||(qe=1,process.env.NODE_ENV!=="production"&&function(){var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,o=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,i=e?Symbol.for("react.profiler"):60114,u=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,d=e?Symbol.for("react.async_mode"):60111,m=e?Symbol.for("react.concurrent_mode"):60111,b=e?Symbol.for("react.forward_ref"):60112,_=e?Symbol.for("react.suspense"):60113,T=e?Symbol.for("react.suspense_list"):60120,R=e?Symbol.for("react.memo"):60115,Y=e?Symbol.for("react.lazy"):60116,M=e?Symbol.for("react.block"):60121,F=e?Symbol.for("react.fundamental"):60117,g=e?Symbol.for("react.responder"):60118,x=e?Symbol.for("react.scope"):60119;function w(h){return typeof h=="string"||typeof h=="function"||h===o||h===m||h===i||h===a||h===_||h===T||typeof h=="object"&&h!==null&&(h.$$typeof===Y||h.$$typeof===R||h.$$typeof===u||h.$$typeof===l||h.$$typeof===b||h.$$typeof===F||h.$$typeof===g||h.$$typeof===x||h.$$typeof===M)}function E(h){if(typeof h=="object"&&h!==null){var oe=h.$$typeof;switch(oe){case t:var Ee=h.type;switch(Ee){case d:case m:case o:case i:case a:case _:return Ee;default:var wt=Ee&&Ee.$$typeof;switch(wt){case l:case b:case Y:case R:case u:return wt;default:return oe}}case n:return oe}}}var s=d,O=m,X=l,B=u,W=t,$=b,ae=o,se=Y,ie=R,ee=n,ue=i,H=a,Z=_,re=!1;function fe(h){return re||(re=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),c(h)||E(h)===d}function c(h){return E(h)===m}function r(h){return E(h)===l}function p(h){return E(h)===u}function v(h){return typeof h=="object"&&h!==null&&h.$$typeof===t}function y(h){return E(h)===b}function j(h){return E(h)===o}function C(h){return E(h)===Y}function S(h){return E(h)===R}function P(h){return E(h)===n}function N(h){return E(h)===i}function D(h){return E(h)===a}function q(h){return E(h)===_}k.AsyncMode=s,k.ConcurrentMode=O,k.ContextConsumer=X,k.ContextProvider=B,k.Element=W,k.ForwardRef=$,k.Fragment=ae,k.Lazy=se,k.Memo=ie,k.Portal=ee,k.Profiler=ue,k.StrictMode=H,k.Suspense=Z,k.isAsyncMode=fe,k.isConcurrentMode=c,k.isContextConsumer=r,k.isContextProvider=p,k.isElement=v,k.isForwardRef=y,k.isFragment=j,k.isLazy=C,k.isMemo=S,k.isPortal=P,k.isProfiler=N,k.isStrictMode=D,k.isSuspense=q,k.isValidElementType=w,k.typeOf=E}()),k}var Je;function Ke(){return Je||(Je=1,process.env.NODE_ENV==="production"?ve.exports=jt():ve.exports=Rt()),ve.exports}/*
37
37
  object-assign
38
38
  (c) Sindre Sorhus
39
39
  @license MIT
40
- */var Pe,tt;function Ot(){if(tt)return Pe;tt=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function o(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function a(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var p={},l=0;l<10;l++)p["_"+String.fromCharCode(l)]=l;var f=Object.getOwnPropertyNames(p).map(function(T){return p[T]});if(f.join("")!=="0123456789")return!1;var y={};return"abcdefghijklmnopqrst".split("").forEach(function(T){y[T]=T}),Object.keys(Object.assign({},y)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Pe=a()?Object.assign:function(i,p){for(var l,f=o(i),y,T=1;T<arguments.length;T++){l=Object(arguments[T]);for(var C in l)t.call(l,C)&&(f[C]=l[C]);if(e){y=e(l);for(var E=0;E<y.length;E++)n.call(l,y[E])&&(f[y[E]]=l[y[E]])}}return f},Pe}var je,nt;function Re(){if(nt)return je;nt=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return je=e,je}var Oe,rt;function ot(){return rt||(rt=1,Oe=Function.call.bind(Object.prototype.hasOwnProperty)),Oe}var De,at;function Dt(){if(at)return De;at=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=Re(),n={},o=ot();e=function(i){var p="Warning: "+i;typeof console<"u"&&console.error(p);try{throw new Error(p)}catch{}}}function a(i,p,l,f,y){if(process.env.NODE_ENV!=="production"){for(var T in i)if(o(i,T)){var C;try{if(typeof i[T]!="function"){var E=Error((f||"React class")+": "+l+" type `"+T+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[T]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw E.name="Invariant Violation",E}C=i[T](p,T,f,l,null,t)}catch(Y){C=Y}if(C&&!(C instanceof Error)&&e((f||"React class")+": type specification of "+l+" `"+T+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof C+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),C instanceof Error&&!(C.message in n)){n[C.message]=!0;var j=y?y():"";e("Failed "+l+" type: "+C.message+(j??""))}}}}return a.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(n={})},De=a,De}var Ne,st;function Nt(){if(st)return Ne;st=1;var e=et(),t=Ot(),n=Re(),o=ot(),a=Dt(),i=function(){};process.env.NODE_ENV!=="production"&&(i=function(l){var f="Warning: "+l;typeof console<"u"&&console.error(f);try{throw new Error(f)}catch{}});function p(){return null}return Ne=function(l,f){var y=typeof Symbol=="function"&&Symbol.iterator,T="@@iterator";function C(c){var r=c&&(y&&c[y]||c[T]);if(typeof r=="function")return r}var E="<<anonymous>>",j={array:g("array"),bigint:g("bigint"),bool:g("boolean"),func:g("function"),number:g("number"),object:g("object"),string:g("string"),symbol:g("symbol"),any:d(),arrayOf:w,element:x(),elementType:s(),instanceOf:D,node:$(),objectOf:B,oneOf:X,oneOfType:W,shape:se,exact:ie};function Y(c,r){return c===r?c!==0||1/c===1/r:c!==c&&r!==r}function F(c,r){this.message=c,this.data=r&&typeof r=="object"?r:{},this.stack=""}F.prototype=Error.prototype;function O(c){if(process.env.NODE_ENV!=="production")var r={},h=0;function b(R,_,S,P,A,N,q){if(P=P||E,N=N||S,q!==n){if(f){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var oe=P+":"+S;!r[oe]&&h<3&&(i("You are manually calling a React.PropTypes validation function for the `"+N+"` prop on `"+P+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),r[oe]=!0,h++)}}return _[S]==null?R?_[S]===null?new F("The "+A+" `"+N+"` is marked as required "+("in `"+P+"`, but its value is `null`.")):new F("The "+A+" `"+N+"` is marked as required in "+("`"+P+"`, but its value is `undefined`.")):null:c(_,S,P,A,N)}var v=b.bind(null,!1);return v.isRequired=b.bind(null,!0),v}function g(c){function r(h,b,v,R,_,S){var P=h[b],A=H(P);if(A!==c){var N=Z(P);return new F("Invalid "+R+" `"+_+"` of type "+("`"+N+"` supplied to `"+v+"`, expected ")+("`"+c+"`."),{expectedType:c})}return null}return O(r)}function d(){return O(p)}function w(c){function r(h,b,v,R,_){if(typeof c!="function")return new F("Property `"+_+"` of component `"+v+"` has invalid PropType notation inside arrayOf.");var S=h[b];if(!Array.isArray(S)){var P=H(S);return new F("Invalid "+R+" `"+_+"` of type "+("`"+P+"` supplied to `"+v+"`, expected an array."))}for(var A=0;A<S.length;A++){var N=c(S,A,v,R,_+"["+A+"]",n);if(N instanceof Error)return N}return null}return O(r)}function x(){function c(r,h,b,v,R){var _=r[h];if(!l(_)){var S=H(_);return new F("Invalid "+v+" `"+R+"` of type "+("`"+S+"` supplied to `"+b+"`, expected a single ReactElement."))}return null}return O(c)}function s(){function c(r,h,b,v,R){var _=r[h];if(!e.isValidElementType(_)){var S=H(_);return new F("Invalid "+v+" `"+R+"` of type "+("`"+S+"` supplied to `"+b+"`, expected a single ReactElement type."))}return null}return O(c)}function D(c){function r(h,b,v,R,_){if(!(h[b]instanceof c)){var S=c.name||E,P=fe(h[b]);return new F("Invalid "+R+" `"+_+"` of type "+("`"+P+"` supplied to `"+v+"`, expected ")+("instance of `"+S+"`."))}return null}return O(r)}function X(c){if(!Array.isArray(c))return process.env.NODE_ENV!=="production"&&(arguments.length>1?i("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):i("Invalid argument supplied to oneOf, expected an array.")),p;function r(h,b,v,R,_){for(var S=h[b],P=0;P<c.length;P++)if(Y(S,c[P]))return null;var A=JSON.stringify(c,function(q,m){var oe=Z(m);return oe==="symbol"?String(m):m});return new F("Invalid "+R+" `"+_+"` of value `"+String(S)+"` "+("supplied to `"+v+"`, expected one of "+A+"."))}return O(r)}function B(c){function r(h,b,v,R,_){if(typeof c!="function")return new F("Property `"+_+"` of component `"+v+"` has invalid PropType notation inside objectOf.");var S=h[b],P=H(S);if(P!=="object")return new F("Invalid "+R+" `"+_+"` of type "+("`"+P+"` supplied to `"+v+"`, expected an object."));for(var A in S)if(o(S,A)){var N=c(S,A,v,R,_+"."+A,n);if(N instanceof Error)return N}return null}return O(r)}function W(c){if(!Array.isArray(c))return process.env.NODE_ENV!=="production"&&i("Invalid argument supplied to oneOfType, expected an instance of array."),p;for(var r=0;r<c.length;r++){var h=c[r];if(typeof h!="function")return i("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+re(h)+" at index "+r+"."),p}function b(v,R,_,S,P){for(var A=[],N=0;N<c.length;N++){var q=c[N],m=q(v,R,_,S,P,n);if(m==null)return null;m.data&&o(m.data,"expectedType")&&A.push(m.data.expectedType)}var oe=A.length>0?", expected one of type ["+A.join(", ")+"]":"";return new F("Invalid "+S+" `"+P+"` supplied to "+("`"+_+"`"+oe+"."))}return O(b)}function $(){function c(r,h,b,v,R){return ee(r[h])?null:new F("Invalid "+v+" `"+R+"` supplied to "+("`"+b+"`, expected a ReactNode."))}return O(c)}function ae(c,r,h,b,v){return new F((c||"React class")+": "+r+" type `"+h+"."+b+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+v+"`.")}function se(c){function r(h,b,v,R,_){var S=h[b],P=H(S);if(P!=="object")return new F("Invalid "+R+" `"+_+"` of type `"+P+"` "+("supplied to `"+v+"`, expected `object`."));for(var A in c){var N=c[A];if(typeof N!="function")return ae(v,R,_,A,Z(N));var q=N(S,A,v,R,_+"."+A,n);if(q)return q}return null}return O(r)}function ie(c){function r(h,b,v,R,_){var S=h[b],P=H(S);if(P!=="object")return new F("Invalid "+R+" `"+_+"` of type `"+P+"` "+("supplied to `"+v+"`, expected `object`."));var A=t({},h[b],c);for(var N in A){var q=c[N];if(o(c,N)&&typeof q!="function")return ae(v,R,_,N,Z(q));if(!q)return new F("Invalid "+R+" `"+_+"` key `"+N+"` supplied to `"+v+"`.\nBad object: "+JSON.stringify(h[b],null," ")+`
41
- Valid keys: `+JSON.stringify(Object.keys(c),null," "));var m=q(S,N,v,R,_+"."+N,n);if(m)return m}return null}return O(r)}function ee(c){switch(typeof c){case"number":case"string":case"undefined":return!0;case"boolean":return!c;case"object":if(Array.isArray(c))return c.every(ee);if(c===null||l(c))return!0;var r=C(c);if(r){var h=r.call(c),b;if(r!==c.entries){for(;!(b=h.next()).done;)if(!ee(b.value))return!1}else for(;!(b=h.next()).done;){var v=b.value;if(v&&!ee(v[1]))return!1}}else return!1;return!0;default:return!1}}function ue(c,r){return c==="symbol"?!0:r?r["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&r instanceof Symbol:!1}function H(c){var r=typeof c;return Array.isArray(c)?"array":c instanceof RegExp?"object":ue(r,c)?"symbol":r}function Z(c){if(typeof c>"u"||c===null)return""+c;var r=H(c);if(r==="object"){if(c instanceof Date)return"date";if(c instanceof RegExp)return"regexp"}return r}function re(c){var r=Z(c);switch(r){case"array":case"object":return"an "+r;case"boolean":case"date":case"regexp":return"a "+r;default:return r}}function fe(c){return!c.constructor||!c.constructor.name?E:c.constructor.name}return j.checkPropTypes=a,j.resetWarningCache=a.resetWarningCache,j.PropTypes=j,j},Ne}var Ae,it;function At(){if(it)return Ae;it=1;var e=Re();function t(){}function n(){}return n.resetWarningCache=t,Ae=function(){function o(p,l,f,y,T,C){if(C!==e){var E=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw E.name="Invariant Violation",E}}o.isRequired=o;function a(){return o}var i={array:o,bigint:o,bool:o,func:o,number:o,object:o,string:o,symbol:o,any:o,arrayOf:a,element:o,elementType:o,instanceOf:a,node:o,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:n,resetWarningCache:t};return i.PropTypes=i,i},Ae}if(process.env.NODE_ENV!=="production"){var kt=et(),Mt=!0;_e.exports=Nt()(kt.isElement,Mt)}else _e.exports=At()();var lt=_e.exports,ke={exports:{}};function ct(e){var t,n,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=ct(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}function ut(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=ct(e))&&(o&&(o+=" "),o+=t);return o}ke.exports=ut,ke.exports.clsx=ut;var Ft=ke.exports,L={},te={};Object.defineProperty(te,"__esModule",{value:!0}),te.dontSetMe=$t,te.findInArray=It,te.int=Wt,te.isFunction=Yt,te.isNum=Lt;function It(e,t){for(let n=0,o=e.length;n<o;n++)if(t.apply(t,[e[n],n,e]))return e[n]}function Yt(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function Lt(e){return typeof e=="number"&&!isNaN(e)}function Wt(e){return parseInt(e,10)}function $t(e,t,n){if(e[t])return new Error(`Invalid prop ${t} passed to ${n} - do not set this, set it on the child.`)}var de={};Object.defineProperty(de,"__esModule",{value:!0}),de.browserPrefixToKey=dt,de.browserPrefixToStyle=Ut,de.default=void 0,de.getPrefix=ft;const Me=["Moz","Webkit","O","ms"];function ft(){var n,o;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const t=(o=(n=window.document)==null?void 0:n.documentElement)==null?void 0:o.style;if(!t||e in t)return"";for(let a=0;a<Me.length;a++)if(dt(e,Me[a])in t)return Me[a];return""}function dt(e,t){return t?`${t}${Xt(e)}`:e}function Ut(e,t){return t?`-${t.toLowerCase()}-${e}`:e}function Xt(e){let t="",n=!0;for(let o=0;o<e.length;o++)n?(t+=e[o].toUpperCase(),n=!1):e[o]==="-"?n=!0:t+=e[o];return t}de.default=ft(),Object.defineProperty(L,"__esModule",{value:!0}),L.addClassName=yt,L.addEvent=Ht,L.addUserSelectStyles=nn,L.createCSSTransform=Zt,L.createSVGTransform=Qt,L.getTouch=en,L.getTouchIdentifier=tn,L.getTranslation=Fe,L.innerHeight=qt,L.innerWidth=Jt,L.matchesSelector=gt,L.matchesSelectorAndParentsTo=Bt,L.offsetXYFromParent=Kt,L.outerHeight=Gt,L.outerWidth=Vt,L.removeClassName=vt,L.removeEvent=zt,L.scheduleRemoveUserSelectStyles=rn;var J=te,pt=ht(de);function ht(e,t){if(typeof WeakMap=="function")var n=new WeakMap,o=new WeakMap;return(ht=function(a,i){if(!i&&a&&a.__esModule)return a;var p,l,f={__proto__:null,default:a};if(a===null||typeof a!="object"&&typeof a!="function")return f;if(p=i?o:n){if(p.has(a))return p.get(a);p.set(a,f)}for(const y in a)y!=="default"&&{}.hasOwnProperty.call(a,y)&&((l=(p=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,y))&&(l.get||l.set)?p(f,y,l):f[y]=a[y]);return f})(e,t)}let be="";function gt(e,t){return be||(be=(0,J.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(n){return(0,J.isFunction)(e[n])})),(0,J.isFunction)(e[be])?e[be](t):!1}function Bt(e,t,n){let o=e;do{if(gt(o,t))return!0;if(o===n)return!1;o=o.parentNode}while(o);return!1}function Ht(e,t,n,o){if(!e)return;const a={capture:!0,...o};e.addEventListener?e.addEventListener(t,n,a):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n}function zt(e,t,n,o){if(!e)return;const a={capture:!0,...o};e.removeEventListener?e.removeEventListener(t,n,a):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null}function Gt(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,J.int)(n.borderTopWidth),t+=(0,J.int)(n.borderBottomWidth),t}function Vt(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,J.int)(n.borderLeftWidth),t+=(0,J.int)(n.borderRightWidth),t}function qt(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,J.int)(n.paddingTop),t-=(0,J.int)(n.paddingBottom),t}function Jt(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,J.int)(n.paddingLeft),t-=(0,J.int)(n.paddingRight),t}function Kt(e,t,n){const a=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),i=(e.clientX+t.scrollLeft-a.left)/n,p=(e.clientY+t.scrollTop-a.top)/n;return{x:i,y:p}}function Zt(e,t){const n=Fe(e,t,"px");return{[(0,pt.browserPrefixToKey)("transform",pt.default)]:n}}function Qt(e,t){return Fe(e,t,"")}function Fe(e,t,n){let{x:o,y:a}=e,i=`translate(${o}${n},${a}${n})`;if(t){const p=`${typeof t.x=="string"?t.x:t.x+n}`,l=`${typeof t.y=="string"?t.y:t.y+n}`;i=`translate(${p}, ${l})`+i}return i}function en(e,t){return e.targetTouches&&(0,J.findInArray)(e.targetTouches,n=>t===n.identifier)||e.changedTouches&&(0,J.findInArray)(e.changedTouches,n=>t===n.identifier)}function tn(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function nn(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
40
+ */var _e,Ze;function Ot(){if(Ze)return _e;Ze=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function o(i){if(i==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(i)}function a(){try{if(!Object.assign)return!1;var i=new String("abc");if(i[5]="de",Object.getOwnPropertyNames(i)[0]==="5")return!1;for(var u={},l=0;l<10;l++)u["_"+String.fromCharCode(l)]=l;var d=Object.getOwnPropertyNames(u).map(function(b){return u[b]});if(d.join("")!=="0123456789")return!1;var m={};return"abcdefghijklmnopqrst".split("").forEach(function(b){m[b]=b}),Object.keys(Object.assign({},m)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return _e=a()?Object.assign:function(i,u){for(var l,d=o(i),m,b=1;b<arguments.length;b++){l=Object(arguments[b]);for(var _ in l)t.call(l,_)&&(d[_]=l[_]);if(e){m=e(l);for(var T=0;T<m.length;T++)n.call(l,m[T])&&(d[m[T]]=l[m[T]])}}return d},_e}var Pe,Qe;function je(){if(Qe)return Pe;Qe=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Pe=e,Pe}var Re,et;function tt(){return et||(et=1,Re=Function.call.bind(Object.prototype.hasOwnProperty)),Re}var Oe,nt;function Dt(){if(nt)return Oe;nt=1;var e=function(){};if(process.env.NODE_ENV!=="production"){var t=je(),n={},o=tt();e=function(i){var u="Warning: "+i;typeof console<"u"&&console.error(u);try{throw new Error(u)}catch{}}}function a(i,u,l,d,m){if(process.env.NODE_ENV!=="production"){for(var b in i)if(o(i,b)){var _;try{if(typeof i[b]!="function"){var T=Error((d||"React class")+": "+l+" type `"+b+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[b]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw T.name="Invariant Violation",T}_=i[b](u,b,d,l,null,t)}catch(Y){_=Y}if(_&&!(_ instanceof Error)&&e((d||"React class")+": type specification of "+l+" `"+b+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof _+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),_ instanceof Error&&!(_.message in n)){n[_.message]=!0;var R=m?m():"";e("Failed "+l+" type: "+_.message+(R??""))}}}}return a.resetWarningCache=function(){process.env.NODE_ENV!=="production"&&(n={})},Oe=a,Oe}var De,rt;function Nt(){if(rt)return De;rt=1;var e=Ke(),t=Ot(),n=je(),o=tt(),a=Dt(),i=function(){};process.env.NODE_ENV!=="production"&&(i=function(l){var d="Warning: "+l;typeof console<"u"&&console.error(d);try{throw new Error(d)}catch{}});function u(){return null}return De=function(l,d){var m=typeof Symbol=="function"&&Symbol.iterator,b="@@iterator";function _(c){var r=c&&(m&&c[m]||c[b]);if(typeof r=="function")return r}var T="<<anonymous>>",R={array:g("array"),bigint:g("bigint"),bool:g("boolean"),func:g("function"),number:g("number"),object:g("object"),string:g("string"),symbol:g("symbol"),any:x(),arrayOf:w,element:E(),elementType:s(),instanceOf:O,node:$(),objectOf:B,oneOf:X,oneOfType:W,shape:se,exact:ie};function Y(c,r){return c===r?c!==0||1/c===1/r:c!==c&&r!==r}function M(c,r){this.message=c,this.data=r&&typeof r=="object"?r:{},this.stack=""}M.prototype=Error.prototype;function F(c){if(process.env.NODE_ENV!=="production")var r={},p=0;function v(j,C,S,P,N,D,q){if(P=P||T,D=D||S,q!==n){if(d){var h=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw h.name="Invariant Violation",h}else if(process.env.NODE_ENV!=="production"&&typeof console<"u"){var oe=P+":"+S;!r[oe]&&p<3&&(i("You are manually calling a React.PropTypes validation function for the `"+D+"` prop on `"+P+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),r[oe]=!0,p++)}}return C[S]==null?j?C[S]===null?new M("The "+N+" `"+D+"` is marked as required "+("in `"+P+"`, but its value is `null`.")):new M("The "+N+" `"+D+"` is marked as required in "+("`"+P+"`, but its value is `undefined`.")):null:c(C,S,P,N,D)}var y=v.bind(null,!1);return y.isRequired=v.bind(null,!0),y}function g(c){function r(p,v,y,j,C,S){var P=p[v],N=H(P);if(N!==c){var D=Z(P);return new M("Invalid "+j+" `"+C+"` of type "+("`"+D+"` supplied to `"+y+"`, expected ")+("`"+c+"`."),{expectedType:c})}return null}return F(r)}function x(){return F(u)}function w(c){function r(p,v,y,j,C){if(typeof c!="function")return new M("Property `"+C+"` of component `"+y+"` has invalid PropType notation inside arrayOf.");var S=p[v];if(!Array.isArray(S)){var P=H(S);return new M("Invalid "+j+" `"+C+"` of type "+("`"+P+"` supplied to `"+y+"`, expected an array."))}for(var N=0;N<S.length;N++){var D=c(S,N,y,j,C+"["+N+"]",n);if(D instanceof Error)return D}return null}return F(r)}function E(){function c(r,p,v,y,j){var C=r[p];if(!l(C)){var S=H(C);return new M("Invalid "+y+" `"+j+"` of type "+("`"+S+"` supplied to `"+v+"`, expected a single ReactElement."))}return null}return F(c)}function s(){function c(r,p,v,y,j){var C=r[p];if(!e.isValidElementType(C)){var S=H(C);return new M("Invalid "+y+" `"+j+"` of type "+("`"+S+"` supplied to `"+v+"`, expected a single ReactElement type."))}return null}return F(c)}function O(c){function r(p,v,y,j,C){if(!(p[v]instanceof c)){var S=c.name||T,P=fe(p[v]);return new M("Invalid "+j+" `"+C+"` of type "+("`"+P+"` supplied to `"+y+"`, expected ")+("instance of `"+S+"`."))}return null}return F(r)}function X(c){if(!Array.isArray(c))return process.env.NODE_ENV!=="production"&&(arguments.length>1?i("Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z])."):i("Invalid argument supplied to oneOf, expected an array.")),u;function r(p,v,y,j,C){for(var S=p[v],P=0;P<c.length;P++)if(Y(S,c[P]))return null;var N=JSON.stringify(c,function(q,h){var oe=Z(h);return oe==="symbol"?String(h):h});return new M("Invalid "+j+" `"+C+"` of value `"+String(S)+"` "+("supplied to `"+y+"`, expected one of "+N+"."))}return F(r)}function B(c){function r(p,v,y,j,C){if(typeof c!="function")return new M("Property `"+C+"` of component `"+y+"` has invalid PropType notation inside objectOf.");var S=p[v],P=H(S);if(P!=="object")return new M("Invalid "+j+" `"+C+"` of type "+("`"+P+"` supplied to `"+y+"`, expected an object."));for(var N in S)if(o(S,N)){var D=c(S,N,y,j,C+"."+N,n);if(D instanceof Error)return D}return null}return F(r)}function W(c){if(!Array.isArray(c))return process.env.NODE_ENV!=="production"&&i("Invalid argument supplied to oneOfType, expected an instance of array."),u;for(var r=0;r<c.length;r++){var p=c[r];if(typeof p!="function")return i("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+re(p)+" at index "+r+"."),u}function v(y,j,C,S,P){for(var N=[],D=0;D<c.length;D++){var q=c[D],h=q(y,j,C,S,P,n);if(h==null)return null;h.data&&o(h.data,"expectedType")&&N.push(h.data.expectedType)}var oe=N.length>0?", expected one of type ["+N.join(", ")+"]":"";return new M("Invalid "+S+" `"+P+"` supplied to "+("`"+C+"`"+oe+"."))}return F(v)}function $(){function c(r,p,v,y,j){return ee(r[p])?null:new M("Invalid "+y+" `"+j+"` supplied to "+("`"+v+"`, expected a ReactNode."))}return F(c)}function ae(c,r,p,v,y){return new M((c||"React class")+": "+r+" type `"+p+"."+v+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+y+"`.")}function se(c){function r(p,v,y,j,C){var S=p[v],P=H(S);if(P!=="object")return new M("Invalid "+j+" `"+C+"` of type `"+P+"` "+("supplied to `"+y+"`, expected `object`."));for(var N in c){var D=c[N];if(typeof D!="function")return ae(y,j,C,N,Z(D));var q=D(S,N,y,j,C+"."+N,n);if(q)return q}return null}return F(r)}function ie(c){function r(p,v,y,j,C){var S=p[v],P=H(S);if(P!=="object")return new M("Invalid "+j+" `"+C+"` of type `"+P+"` "+("supplied to `"+y+"`, expected `object`."));var N=t({},p[v],c);for(var D in N){var q=c[D];if(o(c,D)&&typeof q!="function")return ae(y,j,C,D,Z(q));if(!q)return new M("Invalid "+j+" `"+C+"` key `"+D+"` supplied to `"+y+"`.\nBad object: "+JSON.stringify(p[v],null," ")+`
41
+ Valid keys: `+JSON.stringify(Object.keys(c),null," "));var h=q(S,D,y,j,C+"."+D,n);if(h)return h}return null}return F(r)}function ee(c){switch(typeof c){case"number":case"string":case"undefined":return!0;case"boolean":return!c;case"object":if(Array.isArray(c))return c.every(ee);if(c===null||l(c))return!0;var r=_(c);if(r){var p=r.call(c),v;if(r!==c.entries){for(;!(v=p.next()).done;)if(!ee(v.value))return!1}else for(;!(v=p.next()).done;){var y=v.value;if(y&&!ee(y[1]))return!1}}else return!1;return!0;default:return!1}}function ue(c,r){return c==="symbol"?!0:r?r["@@toStringTag"]==="Symbol"||typeof Symbol=="function"&&r instanceof Symbol:!1}function H(c){var r=typeof c;return Array.isArray(c)?"array":c instanceof RegExp?"object":ue(r,c)?"symbol":r}function Z(c){if(typeof c>"u"||c===null)return""+c;var r=H(c);if(r==="object"){if(c instanceof Date)return"date";if(c instanceof RegExp)return"regexp"}return r}function re(c){var r=Z(c);switch(r){case"array":case"object":return"an "+r;case"boolean":case"date":case"regexp":return"a "+r;default:return r}}function fe(c){return!c.constructor||!c.constructor.name?T:c.constructor.name}return R.checkPropTypes=a,R.resetWarningCache=a.resetWarningCache,R.PropTypes=R,R},De}var Ne,ot;function At(){if(ot)return Ne;ot=1;var e=je();function t(){}function n(){}return n.resetWarningCache=t,Ne=function(){function o(u,l,d,m,b,_){if(_!==e){var T=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw T.name="Invariant Violation",T}}o.isRequired=o;function a(){return o}var i={array:o,bigint:o,bool:o,func:o,number:o,object:o,string:o,symbol:o,any:o,arrayOf:a,element:o,elementType:o,instanceOf:a,node:o,objectOf:a,oneOf:a,oneOfType:a,shape:a,exact:a,checkPropTypes:n,resetWarningCache:t};return i.PropTypes=i,i},Ne}if(process.env.NODE_ENV!=="production"){var kt=Ke(),Mt=!0;Ce.exports=Nt()(kt.isElement,Mt)}else Ce.exports=At()();var at=Ce.exports,Ae={exports:{}};function st(e){var t,n,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t<a;t++)e[t]&&(n=st(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}function it(){for(var e,t,n=0,o="",a=arguments.length;n<a;n++)(e=arguments[n])&&(t=st(e))&&(o&&(o+=" "),o+=t);return o}Ae.exports=it,Ae.exports.clsx=it;var Ft=Ae.exports,L={},te={};Object.defineProperty(te,"__esModule",{value:!0}),te.dontSetMe=$t,te.findInArray=It,te.int=Wt,te.isFunction=Yt,te.isNum=Lt;function It(e,t){for(let n=0,o=e.length;n<o;n++)if(t.apply(t,[e[n],n,e]))return e[n]}function Yt(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Function]"}function Lt(e){return typeof e=="number"&&!isNaN(e)}function Wt(e){return parseInt(e,10)}function $t(e,t,n){if(e[t])return new Error(`Invalid prop ${t} passed to ${n} - do not set this, set it on the child.`)}var de={};Object.defineProperty(de,"__esModule",{value:!0}),de.browserPrefixToKey=ct,de.browserPrefixToStyle=Ut,de.default=void 0,de.getPrefix=lt;const ke=["Moz","Webkit","O","ms"];function lt(){var n,o;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"transform";if(typeof window>"u")return"";const t=(o=(n=window.document)==null?void 0:n.documentElement)==null?void 0:o.style;if(!t||e in t)return"";for(let a=0;a<ke.length;a++)if(ct(e,ke[a])in t)return ke[a];return""}function ct(e,t){return t?`${t}${Xt(e)}`:e}function Ut(e,t){return t?`-${t.toLowerCase()}-${e}`:e}function Xt(e){let t="",n=!0;for(let o=0;o<e.length;o++)n?(t+=e[o].toUpperCase(),n=!1):e[o]==="-"?n=!0:t+=e[o];return t}de.default=lt(),Object.defineProperty(L,"__esModule",{value:!0}),L.addClassName=ht,L.addEvent=Ht,L.addUserSelectStyles=nn,L.createCSSTransform=Zt,L.createSVGTransform=Qt,L.getTouch=en,L.getTouchIdentifier=tn,L.getTranslation=Me,L.innerHeight=qt,L.innerWidth=Jt,L.matchesSelector=dt,L.matchesSelectorAndParentsTo=Bt,L.offsetXYFromParent=Kt,L.outerHeight=Gt,L.outerWidth=Vt,L.removeClassName=gt,L.removeEvent=zt,L.scheduleRemoveUserSelectStyles=rn;var J=te,ut=ft(de);function ft(e,t){if(typeof WeakMap=="function")var n=new WeakMap,o=new WeakMap;return(ft=function(a,i){if(!i&&a&&a.__esModule)return a;var u,l,d={__proto__:null,default:a};if(a===null||typeof a!="object"&&typeof a!="function")return d;if(u=i?o:n){if(u.has(a))return u.get(a);u.set(a,d)}for(const m in a)m!=="default"&&{}.hasOwnProperty.call(a,m)&&((l=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,m))&&(l.get||l.set)?u(d,m,l):d[m]=a[m]);return d})(e,t)}let be="";function dt(e,t){return be||(be=(0,J.findInArray)(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(n){return(0,J.isFunction)(e[n])})),(0,J.isFunction)(e[be])?e[be](t):!1}function Bt(e,t,n){let o=e;do{if(dt(o,t))return!0;if(o===n)return!1;o=o.parentNode}while(o);return!1}function Ht(e,t,n,o){if(!e)return;const a={capture:!0,...o};e.addEventListener?e.addEventListener(t,n,a):e.attachEvent?e.attachEvent("on"+t,n):e["on"+t]=n}function zt(e,t,n,o){if(!e)return;const a={capture:!0,...o};e.removeEventListener?e.removeEventListener(t,n,a):e.detachEvent?e.detachEvent("on"+t,n):e["on"+t]=null}function Gt(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,J.int)(n.borderTopWidth),t+=(0,J.int)(n.borderBottomWidth),t}function Vt(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t+=(0,J.int)(n.borderLeftWidth),t+=(0,J.int)(n.borderRightWidth),t}function qt(e){let t=e.clientHeight;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,J.int)(n.paddingTop),t-=(0,J.int)(n.paddingBottom),t}function Jt(e){let t=e.clientWidth;const n=e.ownerDocument.defaultView.getComputedStyle(e);return t-=(0,J.int)(n.paddingLeft),t-=(0,J.int)(n.paddingRight),t}function Kt(e,t,n){const a=t===t.ownerDocument.body?{left:0,top:0}:t.getBoundingClientRect(),i=(e.clientX+t.scrollLeft-a.left)/n,u=(e.clientY+t.scrollTop-a.top)/n;return{x:i,y:u}}function Zt(e,t){const n=Me(e,t,"px");return{[(0,ut.browserPrefixToKey)("transform",ut.default)]:n}}function Qt(e,t){return Me(e,t,"")}function Me(e,t,n){let{x:o,y:a}=e,i=`translate(${o}${n},${a}${n})`;if(t){const u=`${typeof t.x=="string"?t.x:t.x+n}`,l=`${typeof t.y=="string"?t.y:t.y+n}`;i=`translate(${u}, ${l})`+i}return i}function en(e,t){return e.targetTouches&&(0,J.findInArray)(e.targetTouches,n=>t===n.identifier)||e.changedTouches&&(0,J.findInArray)(e.changedTouches,n=>t===n.identifier)}function tn(e){if(e.targetTouches&&e.targetTouches[0])return e.targetTouches[0].identifier;if(e.changedTouches&&e.changedTouches[0])return e.changedTouches[0].identifier}function nn(e){if(!e)return;let t=e.getElementById("react-draggable-style-el");t||(t=e.createElement("style"),t.type="text/css",t.id="react-draggable-style-el",t.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
42
42
  `,t.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
43
- `,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&yt(e.body,"react-draggable-transparent-selection")}function rn(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{mt(e)}):mt(e)}function mt(e){if(e)try{if(e.body&&vt(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&t.type!=="Caret"&&t.removeAllRanges()}}catch{}}function yt(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function vt(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(`(?:^|\\s)${t}(?!\\S)`,"g"),"")}var ne={};Object.defineProperty(ne,"__esModule",{value:!0}),ne.canDragX=sn,ne.canDragY=ln,ne.createCoreData=un,ne.createDraggableData=fn,ne.getBoundPosition=on,ne.getControlPosition=cn,ne.snapToGrid=an;var K=te,pe=L;function on(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:o}=e.props;o=typeof o=="string"?o:dn(o);const a=Ie(e);if(typeof o=="string"){const{ownerDocument:i}=a,p=i.defaultView;let l;if(o==="parent"?l=a.parentNode:l=a.getRootNode().querySelector(o),!(l instanceof p.HTMLElement))throw new Error('Bounds selector "'+o+'" could not find an element.');const f=l,y=p.getComputedStyle(a),T=p.getComputedStyle(f);o={left:-a.offsetLeft+(0,K.int)(T.paddingLeft)+(0,K.int)(y.marginLeft),top:-a.offsetTop+(0,K.int)(T.paddingTop)+(0,K.int)(y.marginTop),right:(0,pe.innerWidth)(f)-(0,pe.outerWidth)(a)-a.offsetLeft+(0,K.int)(T.paddingRight)-(0,K.int)(y.marginRight),bottom:(0,pe.innerHeight)(f)-(0,pe.outerHeight)(a)-a.offsetTop+(0,K.int)(T.paddingBottom)-(0,K.int)(y.marginBottom)}}return(0,K.isNum)(o.right)&&(t=Math.min(t,o.right)),(0,K.isNum)(o.bottom)&&(n=Math.min(n,o.bottom)),(0,K.isNum)(o.left)&&(t=Math.max(t,o.left)),(0,K.isNum)(o.top)&&(n=Math.max(n,o.top)),[t,n]}function an(e,t,n){const o=Math.round(t/e[0])*e[0],a=Math.round(n/e[1])*e[1];return[o,a]}function sn(e){return e.props.axis==="both"||e.props.axis==="x"}function ln(e){return e.props.axis==="both"||e.props.axis==="y"}function cn(e,t,n){const o=typeof t=="number"?(0,pe.getTouch)(e,t):null;if(typeof t=="number"&&!o)return null;const a=Ie(n),i=n.props.offsetParent||a.offsetParent||a.ownerDocument.body;return(0,pe.offsetXYFromParent)(o||e,i,n.props.scale)}function un(e,t,n){const o=!(0,K.isNum)(e.lastX),a=Ie(e);return o?{node:a,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:a,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}}function fn(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}}function dn(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function Ie(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var Se={},xe={};Object.defineProperty(xe,"__esModule",{value:!0}),xe.default=pn;function pn(){}Object.defineProperty(Se,"__esModule",{value:!0}),Se.default=void 0;var Ye=bt(I),z=We(lt),hn=We(Ge),U=L,le=ne,Le=te,me=We(xe);function We(e){return e&&e.__esModule?e:{default:e}}function bt(e,t){if(typeof WeakMap=="function")var n=new WeakMap,o=new WeakMap;return(bt=function(a,i){if(!i&&a&&a.__esModule)return a;var p,l,f={__proto__:null,default:a};if(a===null||typeof a!="object"&&typeof a!="function")return f;if(p=i?o:n){if(p.has(a))return p.get(a);p.set(a,f)}for(const y in a)y!=="default"&&{}.hasOwnProperty.call(a,y)&&((l=(p=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,y))&&(l.get||l.set)?p(f,y,l):f[y]=a[y]);return f})(e,t)}function G(e,t,n){return(t=gn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gn(e){var t=mn(e,"string");return typeof t=="symbol"?t:t+""}function mn(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const Q={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let ce=Q.mouse,Te=class extends Ye.Component{constructor(){super(...arguments),G(this,"dragging",!1),G(this,"lastX",NaN),G(this,"lastY",NaN),G(this,"touchIdentifier",null),G(this,"mounted",!1),G(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const n=this.findDOMNode();if(!n||!n.ownerDocument||!n.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:o}=n;if(this.props.disabled||!(t.target instanceof o.defaultView.Node)||this.props.handle&&!(0,U.matchesSelectorAndParentsTo)(t.target,this.props.handle,n)||this.props.cancel&&(0,U.matchesSelectorAndParentsTo)(t.target,this.props.cancel,n))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();const a=(0,U.getTouchIdentifier)(t);this.touchIdentifier=a;const i=(0,le.getControlPosition)(t,a,this);if(i==null)return;const{x:p,y:l}=i,f=(0,le.createCoreData)(this,p,l);(0,me.default)("DraggableCore: handleDragStart: %j",f),(0,me.default)("calling",this.props.onStart),!(this.props.onStart(t,f)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,U.addUserSelectStyles)(o),this.dragging=!0,this.lastX=p,this.lastY=l,(0,U.addEvent)(o,ce.move,this.handleDrag),(0,U.addEvent)(o,ce.stop,this.handleDragStop))}),G(this,"handleDrag",t=>{const n=(0,le.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:o,y:a}=n;if(Array.isArray(this.props.grid)){let l=o-this.lastX,f=a-this.lastY;if([l,f]=(0,le.snapToGrid)(this.props.grid,l,f),!l&&!f)return;o=this.lastX+l,a=this.lastY+f}const i=(0,le.createCoreData)(this,o,a);if((0,me.default)("DraggableCore: handleDrag: %j",i),this.props.onDrag(t,i)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const f=document.createEvent("MouseEvents");f.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(f)}return}this.lastX=o,this.lastY=a}),G(this,"handleDragStop",t=>{if(!this.dragging)return;const n=(0,le.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:o,y:a}=n;if(Array.isArray(this.props.grid)){let f=o-this.lastX||0,y=a-this.lastY||0;[f,y]=(0,le.snapToGrid)(this.props.grid,f,y),o=this.lastX+f,a=this.lastY+y}const i=(0,le.createCoreData)(this,o,a);if(this.props.onStop(t,i)===!1||this.mounted===!1)return!1;const l=this.findDOMNode();l&&this.props.enableUserSelectHack&&(0,U.scheduleRemoveUserSelectStyles)(l.ownerDocument),(0,me.default)("DraggableCore: handleDragStop: %j",i),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,l&&((0,me.default)("DraggableCore: Removing handlers"),(0,U.removeEvent)(l.ownerDocument,ce.move,this.handleDrag),(0,U.removeEvent)(l.ownerDocument,ce.stop,this.handleDragStop))}),G(this,"onMouseDown",t=>(ce=Q.mouse,this.handleDragStart(t))),G(this,"onMouseUp",t=>(ce=Q.mouse,this.handleDragStop(t))),G(this,"onTouchStart",t=>(ce=Q.touch,this.handleDragStart(t))),G(this,"onTouchEnd",t=>(ce=Q.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,U.addEvent)(t,Q.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:n}=t;(0,U.removeEvent)(n,Q.mouse.move,this.handleDrag),(0,U.removeEvent)(n,Q.touch.move,this.handleDrag),(0,U.removeEvent)(n,Q.mouse.stop,this.handleDragStop),(0,U.removeEvent)(n,Q.touch.stop,this.handleDragStop),(0,U.removeEvent)(t,Q.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,U.scheduleRemoveUserSelectStyles)(n)}}findDOMNode(){var t,n,o;return(t=this.props)!=null&&t.nodeRef?(o=(n=this.props)==null?void 0:n.nodeRef)==null?void 0:o.current:hn.default.findDOMNode(this)}render(){return Ye.cloneElement(Ye.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Se.default=Te,G(Te,"displayName","DraggableCore"),G(Te,"propTypes",{allowAnyClick:z.default.bool,allowMobileScroll:z.default.bool,children:z.default.node.isRequired,disabled:z.default.bool,enableUserSelectHack:z.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:z.default.arrayOf(z.default.number),handle:z.default.string,cancel:z.default.string,nodeRef:z.default.object,onStart:z.default.func,onDrag:z.default.func,onStop:z.default.func,onMouseDown:z.default.func,scale:z.default.number,className:Le.dontSetMe,style:Le.dontSetMe,transform:Le.dontSetMe}),G(Te,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return f.default}}),e.default=void 0;var t=C(I),n=T(lt),o=T(Ge),a=Ft,i=L,p=ne,l=te,f=T(Se),y=T(xe);function T(g){return g&&g.__esModule?g:{default:g}}function C(g,d){if(typeof WeakMap=="function")var w=new WeakMap,x=new WeakMap;return(C=function(s,D){if(!D&&s&&s.__esModule)return s;var X,B,W={__proto__:null,default:s};if(s===null||typeof s!="object"&&typeof s!="function")return W;if(X=D?x:w){if(X.has(s))return X.get(s);X.set(s,W)}for(const $ in s)$!=="default"&&{}.hasOwnProperty.call(s,$)&&((B=(X=Object.defineProperty)&&Object.getOwnPropertyDescriptor(s,$))&&(B.get||B.set)?X(W,$,B):W[$]=s[$]);return W})(g,d)}function E(){return E=Object.assign?Object.assign.bind():function(g){for(var d=1;d<arguments.length;d++){var w=arguments[d];for(var x in w)({}).hasOwnProperty.call(w,x)&&(g[x]=w[x])}return g},E.apply(null,arguments)}function j(g,d,w){return(d=Y(d))in g?Object.defineProperty(g,d,{value:w,enumerable:!0,configurable:!0,writable:!0}):g[d]=w,g}function Y(g){var d=F(g,"string");return typeof d=="symbol"?d:d+""}function F(g,d){if(typeof g!="object"||!g)return g;var w=g[Symbol.toPrimitive];if(w!==void 0){var x=w.call(g,d);if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(d==="string"?String:Number)(g)}class O extends t.Component{static getDerivedStateFromProps(d,w){let{position:x}=d,{prevPropsPosition:s}=w;return x&&(!s||x.x!==s.x||x.y!==s.y)?((0,y.default)("Draggable: getDerivedStateFromProps %j",{position:x,prevPropsPosition:s}),{x:x.x,y:x.y,prevPropsPosition:{...x}}):null}constructor(d){super(d),j(this,"onDragStart",(w,x)=>{if((0,y.default)("Draggable: onDragStart: %j",x),this.props.onStart(w,(0,p.createDraggableData)(this,x))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),j(this,"onDrag",(w,x)=>{if(!this.state.dragging)return!1;(0,y.default)("Draggable: onDrag: %j",x);const s=(0,p.createDraggableData)(this,x),D={x:s.x,y:s.y,slackX:0,slackY:0};if(this.props.bounds){const{x:B,y:W}=D;D.x+=this.state.slackX,D.y+=this.state.slackY;const[$,ae]=(0,p.getBoundPosition)(this,D.x,D.y);D.x=$,D.y=ae,D.slackX=this.state.slackX+(B-D.x),D.slackY=this.state.slackY+(W-D.y),s.x=D.x,s.y=D.y,s.deltaX=D.x-this.state.x,s.deltaY=D.y-this.state.y}if(this.props.onDrag(w,s)===!1)return!1;this.setState(D)}),j(this,"onDragStop",(w,x)=>{if(!this.state.dragging||this.props.onStop(w,(0,p.createDraggableData)(this,x))===!1)return!1;(0,y.default)("Draggable: onDragStop: %j",x);const D={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:B,y:W}=this.props.position;D.x=B,D.y=W}this.setState(D)}),this.state={dragging:!1,dragged:!1,x:d.position?d.position.x:d.defaultPosition.x,y:d.position?d.position.y:d.defaultPosition.y,prevPropsPosition:{...d.position},slackX:0,slackY:0,isElementSVG:!1},d.position&&!(d.onDrag||d.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var d,w;return((w=(d=this.props)==null?void 0:d.nodeRef)==null?void 0:w.current)??o.default.findDOMNode(this)}render(){const{axis:d,bounds:w,children:x,defaultPosition:s,defaultClassName:D,defaultClassNameDragging:X,defaultClassNameDragged:B,position:W,positionOffset:$,scale:ae,...se}=this.props;let ie={},ee=null;const H=!!!W||this.state.dragging,Z=W||s,re={x:(0,p.canDragX)(this)&&H?this.state.x:Z.x,y:(0,p.canDragY)(this)&&H?this.state.y:Z.y};this.state.isElementSVG?ee=(0,i.createSVGTransform)(re,$):ie=(0,i.createCSSTransform)(re,$);const fe=(0,a.clsx)(x.props.className||"",D,{[X]:this.state.dragging,[B]:this.state.dragged});return t.createElement(f.default,E({},se,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(x),{className:fe,style:{...x.props.style,...ie},transform:ee}))}}e.default=O,j(O,"displayName","Draggable"),j(O,"propTypes",{...f.default.propTypes,axis:n.default.oneOf(["both","x","y","none"]),bounds:n.default.oneOfType([n.default.shape({left:n.default.number,right:n.default.number,top:n.default.number,bottom:n.default.number}),n.default.string,n.default.oneOf([!1])]),defaultClassName:n.default.string,defaultClassNameDragging:n.default.string,defaultClassNameDragged:n.default.string,defaultPosition:n.default.shape({x:n.default.number,y:n.default.number}),positionOffset:n.default.shape({x:n.default.oneOfType([n.default.number,n.default.string]),y:n.default.oneOfType([n.default.number,n.default.string])}),position:n.default.shape({x:n.default.number,y:n.default.number}),className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),j(O,"defaultProps",{...f.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})}(Je);const{default:St,DraggableCore:yn}=Je;ye.exports=St,ye.exports.default=St,ye.exports.DraggableCore=yn;var vn=ye.exports;const bn=Ct(vn),Sn=({title:e,collapsed:t=!1,draggable:n=!0,position:o={x:20,y:20},children:a})=>{const[i,p]=I.useState(t),l=I.useRef(null);return u.jsx(bn,{nodeRef:l,handle:".font-controls-header",disabled:!n,defaultPosition:o,bounds:"parent",children:u.jsxs("div",{ref:l,className:"font-controls-panel",children:[u.jsxs("div",{className:"font-controls-header",children:[u.jsx("h3",{className:"font-controls-title",children:e}),u.jsx("button",{className:`font-controls-toggle ${i?"collapsed":""}`,onClick:()=>p(!i),type:"button","aria-label":i?"Expand":"Collapse",children:u.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:u.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),!i&&u.jsx("div",{className:"font-controls-content",children:a})]})})},xn=({value:e,onChange:t,fontFamilies:n})=>{const[o,a]=I.useState(!1),[i,p]=I.useState(""),[l,f]=I.useState(-1),y=I.useRef(null),T=I.useRef(null),C=I.useRef(null),E=n.filter(g=>g.toLowerCase().includes(i.toLowerCase()));I.useEffect(()=>{const g=d=>{y.current&&!y.current.contains(d.target)&&(a(!1),p(""),f(-1))};return o&&document.addEventListener("mousedown",g),()=>{document.removeEventListener("mousedown",g)}},[o]),I.useEffect(()=>{if(l>=0&&C.current){const g=C.current.children[l];g&&g.scrollIntoView({block:"nearest",behavior:"smooth"})}},[l]);const j=g=>{t(g),a(!1),p(""),f(-1)},Y=g=>{if(!o&&(g.key==="Enter"||g.key==="ArrowDown")){g.preventDefault(),a(!0);return}if(o)switch(g.key){case"ArrowDown":g.preventDefault(),f(d=>d<E.length-1?d+1:d);break;case"ArrowUp":g.preventDefault(),f(d=>d>0?d-1:0);break;case"Enter":g.preventDefault(),l>=0&&E[l]&&j(E[l]);break;case"Escape":g.preventDefault(),a(!1),p(""),f(-1);break}},F=g=>{p(g.target.value),f(-1),o||a(!0)},O=()=>{a(!0),T.current&&T.current.select()};return u.jsxs("div",{className:"font-control-group",ref:y,children:[u.jsx("label",{className:"font-control-label",children:"Font Family"}),u.jsxs("div",{className:"font-control-searchable-select",children:[u.jsx("input",{ref:T,type:"text",className:"font-control-input font-control-search-input",value:o?i:e,onChange:F,onClick:O,onKeyDown:Y,placeholder:"Search fonts...",style:{fontFamily:o?"inherit":e}}),o&&u.jsx("div",{className:"font-control-dropdown",ref:C,children:E.length>0?E.map((g,d)=>u.jsx("div",{className:`font-control-dropdown-item ${d===l?"highlighted":""} ${g===e?"selected":""}`,onClick:()=>j(g),onMouseEnter:()=>f(d),style:{fontFamily:g},children:g},g)):u.jsx("div",{className:"font-control-dropdown-item no-results",children:"No fonts found"})})]})]})},Tn=({value:e,onChange:t,min:n,max:o,step:a})=>u.jsxs("div",{className:"font-control-group",children:[u.jsx("label",{className:"font-control-label",children:"Font Size"}),u.jsxs("div",{className:"font-control-slider-container",children:[u.jsx("input",{type:"range",className:"font-control-slider",min:n,max:o,step:a,value:e,onChange:i=>t(Number(i.target.value))}),u.jsx("input",{type:"number",className:"font-control-input font-control-number",min:n,max:o,step:a,value:e,onChange:i=>t(Number(i.target.value))})]})]}),En=[{value:100,label:"Thin"},{value:200,label:"Extra Light"},{value:300,label:"Light"},{value:400,label:"Regular"},{value:500,label:"Medium"},{value:600,label:"Semi Bold"},{value:700,label:"Bold"},{value:800,label:"Extra Bold"},{value:900,label:"Black"}],wn=({value:e,onChange:t})=>u.jsxs("div",{className:"font-control-group",children:[u.jsx("label",{className:"font-control-label",children:"Font Weight"}),u.jsx("select",{className:"font-control-input font-control-select",value:e,onChange:n=>t(Number(n.target.value)),children:En.map(n=>u.jsxs("option",{value:n.value,children:[n.label," (",n.value,")"]},n.value))})]}),Cn=({value:e,onChange:t})=>u.jsxs("div",{className:"font-control-group",children:[u.jsx("label",{className:"font-control-label",children:"Line Height"}),u.jsxs("div",{className:"font-control-slider-container",children:[u.jsx("input",{type:"range",className:"font-control-slider",min:.5,max:3,step:.1,value:e,onChange:n=>t(Number(n.target.value))}),u.jsx("input",{type:"number",className:"font-control-input font-control-number",min:.5,max:3,step:.1,value:e,onChange:n=>t(Number(n.target.value))})]})]}),_n=({value:e,onChange:t})=>u.jsxs("div",{className:"font-control-group",children:[u.jsx("label",{className:"font-control-label",children:"Letter Spacing"}),u.jsxs("div",{className:"font-control-slider-container",children:[u.jsx("input",{type:"range",className:"font-control-slider",min:-5,max:10,step:.1,value:e,onChange:n=>t(Number(n.target.value))}),u.jsx("input",{type:"number",className:"font-control-input font-control-number",min:-5,max:10,step:.1,value:e,onChange:n=>t(Number(n.target.value))})]})]}),Pn=[{value:"none",label:"None"},{value:"uppercase",label:"UPPERCASE"},{value:"lowercase",label:"lowercase"},{value:"capitalize",label:"Capitalize"}],jn=({value:e,onChange:t})=>u.jsxs("div",{className:"font-control-group",children:[u.jsx("label",{className:"font-control-label",children:"Text Transform"}),u.jsx("select",{className:"font-control-input font-control-select",value:e,onChange:n=>t(n.target.value),children:Pn.map(n=>u.jsx("option",{value:n.value,children:n.label},n.value))})]}),Rn=({value:e,onChange:t})=>u.jsxs("div",{className:"font-control-group",children:[u.jsx("label",{className:"font-control-label",children:"Text Color"}),u.jsxs("div",{className:"font-control-color-input",children:[u.jsx("div",{className:"font-control-color-preview",children:u.jsx("input",{type:"color",value:e,onChange:n=>t(n.target.value)})}),u.jsx("input",{type:"text",className:"font-control-input font-control-text-input",value:e,onChange:n=>t(n.target.value),placeholder:"#000000"})]})]}),On=[{value:"left",icon:"⬅"},{value:"center",icon:"↔"},{value:"right",icon:"➡"},{value:"justify",icon:"⬌"}],Dn=({value:e,onChange:t})=>u.jsxs("div",{className:"font-control-group",children:[u.jsx("label",{className:"font-control-label",children:"Text Align"}),u.jsx("div",{className:"font-control-button-group",children:On.map(n=>u.jsx("button",{className:`font-control-button ${e===n.value?"active":""}`,onClick:()=>t(n.value),type:"button",children:n.icon},n.value))})]}),$e=({title:e,code:t,language:n="css"})=>{const[o,a]=I.useState(!1),i=async()=>{try{await navigator.clipboard.writeText(t),a(!0),setTimeout(()=>a(!1),2e3)}catch(p){console.error("Failed to copy:",p)}};return u.jsxs("div",{className:"font-control-code-block",children:[u.jsxs("div",{className:"font-control-code-header",children:[u.jsx("span",{className:"font-control-code-title",children:e}),u.jsx("button",{className:"font-control-copy-button",onClick:i,type:"button",children:o?u.jsxs(u.Fragment,{children:[u.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:u.jsx("polyline",{points:"20 6 9 17 4 12"})}),"Copied!"]}):u.jsxs(u.Fragment,{children:[u.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[u.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),u.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]}),u.jsx("pre",{className:"font-control-code-content",children:u.jsx("code",{className:`language-${n}`,children:t})})]})},xt=new Set;function Tt(e){if(xt.has(e))return;const t=document.createElement("link");t.rel="stylesheet",t.href=`https://fonts.googleapis.com/css2?family=${e.replace(/ /g,"+")}:wght@100;200;300;400;500;600;700;800;900&display=swap`,document.head.appendChild(t),xt.add(e)}function Et(e){if(!document.querySelector('link[href*="fonts.googleapis.com"]')){const t=document.createElement("link");t.rel="preconnect",t.href="https://fonts.googleapis.com";const n=document.createElement("link");n.rel="preconnect",n.href="https://fonts.gstatic.com",n.crossOrigin="anonymous",document.head.appendChild(t),document.head.appendChild(n)}e.forEach(Tt)}function Nn(e){return["Arial","Helvetica","Times New Roman","Georgia","Verdana"].includes(e)?`<!-- ${e} is a system font, no import needed -->`:`<!-- Add this to your HTML <head> -->
43
+ `,e.getElementsByTagName("head")[0].appendChild(t)),e.body&&ht(e.body,"react-draggable-transparent-selection")}function rn(e){window.requestAnimationFrame?window.requestAnimationFrame(()=>{pt(e)}):pt(e)}function pt(e){if(e)try{if(e.body&&gt(e.body,"react-draggable-transparent-selection"),e.selection)e.selection.empty();else{const t=(e.defaultView||window).getSelection();t&&t.type!=="Caret"&&t.removeAllRanges()}}catch{}}function ht(e,t){e.classList?e.classList.add(t):e.className.match(new RegExp(`(?:^|\\s)${t}(?!\\S)`))||(e.className+=` ${t}`)}function gt(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp(`(?:^|\\s)${t}(?!\\S)`,"g"),"")}var ne={};Object.defineProperty(ne,"__esModule",{value:!0}),ne.canDragX=sn,ne.canDragY=ln,ne.createCoreData=un,ne.createDraggableData=fn,ne.getBoundPosition=on,ne.getControlPosition=cn,ne.snapToGrid=an;var K=te,pe=L;function on(e,t,n){if(!e.props.bounds)return[t,n];let{bounds:o}=e.props;o=typeof o=="string"?o:dn(o);const a=Fe(e);if(typeof o=="string"){const{ownerDocument:i}=a,u=i.defaultView;let l;if(o==="parent"?l=a.parentNode:l=a.getRootNode().querySelector(o),!(l instanceof u.HTMLElement))throw new Error('Bounds selector "'+o+'" could not find an element.');const d=l,m=u.getComputedStyle(a),b=u.getComputedStyle(d);o={left:-a.offsetLeft+(0,K.int)(b.paddingLeft)+(0,K.int)(m.marginLeft),top:-a.offsetTop+(0,K.int)(b.paddingTop)+(0,K.int)(m.marginTop),right:(0,pe.innerWidth)(d)-(0,pe.outerWidth)(a)-a.offsetLeft+(0,K.int)(b.paddingRight)-(0,K.int)(m.marginRight),bottom:(0,pe.innerHeight)(d)-(0,pe.outerHeight)(a)-a.offsetTop+(0,K.int)(b.paddingBottom)-(0,K.int)(m.marginBottom)}}return(0,K.isNum)(o.right)&&(t=Math.min(t,o.right)),(0,K.isNum)(o.bottom)&&(n=Math.min(n,o.bottom)),(0,K.isNum)(o.left)&&(t=Math.max(t,o.left)),(0,K.isNum)(o.top)&&(n=Math.max(n,o.top)),[t,n]}function an(e,t,n){const o=Math.round(t/e[0])*e[0],a=Math.round(n/e[1])*e[1];return[o,a]}function sn(e){return e.props.axis==="both"||e.props.axis==="x"}function ln(e){return e.props.axis==="both"||e.props.axis==="y"}function cn(e,t,n){const o=typeof t=="number"?(0,pe.getTouch)(e,t):null;if(typeof t=="number"&&!o)return null;const a=Fe(n),i=n.props.offsetParent||a.offsetParent||a.ownerDocument.body;return(0,pe.offsetXYFromParent)(o||e,i,n.props.scale)}function un(e,t,n){const o=!(0,K.isNum)(e.lastX),a=Fe(e);return o?{node:a,deltaX:0,deltaY:0,lastX:t,lastY:n,x:t,y:n}:{node:a,deltaX:t-e.lastX,deltaY:n-e.lastY,lastX:e.lastX,lastY:e.lastY,x:t,y:n}}function fn(e,t){const n=e.props.scale;return{node:t.node,x:e.state.x+t.deltaX/n,y:e.state.y+t.deltaY/n,deltaX:t.deltaX/n,deltaY:t.deltaY/n,lastX:e.state.x,lastY:e.state.y}}function dn(e){return{left:e.left,top:e.top,right:e.right,bottom:e.bottom}}function Fe(e){const t=e.findDOMNode();if(!t)throw new Error("<DraggableCore>: Unmounted during event!");return t}var Se={},xe={};Object.defineProperty(xe,"__esModule",{value:!0}),xe.default=pn;function pn(){}Object.defineProperty(Se,"__esModule",{value:!0}),Se.default=void 0;var Ie=mt(I),z=Le(at),hn=Le(Be),U=L,le=ne,Ye=te,me=Le(xe);function Le(e){return e&&e.__esModule?e:{default:e}}function mt(e,t){if(typeof WeakMap=="function")var n=new WeakMap,o=new WeakMap;return(mt=function(a,i){if(!i&&a&&a.__esModule)return a;var u,l,d={__proto__:null,default:a};if(a===null||typeof a!="object"&&typeof a!="function")return d;if(u=i?o:n){if(u.has(a))return u.get(a);u.set(a,d)}for(const m in a)m!=="default"&&{}.hasOwnProperty.call(a,m)&&((l=(u=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,m))&&(l.get||l.set)?u(d,m,l):d[m]=a[m]);return d})(e,t)}function G(e,t,n){return(t=gn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gn(e){var t=mn(e,"string");return typeof t=="symbol"?t:t+""}function mn(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var o=n.call(e,t);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}const Q={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}};let ce=Q.mouse,Te=class extends Ie.Component{constructor(){super(...arguments),G(this,"dragging",!1),G(this,"lastX",NaN),G(this,"lastY",NaN),G(this,"touchIdentifier",null),G(this,"mounted",!1),G(this,"handleDragStart",t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&typeof t.button=="number"&&t.button!==0)return!1;const n=this.findDOMNode();if(!n||!n.ownerDocument||!n.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");const{ownerDocument:o}=n;if(this.props.disabled||!(t.target instanceof o.defaultView.Node)||this.props.handle&&!(0,U.matchesSelectorAndParentsTo)(t.target,this.props.handle,n)||this.props.cancel&&(0,U.matchesSelectorAndParentsTo)(t.target,this.props.cancel,n))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();const a=(0,U.getTouchIdentifier)(t);this.touchIdentifier=a;const i=(0,le.getControlPosition)(t,a,this);if(i==null)return;const{x:u,y:l}=i,d=(0,le.createCoreData)(this,u,l);(0,me.default)("DraggableCore: handleDragStart: %j",d),(0,me.default)("calling",this.props.onStart),!(this.props.onStart(t,d)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&(0,U.addUserSelectStyles)(o),this.dragging=!0,this.lastX=u,this.lastY=l,(0,U.addEvent)(o,ce.move,this.handleDrag),(0,U.addEvent)(o,ce.stop,this.handleDragStop))}),G(this,"handleDrag",t=>{const n=(0,le.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:o,y:a}=n;if(Array.isArray(this.props.grid)){let l=o-this.lastX,d=a-this.lastY;if([l,d]=(0,le.snapToGrid)(this.props.grid,l,d),!l&&!d)return;o=this.lastX+l,a=this.lastY+d}const i=(0,le.createCoreData)(this,o,a);if((0,me.default)("DraggableCore: handleDrag: %j",i),this.props.onDrag(t,i)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{const d=document.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(d)}return}this.lastX=o,this.lastY=a}),G(this,"handleDragStop",t=>{if(!this.dragging)return;const n=(0,le.getControlPosition)(t,this.touchIdentifier,this);if(n==null)return;let{x:o,y:a}=n;if(Array.isArray(this.props.grid)){let d=o-this.lastX||0,m=a-this.lastY||0;[d,m]=(0,le.snapToGrid)(this.props.grid,d,m),o=this.lastX+d,a=this.lastY+m}const i=(0,le.createCoreData)(this,o,a);if(this.props.onStop(t,i)===!1||this.mounted===!1)return!1;const l=this.findDOMNode();l&&this.props.enableUserSelectHack&&(0,U.scheduleRemoveUserSelectStyles)(l.ownerDocument),(0,me.default)("DraggableCore: handleDragStop: %j",i),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,l&&((0,me.default)("DraggableCore: Removing handlers"),(0,U.removeEvent)(l.ownerDocument,ce.move,this.handleDrag),(0,U.removeEvent)(l.ownerDocument,ce.stop,this.handleDragStop))}),G(this,"onMouseDown",t=>(ce=Q.mouse,this.handleDragStart(t))),G(this,"onMouseUp",t=>(ce=Q.mouse,this.handleDragStop(t))),G(this,"onTouchStart",t=>(ce=Q.touch,this.handleDragStart(t))),G(this,"onTouchEnd",t=>(ce=Q.touch,this.handleDragStop(t)))}componentDidMount(){this.mounted=!0;const t=this.findDOMNode();t&&(0,U.addEvent)(t,Q.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;const t=this.findDOMNode();if(t){const{ownerDocument:n}=t;(0,U.removeEvent)(n,Q.mouse.move,this.handleDrag),(0,U.removeEvent)(n,Q.touch.move,this.handleDrag),(0,U.removeEvent)(n,Q.mouse.stop,this.handleDragStop),(0,U.removeEvent)(n,Q.touch.stop,this.handleDragStop),(0,U.removeEvent)(t,Q.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&(0,U.scheduleRemoveUserSelectStyles)(n)}}findDOMNode(){var t,n,o;return(t=this.props)!=null&&t.nodeRef?(o=(n=this.props)==null?void 0:n.nodeRef)==null?void 0:o.current:hn.default.findDOMNode(this)}render(){return Ie.cloneElement(Ie.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Se.default=Te,G(Te,"displayName","DraggableCore"),G(Te,"propTypes",{allowAnyClick:z.default.bool,allowMobileScroll:z.default.bool,children:z.default.node.isRequired,disabled:z.default.bool,enableUserSelectHack:z.default.bool,offsetParent:function(e,t){if(e[t]&&e[t].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:z.default.arrayOf(z.default.number),handle:z.default.string,cancel:z.default.string,nodeRef:z.default.object,onStart:z.default.func,onDrag:z.default.func,onStop:z.default.func,onMouseDown:z.default.func,scale:z.default.number,className:Ye.dontSetMe,style:Ye.dontSetMe,transform:Ye.dontSetMe}),G(Te,"defaultProps",{allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1}),function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"DraggableCore",{enumerable:!0,get:function(){return d.default}}),e.default=void 0;var t=_(I),n=b(at),o=b(Be),a=Ft,i=L,u=ne,l=te,d=b(Se),m=b(xe);function b(g){return g&&g.__esModule?g:{default:g}}function _(g,x){if(typeof WeakMap=="function")var w=new WeakMap,E=new WeakMap;return(_=function(s,O){if(!O&&s&&s.__esModule)return s;var X,B,W={__proto__:null,default:s};if(s===null||typeof s!="object"&&typeof s!="function")return W;if(X=O?E:w){if(X.has(s))return X.get(s);X.set(s,W)}for(const $ in s)$!=="default"&&{}.hasOwnProperty.call(s,$)&&((B=(X=Object.defineProperty)&&Object.getOwnPropertyDescriptor(s,$))&&(B.get||B.set)?X(W,$,B):W[$]=s[$]);return W})(g,x)}function T(){return T=Object.assign?Object.assign.bind():function(g){for(var x=1;x<arguments.length;x++){var w=arguments[x];for(var E in w)({}).hasOwnProperty.call(w,E)&&(g[E]=w[E])}return g},T.apply(null,arguments)}function R(g,x,w){return(x=Y(x))in g?Object.defineProperty(g,x,{value:w,enumerable:!0,configurable:!0,writable:!0}):g[x]=w,g}function Y(g){var x=M(g,"string");return typeof x=="symbol"?x:x+""}function M(g,x){if(typeof g!="object"||!g)return g;var w=g[Symbol.toPrimitive];if(w!==void 0){var E=w.call(g,x);if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(x==="string"?String:Number)(g)}class F extends t.Component{static getDerivedStateFromProps(x,w){let{position:E}=x,{prevPropsPosition:s}=w;return E&&(!s||E.x!==s.x||E.y!==s.y)?((0,m.default)("Draggable: getDerivedStateFromProps %j",{position:E,prevPropsPosition:s}),{x:E.x,y:E.y,prevPropsPosition:{...E}}):null}constructor(x){super(x),R(this,"onDragStart",(w,E)=>{if((0,m.default)("Draggable: onDragStart: %j",E),this.props.onStart(w,(0,u.createDraggableData)(this,E))===!1)return!1;this.setState({dragging:!0,dragged:!0})}),R(this,"onDrag",(w,E)=>{if(!this.state.dragging)return!1;(0,m.default)("Draggable: onDrag: %j",E);const s=(0,u.createDraggableData)(this,E),O={x:s.x,y:s.y,slackX:0,slackY:0};if(this.props.bounds){const{x:B,y:W}=O;O.x+=this.state.slackX,O.y+=this.state.slackY;const[$,ae]=(0,u.getBoundPosition)(this,O.x,O.y);O.x=$,O.y=ae,O.slackX=this.state.slackX+(B-O.x),O.slackY=this.state.slackY+(W-O.y),s.x=O.x,s.y=O.y,s.deltaX=O.x-this.state.x,s.deltaY=O.y-this.state.y}if(this.props.onDrag(w,s)===!1)return!1;this.setState(O)}),R(this,"onDragStop",(w,E)=>{if(!this.state.dragging||this.props.onStop(w,(0,u.createDraggableData)(this,E))===!1)return!1;(0,m.default)("Draggable: onDragStop: %j",E);const O={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){const{x:B,y:W}=this.props.position;O.x=B,O.y=W}this.setState(O)}),this.state={dragging:!1,dragged:!1,x:x.position?x.position.x:x.defaultPosition.x,y:x.position?x.position.y:x.defaultPosition.y,prevPropsPosition:{...x.position},slackX:0,slackY:0,isElementSVG:!1},x.position&&!(x.onDrag||x.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var x,w;return((w=(x=this.props)==null?void 0:x.nodeRef)==null?void 0:w.current)??o.default.findDOMNode(this)}render(){const{axis:x,bounds:w,children:E,defaultPosition:s,defaultClassName:O,defaultClassNameDragging:X,defaultClassNameDragged:B,position:W,positionOffset:$,scale:ae,...se}=this.props;let ie={},ee=null;const H=!!!W||this.state.dragging,Z=W||s,re={x:(0,u.canDragX)(this)&&H?this.state.x:Z.x,y:(0,u.canDragY)(this)&&H?this.state.y:Z.y};this.state.isElementSVG?ee=(0,i.createSVGTransform)(re,$):ie=(0,i.createCSSTransform)(re,$);const fe=(0,a.clsx)(E.props.className||"",O,{[X]:this.state.dragging,[B]:this.state.dragged});return t.createElement(d.default,T({},se,{onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop}),t.cloneElement(t.Children.only(E),{className:fe,style:{...E.props.style,...ie},transform:ee}))}}e.default=F,R(F,"displayName","Draggable"),R(F,"propTypes",{...d.default.propTypes,axis:n.default.oneOf(["both","x","y","none"]),bounds:n.default.oneOfType([n.default.shape({left:n.default.number,right:n.default.number,top:n.default.number,bottom:n.default.number}),n.default.string,n.default.oneOf([!1])]),defaultClassName:n.default.string,defaultClassNameDragging:n.default.string,defaultClassNameDragged:n.default.string,defaultPosition:n.default.shape({x:n.default.number,y:n.default.number}),positionOffset:n.default.shape({x:n.default.oneOfType([n.default.number,n.default.string]),y:n.default.oneOfType([n.default.number,n.default.string])}),position:n.default.shape({x:n.default.number,y:n.default.number}),className:l.dontSetMe,style:l.dontSetMe,transform:l.dontSetMe}),R(F,"defaultProps",{...d.default.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1})}(Ge);const{default:yt,DraggableCore:yn}=Ge;ye.exports=yt,ye.exports.default=yt,ye.exports.DraggableCore=yn;var vn=ye.exports;const bn=Ct(vn),Sn=({title:e,collapsed:t=!1,draggable:n=!0,position:o={x:20,y:20},children:a})=>{const[i,u]=I.useState(t),l=I.useRef(null);return f.jsx(bn,{nodeRef:l,handle:".font-controls-header",disabled:!n,defaultPosition:o,bounds:"parent",children:f.jsxs("div",{ref:l,className:"font-controls-panel",children:[f.jsxs("div",{className:"font-controls-header",children:[f.jsx("h3",{className:"font-controls-title",children:e}),f.jsx("button",{className:`font-controls-toggle ${i?"collapsed":""}`,onClick:()=>u(!i),type:"button","aria-label":i?"Expand":"Collapse",children:f.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:f.jsx("polyline",{points:"6 9 12 15 18 9"})})})]}),!i&&f.jsx("div",{className:"font-controls-content",children:a})]})})},xn=({value:e,onChange:t,fontFamilies:n})=>{const[o,a]=I.useState(!1),[i,u]=I.useState(""),[l,d]=I.useState(-1),m=I.useRef(null),b=I.useRef(null),_=I.useRef(null),T=n.filter(g=>g.toLowerCase().includes(i.toLowerCase()));I.useEffect(()=>{const g=x=>{m.current&&!m.current.contains(x.target)&&(a(!1),u(""),d(-1))};return o&&document.addEventListener("mousedown",g),()=>{document.removeEventListener("mousedown",g)}},[o]),I.useEffect(()=>{if(l>=0&&_.current){const g=_.current.children[l];g&&g.scrollIntoView({block:"nearest",behavior:"smooth"})}},[l]);const R=g=>{t(g),a(!1),u(""),d(-1)},Y=g=>{if(!o&&(g.key==="Enter"||g.key==="ArrowDown")){g.preventDefault(),a(!0);return}if(o)switch(g.key){case"ArrowDown":g.preventDefault(),d(x=>x<T.length-1?x+1:x);break;case"ArrowUp":g.preventDefault(),d(x=>x>0?x-1:0);break;case"Enter":g.preventDefault(),l>=0&&T[l]&&R(T[l]);break;case"Escape":g.preventDefault(),a(!1),u(""),d(-1);break}},M=g=>{u(g.target.value),d(-1),o||a(!0)},F=()=>{a(!0),b.current&&b.current.select()};return f.jsxs("div",{className:"font-control-group",ref:m,children:[f.jsx("label",{className:"font-control-label",children:"Font Family"}),f.jsxs("div",{className:"font-control-searchable-select",children:[f.jsx("input",{ref:b,type:"text",className:"font-control-input font-control-search-input",value:o?i:e,onChange:M,onClick:F,onKeyDown:Y,placeholder:"Search fonts...",style:{fontFamily:o?"inherit":e}}),o&&f.jsx("div",{className:"font-control-dropdown",ref:_,children:T.length>0?T.map((g,x)=>f.jsx("div",{className:`font-control-dropdown-item ${x===l?"highlighted":""} ${g===e?"selected":""}`,onClick:()=>R(g),onMouseEnter:()=>d(x),style:{fontFamily:g},children:g},g)):f.jsx("div",{className:"font-control-dropdown-item no-results",children:"No fonts found"})})]})]})},Tn=({value:e,onChange:t,min:n,max:o,step:a})=>f.jsxs("div",{className:"font-control-group",children:[f.jsx("label",{className:"font-control-label",children:"Font Size"}),f.jsxs("div",{className:"font-control-slider-container",children:[f.jsx("input",{type:"range",className:"font-control-slider",min:n,max:o,step:a,value:e,onChange:i=>t(Number(i.target.value))}),f.jsx("input",{type:"number",className:"font-control-input font-control-number",min:n,max:o,step:a,value:e,onChange:i=>t(Number(i.target.value))})]})]}),En=[{value:100,label:"Thin"},{value:200,label:"Extra Light"},{value:300,label:"Light"},{value:400,label:"Regular"},{value:500,label:"Medium"},{value:600,label:"Semi Bold"},{value:700,label:"Bold"},{value:800,label:"Extra Bold"},{value:900,label:"Black"}],wn=({value:e,onChange:t})=>f.jsxs("div",{className:"font-control-group",children:[f.jsx("label",{className:"font-control-label",children:"Font Weight"}),f.jsx("select",{className:"font-control-input font-control-select",value:e,onChange:n=>t(Number(n.target.value)),children:En.map(n=>f.jsxs("option",{value:n.value,children:[n.label," (",n.value,")"]},n.value))})]}),Cn=({value:e,onChange:t})=>f.jsxs("div",{className:"font-control-group",children:[f.jsx("label",{className:"font-control-label",children:"Line Height"}),f.jsxs("div",{className:"font-control-slider-container",children:[f.jsx("input",{type:"range",className:"font-control-slider",min:.5,max:3,step:.1,value:e,onChange:n=>t(Number(n.target.value))}),f.jsx("input",{type:"number",className:"font-control-input font-control-number",min:.5,max:3,step:.1,value:e,onChange:n=>t(Number(n.target.value))})]})]}),_n=({value:e,onChange:t})=>f.jsxs("div",{className:"font-control-group",children:[f.jsx("label",{className:"font-control-label",children:"Letter Spacing"}),f.jsxs("div",{className:"font-control-slider-container",children:[f.jsx("input",{type:"range",className:"font-control-slider",min:-5,max:10,step:.1,value:e,onChange:n=>t(Number(n.target.value))}),f.jsx("input",{type:"number",className:"font-control-input font-control-number",min:-5,max:10,step:.1,value:e,onChange:n=>t(Number(n.target.value))})]})]}),Pn=[{value:"none",label:"None"},{value:"uppercase",label:"UPPERCASE"},{value:"lowercase",label:"lowercase"},{value:"capitalize",label:"Capitalize"}],jn=({value:e,onChange:t})=>f.jsxs("div",{className:"font-control-group",children:[f.jsx("label",{className:"font-control-label",children:"Text Transform"}),f.jsx("select",{className:"font-control-input font-control-select",value:e,onChange:n=>t(n.target.value),children:Pn.map(n=>f.jsx("option",{value:n.value,children:n.label},n.value))})]}),Rn=({value:e,onChange:t})=>f.jsxs("div",{className:"font-control-group",children:[f.jsx("label",{className:"font-control-label",children:"Text Color"}),f.jsxs("div",{className:"font-control-color-input",children:[f.jsx("div",{className:"font-control-color-preview",children:f.jsx("input",{type:"color",value:e,onChange:n=>t(n.target.value)})}),f.jsx("input",{type:"text",className:"font-control-input font-control-text-input",value:e,onChange:n=>t(n.target.value),placeholder:"#000000"})]})]}),On=[{value:"left",icon:"⬅"},{value:"center",icon:"↔"},{value:"right",icon:"➡"},{value:"justify",icon:"⬌"}],Dn=({value:e,onChange:t})=>f.jsxs("div",{className:"font-control-group",children:[f.jsx("label",{className:"font-control-label",children:"Text Align"}),f.jsx("div",{className:"font-control-button-group",children:On.map(n=>f.jsx("button",{className:`font-control-button ${e===n.value?"active":""}`,onClick:()=>t(n.value),type:"button",children:n.icon},n.value))})]}),We=({title:e,code:t,language:n="css"})=>{const[o,a]=I.useState(!1),i=async()=>{try{await navigator.clipboard.writeText(t),a(!0),setTimeout(()=>a(!1),2e3)}catch(u){console.error("Failed to copy:",u)}};return f.jsxs("div",{className:"font-control-code-block",children:[f.jsxs("div",{className:"font-control-code-header",children:[f.jsx("span",{className:"font-control-code-title",children:e}),f.jsx("button",{className:"font-control-copy-button",onClick:i,type:"button",children:o?f.jsxs(f.Fragment,{children:[f.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:f.jsx("polyline",{points:"20 6 9 17 4 12"})}),"Copied!"]}):f.jsxs(f.Fragment,{children:[f.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[f.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),f.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),"Copy"]})})]}),f.jsx("pre",{className:"font-control-code-content",children:f.jsx("code",{className:`language-${n}`,children:t})})]})},vt=new Set;function bt(e){if(vt.has(e))return;const t=document.createElement("link");t.rel="stylesheet",t.href=`https://fonts.googleapis.com/css2?family=${e.replace(/ /g,"+")}:wght@100;200;300;400;500;600;700;800;900&display=swap`,document.head.appendChild(t),vt.add(e)}function St(e){if(!document.querySelector('link[href*="fonts.googleapis.com"]')){const t=document.createElement("link");t.rel="preconnect",t.href="https://fonts.googleapis.com";const n=document.createElement("link");n.rel="preconnect",n.href="https://fonts.gstatic.com",n.crossOrigin="anonymous",document.head.appendChild(t),document.head.appendChild(n)}e.forEach(bt)}function Nn(e){return["Arial","Helvetica","Times New Roman","Georgia","Verdana"].includes(e)?`<!-- ${e} is a system font, no import needed -->`:`<!-- Add this to your HTML <head> -->
44
44
  <link rel="preconnect" href="https://fonts.googleapis.com">
45
45
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
46
46
  <link href="${`https://fonts.googleapis.com/css2?family=${e.replace(/ /g,"+")}:wght@100;200;300;400;500;600;700;800;900&display=swap`}" rel="stylesheet">`}function An(e){return`<h1 style={{
@@ -63,4 +63,4 @@ Valid keys: `+JSON.stringify(Object.keys(c),null," "));var m=q(S,N,v,R,_+"."+N,
63
63
  text-transform: ${e.textTransform};
64
64
  color: ${e.color};
65
65
  text-align: ${e.textAlign};
66
- }`}const Ue="font-controls-config",Xe=(e,t=Ue)=>{try{typeof window<"u"&&window.localStorage&&localStorage.setItem(t,JSON.stringify(e))}catch(n){console.warn("Failed to save font config to localStorage:",n)}},Be=(e=Ue)=>{try{if(typeof window<"u"&&window.localStorage){const t=localStorage.getItem(e);if(t)return JSON.parse(t)}}catch(t){console.warn("Failed to load font config from localStorage:",t)}return null},He=(e=Ue)=>{try{typeof window<"u"&&window.localStorage&&localStorage.removeItem(e)}catch(t){console.warn("Failed to clear font config from localStorage:",t)}},Mn=["Inter","Roboto","Open Sans","Lato","Montserrat","Poppins","Raleway","Work Sans","Nunito","Source Sans Pro","DM Sans","Manrope","Plus Jakarta Sans","Outfit","Space Grotesk","Rubik","Karla","Mulish","Quicksand","Barlow","Josefin Sans","Lexend","Hind","Oxygen","Ubuntu","Noto Sans","PT Sans","Cabin","Varela Round","Asap","Exo 2","Archivo","Titillium Web","Yantramanav","Heebo","Comfortaa","Alata","Jost","Red Hat Display","Sora","Playfair Display","Merriweather","Lora","Crimson Text","EB Garamond","Libre Baskerville","Cormorant Garamond","Spectral","Cardo","Bitter","Arvo","Vollkorn","Neuton","Alegreya","Domine","Rokkitt","PT Serif","Gelasio","Noticia Text","Unna","Fira Code","JetBrains Mono","Inconsolata","Source Code Pro","Roboto Mono","IBM Plex Mono","Space Mono","Courier Prime","Anonymous Pro","Overpass Mono","Ubuntu Mono","PT Mono","Noto Sans Mono","Cousine","Share Tech Mono","Bebas Neue","Oswald","Righteous","Permanent Marker","Pacifico","Anton","Alfa Slab One","Fredoka One","Passion One","Bungee","Monoton","Abril Fatface","Lobster","Bangers","Russo One","Dancing Script","Satisfy","Great Vibes","Kaushan Script","Caveat","Shadows Into Light","Indie Flower","Amatic SC","Patrick Hand","Courgette"],Ee={fontFamily:"Arial",fontSize:16,fontWeight:400,lineHeight:1.5,letterSpacing:0,textTransform:"none",color:"#000000",textAlign:"left"},Fn=({value:e,onChange:t,fontFamilies:n=Mn,minFontSize:o=8,maxFontSize:a=120,fontSizeStep:i=1,title:p="Font Controls",collapsed:l=!1,draggable:f=!0,position:y,enableLocalStorage:T=!1,storageKey:C="font-controls-config"})=>{const[E,j]=I.useState(()=>{if(T){const d=Be(C);if(d)return{...Ee,...e,...d}}return{...Ee,...e}}),[Y,F]=I.useState(!1);I.useEffect(()=>{e&&j(d=>({...d,...e}))},[e]),I.useEffect(()=>{Et(n)},[n]);const O=(d,w)=>{const x={...E,[d]:w};j(x),t==null||t(x),T&&Xe(x,C)},g=()=>{j(Ee),t==null||t(Ee),T&&He(C)};return u.jsxs(Sn,{title:p,collapsed:l,draggable:f,position:y,children:[u.jsx(xn,{value:E.fontFamily,onChange:d=>O("fontFamily",d),fontFamilies:n}),u.jsx(Tn,{value:E.fontSize,onChange:d=>O("fontSize",d),min:o,max:a,step:i}),u.jsx(wn,{value:E.fontWeight,onChange:d=>O("fontWeight",d)}),u.jsx(Cn,{value:E.lineHeight,onChange:d=>O("lineHeight",d)}),u.jsx(_n,{value:E.letterSpacing,onChange:d=>O("letterSpacing",d)}),u.jsx(jn,{value:E.textTransform,onChange:d=>O("textTransform",d)}),u.jsx(Rn,{value:E.color,onChange:d=>O("color",d)}),u.jsx(Dn,{value:E.textAlign,onChange:d=>O("textAlign",d)}),u.jsxs("button",{className:"font-control-reset-button",onClick:g,type:"button",children:[u.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[u.jsx("polyline",{points:"1 4 1 10 7 10"}),u.jsx("polyline",{points:"23 20 23 14 17 14"}),u.jsx("path",{d:"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"})]}),"Reset to Default"]}),u.jsxs("div",{className:"font-control-export-section",children:[u.jsxs("button",{className:"font-control-export-toggle",onClick:()=>F(!Y),type:"button",children:[u.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:Y?"rotated":"",children:u.jsx("polyline",{points:"9 18 15 12 9 6"})}),"Export Configuration"]}),Y&&u.jsxs("div",{className:"font-control-export-content",children:[u.jsx($e,{title:"1. Google Fonts Import (HTML)",code:Nn(E.fontFamily),language:"html"}),u.jsx($e,{title:"2. React/JSX Inline Styles",code:An(E),language:"tsx"}),u.jsx($e,{title:"3. CSS Class",code:kn(E),language:"css"})]})]})]})},ze={fontFamily:"Arial",fontSize:16,fontWeight:400,lineHeight:1.5,letterSpacing:0,textTransform:"none",color:"#000000",textAlign:"left"},In=e=>{const{initialConfig:t,enableLocalStorage:n=!1,storageKey:o="font-controls-config"}=e||{},[a,i]=I.useState(()=>{if(n){const f=Be(o);if(f)return{...ze,...t,...f}}return{...ze,...t}});return I.useEffect(()=>{n&&Xe(a,o)},[a,n,o]),{config:a,setConfig:i,updateConfig:(f,y)=>{i(T=>({...T,[f]:y}))},resetConfig:()=>{const f={...ze,...t};i(f),n&&He(o)}}};V.FontControls=Fn,V.clearFontConfig=He,V.loadAllDefaultFonts=Et,V.loadFontConfig=Be,V.loadGoogleFont=Tt,V.saveFontConfig=Xe,V.useFontControls=In,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})});
66
+ }`}const Mn=["Inter","Roboto","Open Sans","Lato","Montserrat","Poppins","Raleway","Work Sans","Nunito","Source Sans Pro","DM Sans","Manrope","Plus Jakarta Sans","Outfit","Space Grotesk","Rubik","Karla","Mulish","Quicksand","Barlow","Josefin Sans","Lexend","Hind","Oxygen","Ubuntu","Noto Sans","PT Sans","Cabin","Varela Round","Asap","Exo 2","Archivo","Titillium Web","Yantramanav","Heebo","Comfortaa","Alata","Jost","Red Hat Display","Sora","Playfair Display","Merriweather","Lora","Crimson Text","EB Garamond","Libre Baskerville","Cormorant Garamond","Spectral","Cardo","Bitter","Arvo","Vollkorn","Neuton","Alegreya","Domine","Rokkitt","PT Serif","Gelasio","Noticia Text","Unna","Fira Code","JetBrains Mono","Inconsolata","Source Code Pro","Roboto Mono","IBM Plex Mono","Space Mono","Courier Prime","Anonymous Pro","Overpass Mono","Ubuntu Mono","PT Mono","Noto Sans Mono","Cousine","Share Tech Mono","Bebas Neue","Oswald","Righteous","Permanent Marker","Pacifico","Anton","Alfa Slab One","Fredoka One","Passion One","Bungee","Monoton","Abril Fatface","Lobster","Bangers","Russo One","Dancing Script","Satisfy","Great Vibes","Kaushan Script","Caveat","Shadows Into Light","Indie Flower","Amatic SC","Patrick Hand","Courgette"],$e={fontFamily:"Arial",fontSize:16,fontWeight:400,lineHeight:1.5,letterSpacing:0,textTransform:"none",color:"#000000",textAlign:"left"},Fn=({value:e,onChange:t,fontFamilies:n=Mn,minFontSize:o=8,maxFontSize:a=120,fontSizeStep:i=1})=>{const[u,l]=I.useState(()=>({...$e,...e})),[d,m]=I.useState(!1);I.useEffect(()=>{e&&l(T=>({...T,...e}))},[e]),I.useEffect(()=>{St(n)},[n]);const b=(T,R)=>{const Y={...u,[T]:R};l(Y),t==null||t(Y)},_=()=>{l($e),t==null||t($e)};return f.jsxs(Sn,{title:"Font Controls",draggable:!0,position:{x:20,y:20},children:[f.jsx(xn,{value:u.fontFamily,onChange:T=>b("fontFamily",T),fontFamilies:n}),f.jsx(Tn,{value:u.fontSize,onChange:T=>b("fontSize",T),min:o,max:a,step:i}),f.jsx(wn,{value:u.fontWeight,onChange:T=>b("fontWeight",T)}),f.jsx(Cn,{value:u.lineHeight,onChange:T=>b("lineHeight",T)}),f.jsx(_n,{value:u.letterSpacing,onChange:T=>b("letterSpacing",T)}),f.jsx(jn,{value:u.textTransform,onChange:T=>b("textTransform",T)}),f.jsx(Rn,{value:u.color,onChange:T=>b("color",T)}),f.jsx(Dn,{value:u.textAlign,onChange:T=>b("textAlign",T)}),f.jsxs("button",{className:"font-control-reset-button",onClick:_,type:"button",children:[f.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[f.jsx("polyline",{points:"1 4 1 10 7 10"}),f.jsx("polyline",{points:"23 20 23 14 17 14"}),f.jsx("path",{d:"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"})]}),"Reset to Default"]}),f.jsxs("div",{className:"font-control-export-section",children:[f.jsxs("button",{className:"font-control-export-toggle",onClick:()=>m(!d),type:"button",children:[f.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:d?"rotated":"",children:f.jsx("polyline",{points:"9 18 15 12 9 6"})}),"Export Configuration"]}),d&&f.jsxs("div",{className:"font-control-export-content",children:[f.jsx(We,{title:"1. Google Fonts Import (HTML)",code:Nn(u.fontFamily),language:"html"}),f.jsx(We,{title:"2. React/JSX Inline Styles",code:An(u),language:"tsx"}),f.jsx(We,{title:"3. CSS Class",code:kn(u),language:"css"})]})]})]})},Ue="font-controls-config",xt=(e,t=Ue)=>{try{typeof window<"u"&&window.localStorage&&localStorage.setItem(t,JSON.stringify(e))}catch(n){console.warn("Failed to save font config to localStorage:",n)}},Tt=(e=Ue)=>{try{if(typeof window<"u"&&window.localStorage){const t=localStorage.getItem(e);if(t)return JSON.parse(t)}}catch(t){console.warn("Failed to load font config from localStorage:",t)}return null},Et=(e=Ue)=>{try{typeof window<"u"&&window.localStorage&&localStorage.removeItem(e)}catch(t){console.warn("Failed to clear font config from localStorage:",t)}},Xe={fontFamily:"Arial",fontSize:16,fontWeight:400,lineHeight:1.5,letterSpacing:0,textTransform:"none",color:"#000000",textAlign:"left"},In=e=>{const{initialConfig:t,enableLocalStorage:n=!0,storageKey:o="font-controls-config"}=e||{},[a,i]=I.useState(()=>{if(n){const d=Tt(o);if(d)return{...Xe,...t,...d}}return{...Xe,...t}});return I.useEffect(()=>{n&&xt(a,o)},[a,n,o]),{config:a,setConfig:i,updateConfig:(d,m)=>{i(b=>({...b,[d]:m}))},resetConfig:()=>{const d={...Xe,...t};i(d),n&&Et(o)}}};V.FontControls=Fn,V.clearFontConfig=Et,V.loadAllDefaultFonts=St,V.loadFontConfig=Tt,V.loadGoogleFont=bt,V.saveFontConfig=xt,V.useFontControls=In,Object.defineProperty(V,Symbol.toStringTag,{value:"Module"})});
package/dist/index.d.ts CHANGED
@@ -52,38 +52,6 @@ export declare interface FontControlsProps {
52
52
  * @default 1
53
53
  */
54
54
  fontSizeStep?: number;
55
- /**
56
- * Panel title
57
- * @default 'Font Controls'
58
- */
59
- title?: string;
60
- /**
61
- * Initial collapsed state
62
- * @default false
63
- */
64
- collapsed?: boolean;
65
- /**
66
- * Enable drag to reposition
67
- * @default true
68
- */
69
- draggable?: boolean;
70
- /**
71
- * Initial position (for draggable mode)
72
- */
73
- position?: {
74
- x: number;
75
- y: number;
76
- };
77
- /**
78
- * Enable local storage persistence
79
- * @default false
80
- */
81
- enableLocalStorage?: boolean;
82
- /**
83
- * Custom storage key for local storage
84
- * @default 'font-controls-config'
85
- */
86
- storageKey?: string;
87
55
  }
88
56
 
89
57
  /**
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- :root{--fc-bg: rgba(255, 255, 255, .95);--fc-bg-hover: rgba(255, 255, 255, .98);--fc-border: rgba(0, 0, 0, .1);--fc-text: #1a1a1a;--fc-text-secondary: #666;--fc-accent: #3b82f6;--fc-accent-hover: #2563eb;--fc-input-bg: rgba(0, 0, 0, .03);--fc-input-border: rgba(0, 0, 0, .1);--fc-shadow: 0 8px 32px rgba(0, 0, 0, .1);--fc-shadow-lg: 0 20px 60px rgba(0, 0, 0, .15)}@media (prefers-color-scheme: dark){:root{--fc-bg: rgba(30, 30, 30, .95);--fc-bg-hover: rgba(40, 40, 40, .98);--fc-border: rgba(255, 255, 255, .1);--fc-text: #e5e5e5;--fc-text-secondary: #a0a0a0;--fc-accent: #60a5fa;--fc-accent-hover: #3b82f6;--fc-input-bg: rgba(255, 255, 255, .05);--fc-input-border: rgba(255, 255, 255, .1);--fc-shadow: 0 8px 32px rgba(0, 0, 0, .3);--fc-shadow-lg: 0 20px 60px rgba(0, 0, 0, .4)}}*{box-sizing:border-box;margin:0;padding:0}.font-controls-panel{position:fixed;top:0;left:0;width:320px;background:var(--fc-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--fc-border);border-radius:12px;box-shadow:var(--fc-shadow);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:14px;color:var(--fc-text);z-index:9999;-webkit-user-select:none;user-select:none}.font-controls-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--fc-border);cursor:grab;transition:background .2s ease}.font-controls-header:active{cursor:grabbing}.font-controls-header:hover{background:var(--fc-input-bg)}.font-controls-title{font-weight:600;font-size:15px;margin:0;display:flex;align-items:center;gap:8px}.font-controls-toggle{background:none;border:none;color:var(--fc-text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border-radius:4px}.font-controls-toggle:hover{background:var(--fc-input-bg);color:var(--fc-text)}.font-controls-toggle svg{width:16px;height:16px;transition:transform .3s cubic-bezier(.4,0,.2,1)}.font-controls-toggle.collapsed svg{transform:rotate(-90deg)}.font-controls-content{padding:16px;display:flex;flex-direction:column;gap:16px;max-height:600px;overflow-y:auto;overflow-x:hidden}.font-controls-content::-webkit-scrollbar{width:6px}.font-controls-content::-webkit-scrollbar-track{background:transparent}.font-controls-content::-webkit-scrollbar-thumb{background:var(--fc-border);border-radius:3px}.font-controls-content::-webkit-scrollbar-thumb:hover{background:var(--fc-text-secondary)}.font-control-group{display:flex;flex-direction:column;gap:8px}.font-control-label{font-size:12px;font-weight:500;color:var(--fc-text-secondary);text-transform:uppercase;letter-spacing:.5px}.font-control-input{width:100%;padding:8px 12px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);font-size:14px;transition:all .2s ease;outline:none;font-family:inherit}.font-control-input:hover{background:var(--fc-bg-hover);border-color:var(--fc-accent)}.font-control-input:focus{border-color:var(--fc-accent);box-shadow:0 0 0 3px #3b82f61a}.font-control-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.font-control-searchable-select{position:relative;width:100%}.font-control-search-input{cursor:text}.font-control-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:300px;overflow-y:auto;background:var(--fc-bg);border:1px solid var(--fc-input-border);border-radius:6px;box-shadow:var(--fc-shadow);z-index:1000;animation:dropdownSlideIn .2s cubic-bezier(.4,0,.2,1)}.font-control-dropdown::-webkit-scrollbar{width:6px}.font-control-dropdown::-webkit-scrollbar-track{background:transparent}.font-control-dropdown::-webkit-scrollbar-thumb{background:var(--fc-border);border-radius:3px}.font-control-dropdown::-webkit-scrollbar-thumb:hover{background:var(--fc-text-secondary)}.font-control-dropdown-item{padding:10px 12px;cursor:pointer;transition:all .15s ease;color:var(--fc-text);font-size:14px;border-bottom:1px solid var(--fc-border)}.font-control-dropdown-item:last-child{border-bottom:none}.font-control-dropdown-item:hover{background:var(--fc-input-bg)}.font-control-dropdown-item.highlighted{background:var(--fc-accent);color:#fff}.font-control-dropdown-item.selected{background:#3b82f61a;font-weight:500}.font-control-dropdown-item.no-results{cursor:default;color:var(--fc-text-secondary);text-align:center;font-style:italic}.font-control-dropdown-item.no-results:hover{background:transparent}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.font-control-slider-container{display:flex;gap:12px;align-items:center}.font-control-slider{flex:1;height:6px;background:var(--fc-input-bg);border-radius:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.font-control-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--fc-accent);border-radius:50%;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.font-control-slider::-webkit-slider-thumb:hover{background:var(--fc-accent-hover);transform:scale(1.1)}.font-control-slider::-moz-range-thumb{width:16px;height:16px;background:var(--fc-accent);border-radius:50%;cursor:pointer;border:none;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.font-control-slider::-moz-range-thumb:hover{background:var(--fc-accent-hover);transform:scale(1.1)}.font-control-number{width:70px;text-align:center;padding:6px 8px}.font-control-color-input{display:flex;gap:8px;align-items:center}.font-control-color-preview{width:40px;height:40px;border-radius:6px;border:1px solid var(--fc-input-border);cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.font-control-color-preview:hover{transform:scale(1.05);border-color:var(--fc-accent)}.font-control-color-preview input[type=color]{position:absolute;width:200%;height:200%;top:-50%;left:-50%;border:none;cursor:pointer}.font-control-text-input{flex:1}.font-control-button-group{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.font-control-button{padding:8px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:14px}.font-control-button:hover{background:var(--fc-bg-hover);border-color:var(--fc-accent)}.font-control-button.active{background:var(--fc-accent);border-color:var(--fc-accent);color:#fff}.font-control-button svg{width:16px;height:16px}.font-control-reset-button{width:100%;padding:10px 16px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:500;font-family:inherit;margin-top:8px}.font-control-reset-button:hover{background:var(--fc-accent);border-color:var(--fc-accent);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f633}.font-control-reset-button:active{transform:translateY(0)}.font-control-reset-button svg{width:16px;height:16px}.font-control-export-section{margin-top:16px;border-top:1px solid var(--fc-border);padding-top:16px}.font-control-export-toggle{width:100%;padding:10px 16px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;font-family:inherit}.font-control-export-toggle:hover{background:var(--fc-bg-hover);border-color:var(--fc-accent)}.font-control-export-toggle svg{width:14px;height:14px;transition:transform .3s ease}.font-control-export-toggle svg.rotated{transform:rotate(90deg)}.font-control-export-content{margin-top:12px;display:flex;flex-direction:column;gap:12px}.font-control-code-block{background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;overflow:hidden}.font-control-code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#00000008;border-bottom:1px solid var(--fc-border)}@media (prefers-color-scheme: dark){.font-control-code-header{background:#ffffff08}}.font-control-code-title{font-size:11px;font-weight:600;color:var(--fc-text-secondary);text-transform:uppercase;letter-spacing:.5px}.font-control-copy-button{background:transparent;border:none;color:var(--fc-text-secondary);cursor:pointer;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;display:flex;align-items:center;gap:4px;transition:all .2s ease;font-family:inherit}.font-control-copy-button:hover{background:var(--fc-input-bg);color:var(--fc-accent)}.font-control-copy-button svg{width:12px;height:12px}.font-control-code-content{margin:0;padding:12px;overflow-x:auto;font-family:Fira Code,Consolas,Monaco,monospace;font-size:11px;line-height:1.6;color:var(--fc-text)}.font-control-code-content::-webkit-scrollbar{height:6px}.font-control-code-content::-webkit-scrollbar-track{background:transparent}.font-control-code-content::-webkit-scrollbar-thumb{background:var(--fc-border);border-radius:3px}.font-control-code-content code{font-family:inherit}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:600px}}@keyframes slideUp{0%{opacity:1;max-height:600px}to{opacity:0;max-height:0}}.font-controls-content.entering{animation:slideDown .3s cubic-bezier(.4,0,.2,1) forwards}.font-controls-content.exiting{animation:slideUp .3s cubic-bezier(.4,0,.2,1) forwards}
1
+ :root{--fc-bg: hsl(0, 0%, 100%);--fc-bg-hover: hsl(0, 0%, 96.1%);--fc-border: hsl(0, 0%, 89.8%);--fc-text: hsl(0, 0%, 3.9%);--fc-text-secondary: hsl(0, 0%, 45.1%);--fc-accent: hsl(0, 0%, 9%);--fc-accent-hover: hsl(0, 0%, 3.9%);--fc-input-bg: hsl(0, 0%, 100%);--fc-input-border: hsl(0, 0%, 89.8%);--fc-shadow: 0 8px 32px rgba(0, 0, 0, .1);--fc-shadow-lg: 0 20px 60px rgba(0, 0, 0, .15)}@media (prefers-color-scheme: dark){:root{--fc-bg: hsl(0, 0%, 3.9%);--fc-bg-hover: hsl(0, 0%, 8%);--fc-border: hsl(0, 0%, 14.9%);--fc-text: hsl(0, 0%, 98%);--fc-text-secondary: hsl(0, 0%, 63.9%);--fc-accent: hsl(0, 0%, 98%);--fc-accent-hover: hsl(0, 0%, 90%);--fc-input-bg: hsl(0, 0%, 0%);--fc-input-border: hsl(0, 0%, 14.9%);--fc-shadow: 0 8px 32px rgba(0, 0, 0, .5);--fc-shadow-lg: 0 20px 60px rgba(0, 0, 0, .6)}}.font-controls-panel,.font-controls-panel *{box-sizing:border-box}.font-controls-panel{position:fixed;top:0;left:0;width:320px;background:var(--fc-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--fc-border);border-radius:8px;box-shadow:var(--fc-shadow);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:14px;color:var(--fc-text);z-index:9999;-webkit-user-select:none;user-select:none}.font-controls-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--fc-border);cursor:grab;transition:background .2s ease}.font-controls-header:active{cursor:grabbing}.font-controls-header:hover{background:var(--fc-input-bg)}.font-controls-title{font-weight:600;font-size:15px;margin:0;display:flex;align-items:center;gap:8px}.font-controls-toggle{background:none;border:none;color:var(--fc-text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border-radius:4px}.font-controls-toggle:hover{background:var(--fc-input-bg);color:var(--fc-text)}.font-controls-toggle svg{width:16px;height:16px;transition:transform .3s cubic-bezier(.4,0,.2,1)}.font-controls-toggle.collapsed svg{transform:rotate(-90deg)}.font-controls-content{padding:16px;display:flex;flex-direction:column;gap:16px;max-height:600px;overflow-y:auto;overflow-x:hidden}.font-controls-content::-webkit-scrollbar{width:6px}.font-controls-content::-webkit-scrollbar-track{background:transparent}.font-controls-content::-webkit-scrollbar-thumb{background:var(--fc-border);border-radius:3px}.font-controls-content::-webkit-scrollbar-thumb:hover{background:var(--fc-text-secondary)}.font-control-group{display:flex;flex-direction:column;gap:8px}.font-control-label{font-size:12px;font-weight:500;color:var(--fc-text-secondary);text-transform:uppercase;letter-spacing:.5px}.font-control-input{width:100%;padding:8px 12px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);font-size:14px;transition:all .2s ease;outline:none;font-family:inherit}.font-control-input:hover{background:var(--fc-bg-hover);border-color:var(--fc-accent)}.font-control-input:focus{border-color:var(--fc-accent);box-shadow:0 0 0 3px #1717171a}.font-control-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.font-control-searchable-select{position:relative;width:100%}.font-control-search-input{cursor:text}.font-control-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:300px;overflow-y:auto;background:var(--fc-bg);border:1px solid var(--fc-input-border);border-radius:6px;box-shadow:var(--fc-shadow);z-index:1000;animation:dropdownSlideIn .2s cubic-bezier(.4,0,.2,1)}.font-control-dropdown::-webkit-scrollbar{width:6px}.font-control-dropdown::-webkit-scrollbar-track{background:transparent}.font-control-dropdown::-webkit-scrollbar-thumb{background:var(--fc-border);border-radius:3px}.font-control-dropdown::-webkit-scrollbar-thumb:hover{background:var(--fc-text-secondary)}.font-control-dropdown-item{padding:10px 12px;cursor:pointer;transition:all .15s ease;color:var(--fc-text);font-size:14px;border-bottom:1px solid var(--fc-border)}.font-control-dropdown-item:last-child{border-bottom:none}.font-control-dropdown-item:hover{background:var(--fc-input-bg)}.font-control-dropdown-item.highlighted{background:var(--fc-accent);color:#fafafa}.font-control-dropdown-item.selected{background:#1717171a;font-weight:500}.font-control-dropdown-item.no-results{cursor:default;color:var(--fc-text-secondary);text-align:center;font-style:italic}.font-control-dropdown-item.no-results:hover{background:transparent}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.font-control-slider-container{display:flex;gap:12px;align-items:center}.font-control-slider{flex:1;height:6px;background:var(--fc-border);border-radius:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.font-control-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--fc-accent);border-radius:50%;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.font-control-slider::-webkit-slider-thumb:hover{background:var(--fc-accent-hover);transform:scale(1.1)}.font-control-slider::-moz-range-thumb{width:16px;height:16px;background:var(--fc-accent);border-radius:50%;cursor:pointer;border:none;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.font-control-slider::-moz-range-thumb:hover{background:var(--fc-accent-hover);transform:scale(1.1)}.font-control-number{width:70px;text-align:center;padding:6px 8px}.font-control-color-input{display:flex;gap:8px;align-items:center}.font-control-color-preview{width:40px;height:40px;border-radius:6px;border:1px solid var(--fc-input-border);cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.font-control-color-preview:hover{transform:scale(1.05);border-color:var(--fc-accent)}.font-control-color-preview input[type=color]{position:absolute;width:200%;height:200%;top:-50%;left:-50%;border:none;cursor:pointer}.font-control-text-input{flex:1}.font-control-button-group{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.font-control-button{padding:8px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:14px}.font-control-button:hover{background:var(--fc-bg-hover);border-color:var(--fc-accent)}.font-control-button.active{background:var(--fc-accent);border-color:var(--fc-accent);color:#fafafa}.font-control-button svg{width:16px;height:16px}.font-control-reset-button{width:100%;padding:10px 16px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:500;font-family:inherit;margin-top:8px}.font-control-reset-button:hover{background:var(--fc-accent);border-color:var(--fc-accent);color:#fafafa;transform:translateY(-1px);box-shadow:0 4px 12px #1717174d}.font-control-reset-button:active{transform:translateY(0)}.font-control-reset-button svg{width:16px;height:16px}.font-control-export-section{margin-top:16px;border-top:1px solid var(--fc-border);padding-top:16px}.font-control-export-toggle{width:100%;padding:10px 16px;background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;color:var(--fc-text);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;font-family:inherit}.font-control-export-toggle:hover{background:var(--fc-bg-hover);border-color:var(--fc-accent)}.font-control-export-toggle svg{width:14px;height:14px;transition:transform .3s ease}.font-control-export-toggle svg.rotated{transform:rotate(90deg)}.font-control-export-content{margin-top:12px;display:flex;flex-direction:column;gap:12px}.font-control-code-block{background:var(--fc-input-bg);border:1px solid var(--fc-input-border);border-radius:6px;overflow:hidden}.font-control-code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#00000008;border-bottom:1px solid var(--fc-border)}@media (prefers-color-scheme: dark){.font-control-code-header{background:#00000008}}.font-control-code-title{font-size:11px;font-weight:600;color:var(--fc-text-secondary);text-transform:uppercase;letter-spacing:.5px}.font-control-copy-button{background:transparent;border:none;color:var(--fc-text-secondary);cursor:pointer;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;display:flex;align-items:center;gap:4px;transition:all .2s ease;font-family:inherit}.font-control-copy-button:hover{background:var(--fc-input-bg);color:var(--fc-accent)}.font-control-copy-button svg{width:12px;height:12px}.font-control-code-content{margin:0;padding:12px;overflow-x:auto;font-family:Fira Code,Consolas,Monaco,monospace;font-size:11px;line-height:1.6;color:var(--fc-text)}.font-control-code-content::-webkit-scrollbar{height:6px}.font-control-code-content::-webkit-scrollbar-track{background:transparent}.font-control-code-content::-webkit-scrollbar-thumb{background:var(--fc-border);border-radius:3px}.font-control-code-content code{font-family:inherit}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:600px}}@keyframes slideUp{0%{opacity:1;max-height:600px}to{opacity:0;max-height:0}}.font-controls-content.entering{animation:slideDown .3s cubic-bezier(.4,0,.2,1) forwards}.font-controls-content.exiting{animation:slideUp .3s cubic-bezier(.4,0,.2,1) forwards}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "font-controls",
3
- "version": "1.5.0",
3
+ "version": "2.0.0",
4
4
  "description": "A beautiful, Leva-inspired font controls library for React",
5
5
  "type": "module",
6
6
  "main": "./dist/font-controls.umd.cjs",