@solibo/solibo-ui 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/assets/index15.css +1 -1
  2. package/dist/assets/index19.css +1 -1
  3. package/dist/assets/index31.css +1 -1
  4. package/dist/assets/index36.css +1 -1
  5. package/dist/assets/index38.css +1 -1
  6. package/dist/assets/index9.css +1 -1
  7. package/dist/components/button/index.cjs +1 -1
  8. package/dist/components/button/index.cjs.map +1 -1
  9. package/dist/components/button/index.js +25 -22
  10. package/dist/components/button/index.js.map +1 -1
  11. package/dist/components/checkbox/index.cjs +1 -1
  12. package/dist/components/checkbox/index.js +1 -1
  13. package/dist/components/controls/index.cjs +1 -1
  14. package/dist/components/controls/index.cjs.map +1 -1
  15. package/dist/components/controls/index.js +15 -14
  16. package/dist/components/controls/index.js.map +1 -1
  17. package/dist/components/dialog/index.cjs +1 -1
  18. package/dist/components/dialog/index.cjs.map +1 -1
  19. package/dist/components/dialog/index.js +56 -24
  20. package/dist/components/dialog/index.js.map +1 -1
  21. package/dist/components/dropdown/index.cjs +1 -1
  22. package/dist/components/dropdown/index.js +3 -3
  23. package/dist/components/editor/index.cjs +1 -1
  24. package/dist/components/editor/index.js +1 -1
  25. package/dist/components/icon/index.cjs +1 -1
  26. package/dist/components/icon/index.js +1 -1
  27. package/dist/components/iframe/index.cjs +1 -1
  28. package/dist/components/iframe/index.cjs.map +1 -1
  29. package/dist/components/iframe/index.js +56 -58
  30. package/dist/components/iframe/index.js.map +1 -1
  31. package/dist/components/input/index.cjs +1 -1
  32. package/dist/components/input/index.js +2 -2
  33. package/dist/components/message/index.cjs +1 -1
  34. package/dist/components/message/index.cjs.map +1 -1
  35. package/dist/components/message/index.js +31 -30
  36. package/dist/components/message/index.js.map +1 -1
  37. package/dist/components/nav/index.cjs +1 -1
  38. package/dist/components/nav/index.js +1 -1
  39. package/dist/components/search/index.cjs +1 -1
  40. package/dist/components/search/index.cjs.map +1 -1
  41. package/dist/components/search/index.js +43 -49
  42. package/dist/components/search/index.js.map +1 -1
  43. package/dist/components/select/index.cjs +1 -1
  44. package/dist/components/select/index.js +2 -2
  45. package/dist/{icons-Dhj9mAkR.js → icons-BFgf_lJN.js} +10 -1
  46. package/dist/icons-BFgf_lJN.js.map +1 -0
  47. package/dist/icons-Dx0NQYLH.cjs +2 -0
  48. package/dist/icons-Dx0NQYLH.cjs.map +1 -0
  49. package/dist/{index-D4LZQ-JF.js → index-BHgGZxsR.js} +2 -2
  50. package/dist/{index-D4LZQ-JF.js.map → index-BHgGZxsR.js.map} +1 -1
  51. package/dist/{index-D9Hq7ewF.cjs → index-CEzqxRIu.cjs} +2 -2
  52. package/dist/{index-D9Hq7ewF.cjs.map → index-CEzqxRIu.cjs.map} +1 -1
  53. package/dist/{index-uQRsVtP-.js → index-CMfR_USP.js} +2 -2
  54. package/dist/{index-uQRsVtP-.js.map → index-CMfR_USP.js.map} +1 -1
  55. package/dist/{index-Ct0mJ-KK.cjs → index-oL8GYbhj.cjs} +2 -2
  56. package/dist/{index-Ct0mJ-KK.cjs.map → index-oL8GYbhj.cjs.map} +1 -1
  57. package/dist/index.cjs +1 -1
  58. package/dist/index.d.ts +15 -2
  59. package/dist/index.js +2 -2
  60. package/dist/tokens.json +1 -1
  61. package/package.json +1 -1
  62. package/dist/icons-BoBeAmLe.cjs +0 -2
  63. package/dist/icons-BoBeAmLe.cjs.map +0 -1
  64. package/dist/icons-Dhj9mAkR.js.map +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";require('../../assets/index41.css');var g0=Object.defineProperty;var m0=(n,e,t)=>e in n?g0(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var yn=(n,e,t)=>m0(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("react/jsx-runtime"),q=require("react"),zs=require("react-dom"),Ur=require("../../classix-5H4IWnMA.cjs"),b0=require("../file/index.cjs"),Ue=require("../button/index.cjs"),y0=require("../dropzone/index.cjs"),ze=require("../icon/index.cjs"),$s=require("../../index-D9Hq7ewF.cjs"),_0=require("../toolbar/index.cjs");function x0(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const qu=x0(q);function dn(n){return{}}const mu={},v0={},Oa={},It={},en={},Mn={},tn={},bu={},ui={},Rn={},Bn={},Ge={},Ki={},Ji={},w0={},Ia={},S0={},Pa={},T0={},La={},Da={},zr={},C0={},Ma={},Ra={},Ba={},E0={},k0={},N0={},Ws={},Fa={},A0={},ja={},qa={},O0={},yu={},Xi={},ii={},I0={},P0={},mr={},br={},L0={},D0={},M0={},Fe=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,R0=Fe&&"documentMode"in document?document.documentMode:null,Pe=Fe&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),_t=Fe&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),$r=!(!Fe||!("InputEvent"in window)||R0)&&"getTargetRanges"in new window.InputEvent("input"),_u=Fe&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),Xn=Fe&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,B0=Fe&&/Android/.test(navigator.userAgent),Ua=Fe&&/^(?=.*Chrome).*/i.test(navigator.userAgent),F0=Fe&&B0&&Ua,Zi=Fe&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!Ua,Zn=1,wt=3,Lt=0,za=1,un=2,j0=0,q0=1,U0=2,Wr=4,Hr=8,Qi=128,z0=112|(3|Wr|Hr)|Qi,Yi=1,es=2,ts=3,ns=4,rs=5,us=6,xu=_u||Xn||Zi?" ":"​",rt=`
1
+ "use strict";require('../../assets/index41.css');var g0=Object.defineProperty;var m0=(n,e,t)=>e in n?g0(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var yn=(n,e,t)=>m0(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("react/jsx-runtime"),q=require("react"),zs=require("react-dom"),Ur=require("../../classix-5H4IWnMA.cjs"),b0=require("../file/index.cjs"),Ue=require("../button/index.cjs"),y0=require("../dropzone/index.cjs"),ze=require("../icon/index.cjs"),$s=require("../../index-CEzqxRIu.cjs"),_0=require("../toolbar/index.cjs");function x0(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const qu=x0(q);function dn(n){return{}}const mu={},v0={},Oa={},It={},en={},Mn={},tn={},bu={},ui={},Rn={},Bn={},Ge={},Ki={},Ji={},w0={},Ia={},S0={},Pa={},T0={},La={},Da={},zr={},C0={},Ma={},Ra={},Ba={},E0={},k0={},N0={},Ws={},Fa={},A0={},ja={},qa={},O0={},yu={},Xi={},ii={},I0={},P0={},mr={},br={},L0={},D0={},M0={},Fe=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,R0=Fe&&"documentMode"in document?document.documentMode:null,Pe=Fe&&/Mac|iPod|iPhone|iPad/.test(navigator.platform),_t=Fe&&/^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent),$r=!(!Fe||!("InputEvent"in window)||R0)&&"getTargetRanges"in new window.InputEvent("input"),_u=Fe&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),Xn=Fe&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,B0=Fe&&/Android/.test(navigator.userAgent),Ua=Fe&&/^(?=.*Chrome).*/i.test(navigator.userAgent),F0=Fe&&B0&&Ua,Zi=Fe&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!Ua,Zn=1,wt=3,Lt=0,za=1,un=2,j0=0,q0=1,U0=2,Wr=4,Hr=8,Qi=128,z0=112|(3|Wr|Hr)|Qi,Yi=1,es=2,ts=3,ns=4,rs=5,us=6,xu=_u||Xn||Zi?" ":"​",rt=`
2
2
 
3
3
  `,$0=_t?" ":xu,$a="֑-߿יִ-﷽ﹰ-ﻼ",Wa="A-Za-zÀ-ÖØ-öø-ʸ̀-֐ࠀ-῿‎Ⰰ-﬜︀-﹯﻽-￿",W0=new RegExp("^[^"+Wa+"]*["+$a+"]"),H0=new RegExp("^[^"+$a+"]*["+Wa+"]"),Dt={bold:1,code:16,highlight:Qi,italic:2,strikethrough:Wr,subscript:32,superscript:64,underline:Hr},V0={directionless:1,unmergeable:2},Hs={center:es,end:us,justify:ns,left:Yi,right:ts,start:rs},G0={[es]:"center",[us]:"end",[ns]:"justify",[Yi]:"left",[ts]:"right",[rs]:"start"},K0={normal:0,segmented:2,token:1},J0={[j0]:"normal",[U0]:"segmented",[q0]:"token"};function X0(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var R=X0(function(n){const e=new URLSearchParams;e.append("code",n);for(let t=1;t<arguments.length;t++)e.append("v",arguments[t]);throw Error(`Minified Lexical error #${n}; visit https://lexical.dev/docs/error?${e} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)});function Vr(...n){const e=[];for(const t of n)if(t&&typeof t=="string")for(const[r]of t.matchAll(/\S+/g))e.push(r);return e}const Z0=100;let si=!1,is=0;function Q0(n){is=n.timeStamp}function Uu(n,e,t){const r=n.nodeName==="BR",u=e.__lexicalLineBreak;return u&&(n===u||r&&n.previousSibling===u)||r&&wu(n,t)!==void 0}function Y0(n,e,t){const r=Oe(t._window);let u=null,i=null;r!==null&&r.anchorNode===n&&(u=r.anchorOffset,i=r.focusOffset);const s=n.nodeValue;s!==null&&cs(e,s,u,i,!1)}function ef(n,e,t){if(L(n)){const r=n.anchor.getNode();if(r.is(t)&&n.format!==r.getFormat())return!1}return e.nodeType===wt&&t.isAttached()}function tf(n,e,t,r){for(let u=n;u&&!mf(u);u=Yn(u)){const i=wu(u,e);if(i!==void 0){const s=he(i,t);if(s)return re(s)?void 0:[u,s]}else if(u===r)return[r,Ya(t)]}}function Ha(n,e,t){si=!0;const r=performance.now()-is>Z0;try{Ce(n,()=>{const u=j()||function(c){return c.getEditorState().read(()=>{const d=j();return d!==null?d.clone():null})}(n),i=new Map,s=n.getRootElement(),o=n._editorState,a=n._blockCursorElement;let l=!1,f="";for(let c=0;c<e.length;c++){const d=e[c],p=d.type,m=d.target,g=tf(m,n,o,s);if(!g)continue;const[y,b]=g;if(p==="characterData")r&&M(b)&&ef(u,m,b)&&Y0(m,b,n);else if(p==="childList"){l=!0;const v=d.addedNodes;for(let S=0;S<v.length;S++){const I=v[S],T=Za(I),P=I.parentNode;if(P!=null&&I!==a&&T===null&&!Uu(I,P,n)){if(_t){const $=I.innerText||I.nodeValue;$&&(f+=$)}P.removeChild(I)}}const w=d.removedNodes,C=w.length;if(C>0){let S=0;for(let I=0;I<C;I++){const T=w[I];(Uu(T,m,n)||a===T)&&(m.appendChild(T),S++)}C!==S&&i.set(y,b)}}}if(i.size>0)for(const[c,d]of i)d.reconcileObservedMutation(c,n);const h=t.takeRecords();if(h.length>0){for(let c=0;c<h.length;c++){const d=h[c],p=d.addedNodes,m=d.target;for(let g=0;g<p.length;g++){const y=p[g],b=y.parentNode;b==null||y.nodeName!=="BR"||Uu(y,m,n)||b.removeChild(y)}}t.takeRecords()}u!==null&&(l&&(u.dirty=!0,Ae(u)),_t&&rl(n)&&u.insertRawText(f))})}finally{si=!1}}function Va(n){const e=n._observer;e!==null&&Ha(n,e.takeRecords(),e)}function Ga(n){(function(e){is===0&&Tu(e).addEventListener("textInput",Q0,!0)})(n),n._observer=new MutationObserver((e,t)=>{Ha(n,e,t)})}function Vs(n,e){const t=n.__mode,r=n.__format,u=n.__style,i=e.__mode,s=e.__format,o=e.__style;return!(t!==null&&t!==i||r!==null&&r!==s||u!==null&&u!==o)}function Gs(n,e){const t=n.mergeWithSibling(e),r=oe()._normalizedNodes;return r.add(n.__key),r.add(e.__key),t}function Ks(n){let e,t,r=n;if(r.__text!==""||!r.isSimpleText()||r.isUnmergeable()){for(;(e=r.getPreviousSibling())!==null&&M(e)&&e.isSimpleText()&&!e.isUnmergeable();){if(e.__text!==""){if(Vs(e,r)){r=Gs(e,r);break}break}e.remove()}for(;(t=r.getNextSibling())!==null&&M(t)&&t.isSimpleText()&&!t.isUnmergeable();){if(t.__text!==""){if(Vs(r,t)){r=Gs(r,t);break}break}t.remove()}}else r.remove()}function Ka(n){return Js(n.anchor),Js(n.focus),n}function Js(n){for(;n.type==="element";){const e=n.getNode(),t=n.offset;let r,u;if(t===e.getChildrenSize()?(r=e.getChildAtIndex(t-1),u=!0):(r=e.getChildAtIndex(t),u=!1),M(r)){n.set(r.__key,u?r.getTextContentSize():0,"text");break}if(!k(r))break;n.set(r.__key,u?r.getChildrenSize():0,"element")}}let nf=1;const rf=typeof queueMicrotask=="function"?queueMicrotask:n=>{Promise.resolve().then(n)};function ss(n){const e=document.activeElement;if(e===null)return!1;const t=e.nodeName;return re(sn(n))&&(t==="INPUT"||t==="TEXTAREA"||e.contentEditable==="true"&&vu(e)==null)}function Qn(n,e,t){const r=n.getRootElement();try{return r!==null&&r.contains(e)&&r.contains(t)&&e!==null&&!ss(e)&&Ja(e)===n}catch{return!1}}function os(n){return n instanceof Au}function Ja(n){let e=n;for(;e!=null;){const t=vu(e);if(os(t))return t;e=Yn(e)}return null}function vu(n){return n?n.__lexicalEditor:null}function At(n){return n.isToken()||n.isSegmented()}function uf(n){return n.nodeType===wt}function Gr(n){let e=n;for(;e!=null;){if(uf(e))return e;e=e.firstChild}return null}function Kr(n,e,t){const r=Dt[e];if(t!==null&&(n&r)==(t&r))return n;let u=n^r;return e==="subscript"?u&=-65:e==="superscript"&&(u&=-33),u}function Xa(n){return M(n)||xt(n)||re(n)}function sf(n,e){if(e!=null)return void(n.__key=e);ve(),Sl();const t=oe(),r=ot(),u=""+nf++;r._nodeMap.set(u,n),k(n)?t._dirtyElements.set(u,!0):t._dirtyLeaves.add(u),t._cloneNotNeeded.add(u),t._dirtyType=za,n.__key=u}function Pt(n){const e=n.getParent();if(e!==null){const t=n.getWritable(),r=e.getWritable(),u=n.getPreviousSibling(),i=n.getNextSibling();if(u===null)if(i!==null){const s=i.getWritable();r.__first=i.__key,s.__prev=null}else r.__first=null;else{const s=u.getWritable();if(i!==null){const o=i.getWritable();o.__prev=s.__key,s.__next=o.__key}else s.__next=null;t.__prev=null}if(i===null)if(u!==null){const s=u.getWritable();r.__last=u.__key,s.__next=null}else r.__last=null;else{const s=i.getWritable();if(u!==null){const o=u.getWritable();o.__next=s.__key,s.__prev=o.__key}else s.__prev=null;t.__next=null}r.__size--,t.__parent=null}}function Jr(n){Sl();const e=n.getLatest(),t=e.__parent,r=ot(),u=oe(),i=r._nodeMap,s=u._dirtyElements;t!==null&&function(a,l,f){let h=a;for(;h!==null;){if(f.has(h))return;const c=l.get(h);if(c===void 0)break;f.set(h,!1),h=c.__parent}}(t,i,s);const o=e.__key;u._dirtyType=za,k(n)?s.set(o,!0):u._dirtyLeaves.add(o)}function me(n){ve();const e=oe(),t=e._compositionKey;if(n!==t){if(e._compositionKey=n,t!==null){const r=he(t);r!==null&&r.getWritable()}if(n!==null){const r=he(n);r!==null&&r.getWritable()}}}function gt(){return ur()?null:oe()._compositionKey}function he(n,e){const t=(e||ot())._nodeMap.get(n);return t===void 0?null:t}function Za(n,e){const t=wu(n,oe());return t!==void 0?he(t,e):null}function wu(n,e){return n[`__lexicalKey_${e._key}`]}function sn(n,e){let t=n;for(;t!=null;){const r=Za(t,e);if(r!==null)return r;t=Yn(t)}return null}function Qa(n){const e=n._decorators,t=Object.assign({},e);return n._pendingDecorators=t,t}function Xs(n){return n.read(()=>ce().getTextContent())}function ce(){return Ya(ot())}function Ya(n){return n._nodeMap.get("root")}function Ae(n){ve();const e=ot();n!==null&&(n.dirty=!0,n.setCachedNodes(null)),e._selection=n}function Qt(n){const e=oe(),t=function(r,u){let i=r;for(;i!=null;){const s=wu(i,u);if(s!==void 0)return s;i=Yn(i)}return null}(n,e);return t===null?n===e.getRootElement()?he("root"):null:he(t)}function Zs(n,e){return e?n.getTextContentSize():0}function el(n){return/[\uD800-\uDBFF][\uDC00-\uDFFF]/g.test(n)}function as(n){const e=[];let t=n;for(;t!==null;)e.push(t),t=t._parentEditor;return e}function tl(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function nl(n){return n.nodeType===wt?n.nodeValue:null}function ls(n,e,t){const r=Oe(e._window);if(r===null)return;const u=r.anchorNode;let{anchorOffset:i,focusOffset:s}=r;if(u!==null){let o=nl(u);const a=sn(u);if(o!==null&&M(a)){if(o===xu&&t){const l=t.length;o=t,i=l,s=l}o!==null&&cs(a,o,i,s,n)}}}function cs(n,e,t,r,u){let i=n;if(i.isAttached()&&(u||!i.isDirty())){const s=i.isComposing();let o=e;(s||u)&&e[e.length-1]===xu&&(o=e.slice(0,-1));const a=i.getTextContent();if(u||o!==a){if(o===""){if(me(null),_u||Xn||Zi)i.remove();else{const m=oe();setTimeout(()=>{m.update(()=>{i.isAttached()&&i.remove()})},20)}return}const l=i.getParent(),f=rr(),h=i.getTextContentSize(),c=gt(),d=i.getKey();if(i.isToken()||c!==null&&d===c&&!s||L(f)&&(l!==null&&!l.canInsertTextBefore()&&f.anchor.offset===0||f.anchor.key===n.__key&&f.anchor.offset===0&&!i.canInsertTextBefore()&&!s||f.focus.key===n.__key&&f.focus.offset===h&&!i.canInsertTextAfter()&&!s))return void i.markDirty();const p=j();if(!L(p)||t===null||r===null)return void i.setTextContent(o);if(p.setTextNodeRange(i,t,i,r),i.isSegmented()){const m=le(i.getTextContent());i.replace(m),i=m}i.setTextContent(o)}}}function of(n,e){if(e.isSegmented())return!0;if(!n.isCollapsed())return!1;const t=n.anchor.offset,r=e.getParentOrThrow(),u=e.isToken();return t===0?!e.canInsertTextBefore()||!r.canInsertTextBefore()&&!e.isComposing()||u||function(i){const s=i.getPreviousSibling();return(M(s)||k(s)&&s.isInline())&&!s.canInsertTextAfter()}(e):t===e.getTextContentSize()&&(!e.canInsertTextAfter()||!r.canInsertTextAfter()&&!e.isComposing()||u)}function Qs(n){return n==="ArrowLeft"}function Ys(n){return n==="ArrowRight"}function En(n,e){return Pe?n:e}function eo(n){return n==="Enter"}function _n(n){return n==="Backspace"}function xn(n){return n==="Delete"}function to(n,e,t){return n.toLowerCase()==="a"&&En(e,t)}function af(){const n=ce();Ae(Ka(n.select(0,n.getChildrenSize())))}function Nn(n,e){n.__lexicalClassNameCache===void 0&&(n.__lexicalClassNameCache={});const t=n.__lexicalClassNameCache,r=t[e];if(r!==void 0)return r;const u=n[e];if(typeof u=="string"){const i=Vr(u);return t[e]=i,i}return u}function fs(n,e,t,r,u){if(t.size===0)return;const i=r.__type,s=r.__key,o=e.get(i);o===void 0&&R(33,i);const a=o.klass;let l=n.get(a);l===void 0&&(l=new Map,n.set(a,l));const f=l.get(s),h=f==="destroyed"&&u==="created";(f===void 0||h)&&l.set(s,h?"updated":u)}function no(n,e,t){const r=n.getParent();let u=t,i=n;return r!==null&&(e&&t===0?(u=i.getIndexWithinParent(),i=r):e||t!==i.getChildrenSize()||(u=i.getIndexWithinParent()+1,i=r)),i.getChildAtIndex(e?u-1:u)}function Fn(n,e){const t=n.offset;if(n.type==="element")return no(n.getNode(),e,t);{const r=n.getNode();if(e&&t===0||!e&&t===r.getTextContentSize()){const u=e?r.getPreviousSibling():r.getNextSibling();return u===null?no(r.getParentOrThrow(),e,r.getIndexWithinParent()+(e?0:1)):u}}return null}function rl(n){const e=Tu(n).event,t=e&&e.inputType;return t==="insertFromPaste"||t==="insertFromPasteAsQuotation"}function F(n,e,t){return El(n,e,t)}function Su(n){return!ye(n)&&!n.isLastChild()&&!n.isInline()}function Xr(n,e){const t=n._keyToDOMMap.get(e);return t===void 0&&R(75,e),t}function Yn(n){const e=n.assignedSlot||n.parentElement;return e!==null&&e.nodeType===11?e.host:e}function An(n,e){let t=n.getParent();for(;t!==null;){if(t.is(e))return!0;t=t.getParent()}return!1}function Tu(n){const e=n._window;return e===null&&R(78),e}function lf(n){let e=n.getParentOrThrow();for(;e!==null;){if(ut(e))return e;e=e.getParentOrThrow()}return e}function ut(n){return ye(n)||k(n)&&n.isShadowRoot()}function St(n){const e=oe(),t=n.constructor.getType(),r=e._nodes.get(t);r===void 0&&R(200,n.constructor.name,t);const{replace:u,replaceWithKlass:i}=r;if(u!==null){const s=u(n),o=s.constructor;return i!==null?s instanceof i||R(201,i.name,i.getType(),o.name,o.getType(),n.constructor.name,t):s instanceof n.constructor&&o!==n.constructor||R(202,o.name,o.getType(),n.constructor.name,t),s.__key===n.__key&&R(203,n.constructor.name,t,o.name,o.getType()),s}return n}function zu(n,e){!ye(n.getParent())||k(e)||re(e)||R(99)}function $u(n){return(re(n)||k(n)&&!n.canBeEmpty())&&!n.isInline()}function ds(n,e,t){t.style.removeProperty("caret-color"),e._blockCursorElement=null;const r=n.parentElement;r!==null&&r.removeChild(n)}function cf(n,e,t){let r=n._blockCursorElement;if(L(t)&&t.isCollapsed()&&t.anchor.type==="element"&&e.contains(document.activeElement)){const u=t.anchor,i=u.getNode(),s=u.offset;let o=!1,a=null;if(s===i.getChildrenSize())$u(i.getChildAtIndex(s-1))&&(o=!0);else{const l=i.getChildAtIndex(s);if(l!==null&&$u(l)){const f=l.getPreviousSibling();(f===null||$u(f))&&(o=!0,a=n.getElementByKey(l.__key))}}if(o){const l=n.getElementByKey(i.__key);return r===null&&(n._blockCursorElement=r=function(f){const h=f.theme,c=document.createElement("div");c.contentEditable="false",c.setAttribute("data-lexical-cursor","true");let d=h.blockCursor;if(d!==void 0){if(typeof d=="string"){const p=Vr(d);d=h.blockCursor=p}d!==void 0&&c.classList.add(...d)}return c}(n._config)),e.style.caretColor="transparent",void(a===null?l.appendChild(r):l.insertBefore(r,a))}}r!==null&&ds(r,n,e)}function Oe(n){return Fe?(n||window).getSelection():null}function ff(n){return Ut(n)&&n.tagName==="A"}function Ut(n){return n.nodeType===1}function ro(n){return n.nodeType===11}function oi(n){const e=new RegExp(/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var|#text)$/,"i");return n.nodeName.match(e)!==null}function Zr(n){const e=new RegExp(/^(address|article|aside|blockquote|canvas|dd|div|dl|dt|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hr|li|main|nav|noscript|ol|p|pre|section|table|td|tfoot|ul|video)$/,"i");return n.nodeName.match(e)!==null}function ht(n){if(re(n)&&!n.isInline())return!0;if(!k(n)||ut(n))return!1;const e=n.getFirstChild(),t=e===null||xt(e)||M(e)||e.isInline();return!n.isInline()&&n.canBeEmpty()!==!1&&t}function vn(n,e){let t=n;for(;t!==null&&t.getParent()!==null&&!e(t);)t=t.getParentOrThrow();return e(t)?t:null}function df(){return oe()}const uo=new WeakMap,hf=new Map;function pf(n){if(!n._readOnly&&n.isEmpty())return hf;n._readOnly||R(192);let e=uo.get(n);if(!e){e=new Map,uo.set(n,e);for(const[t,r]of n._nodeMap){const u=r.__type;let i=e.get(u);i||(i=new Map,e.set(u,i)),i.set(t,r)}}return e}function hs(n){const e=n.constructor.clone(n);return e.afterCloneFrom(n),e}function gf(n,e){const t=(parseInt(n.style.paddingInlineStart,10)||0)/40;e.setIndent(t)}function mf(n){return n.__lexicalUnmanaged===!0}function ul(n,e,t,r,u,i){let s=n.getFirstChild();for(;s!==null;){const o=s.__key;s.__parent===e&&(k(s)&&ul(s,o,t,r,u,i),t.has(o)||i.delete(o),u.push(o)),s=s.getNextSibling()}}let vt,_e,jn,Cu,ai,li,Mt,Be,ci,qn,de="",be="",We=null,Le="",tt="",il=!1,Un=!1,Dr=null;function Qr(n,e){const t=Mt.get(n);if(e!==null){const r=hi(n);r.parentNode===e&&e.removeChild(r)}if(Be.has(n)||_e._keyToDOMMap.delete(n),k(t)){const r=eu(t,Mt);fi(r,0,r.length-1,null)}t!==void 0&&fs(qn,jn,Cu,t,"destroyed")}function fi(n,e,t,r){let u=e;for(;u<=t;++u){const i=n[u];i!==void 0&&Qr(i,r)}}function Nt(n,e){n.setProperty("text-align",e)}const bf="40px";function sl(n,e){const t=vt.theme.indent;if(typeof t=="string"){const u=n.classList.contains(t);e>0&&!u?n.classList.add(t):e<1&&u&&n.classList.remove(t)}const r=getComputedStyle(n).getPropertyValue("--lexical-indent-base-value")||bf;n.style.setProperty("padding-inline-start",e===0?"":`calc(${e} * ${r})`)}function ol(n,e){const t=n.style;e===0?Nt(t,""):e===Yi?Nt(t,"left"):e===es?Nt(t,"center"):e===ts?Nt(t,"right"):e===ns?Nt(t,"justify"):e===rs?Nt(t,"start"):e===us&&Nt(t,"end")}function Yr(n,e){const t=Be.get(n);t===void 0&&R(60);const r=t.createDOM(vt,_e);if(function(u,i,s){const o=s._keyToDOMMap;(function(a,l,f){a[`__lexicalKey_${l._key}`]=f})(i,s,u),o.set(u,i)}(n,r,_e),M(t)?r.setAttribute("data-lexical-text","true"):re(t)&&r.setAttribute("data-lexical-decorator","true"),k(t)){const u=t.__indent,i=t.__size;if(u!==0&&sl(r,u),i!==0){const o=i-1;(function(a,l,f,h){const c=be;be="",di(a,f,0,l,f.getDOMSlot(h)),ll(f,h),be=c})(eu(t,Be),o,t,r)}const s=t.__format;s!==0&&ol(r,s),t.isInline()||al(null,t,r),Su(t)&&(de+=rt,tt+=rt)}else{const u=t.getTextContent();if(re(t)){const i=t.decorate(_e,vt);i!==null&&cl(n,i),r.contentEditable="false"}else M(t)&&(t.isDirectionless()||(be+=u));de+=u,tt+=u}return e!==null&&e.insertChild(r),fs(qn,jn,Cu,t,"created"),r}function di(n,e,t,r,u){const i=de;de="";let s=t;for(;s<=r;++s){Yr(n[s],u);const o=Be.get(n[s]);o!==null&&M(o)&&(We===null&&(We=o.getFormat()),Le===""&&(Le=o.getStyle()))}Su(e)&&(de+=rt),u.element.__lexicalTextContent=de,de=i+de}function io(n,e){if(n){const t=n.__last;if(t){const r=e.get(t);if(r)return xt(r)?"line-break":re(r)&&r.isInline()?"decorator":null}return"empty"}return null}function al(n,e,t){const r=io(n,Mt),u=io(e,Be);r!==u&&e.getDOMSlot(t).setManagedLineBreak(u)}function ll(n,e){const t=e.__lexicalDirTextContent||"",r=e.__lexicalDir||"";if(t!==be||r!==Dr){const i=be==="",s=i?Dr:(u=be,W0.test(u)?"rtl":H0.test(u)?"ltr":null);if(s!==r){const o=e.classList,a=vt.theme;let l=r!==null?a[r]:void 0,f=s!==null?a[s]:void 0;if(l!==void 0){if(typeof l=="string"){const h=Vr(l);l=a[r]=h}o.remove(...l)}if(s===null||i&&s==="ltr")e.removeAttribute("dir");else{if(f!==void 0){if(typeof f=="string"){const h=Vr(f);f=a[s]=h}f!==void 0&&o.add(...f)}e.dir=s}Un||(n.getWritable().__dir=s)}Dr=s,e.__lexicalDirTextContent=be,e.__lexicalDir=s}var u}function yf(n,e,t){const r=be;var u;be="",We=null,Le="",function(i,s,o){const a=de,l=i.__size,f=s.__size;de="";const h=o.element;if(l===1&&f===1){const c=i.__first,d=s.__first;if(c===d)kn(c,h);else{const m=hi(c),g=Yr(d,null);try{h.replaceChild(g,m)}catch(y){if(typeof y=="object"&&y!=null){const b=`${y.toString()} Parent: ${h.tagName}, new child: {tag: ${g.tagName} key: ${d}}, old child: {tag: ${m.tagName}, key: ${c}}.`;throw new Error(b)}throw y}Qr(c,null)}const p=Be.get(d);M(p)&&(We===null&&(We=p.getFormat()),Le===""&&(Le=p.getStyle()))}else{const c=eu(i,Mt),d=eu(s,Be);if(c.length!==l&&R(227),d.length!==f&&R(228),l===0)f!==0&&di(d,s,0,f-1,o);else if(f===0){if(l!==0){const p=o.after==null&&o.before==null&&o.element.__lexicalLineBreak==null;fi(c,0,l-1,p?null:h),p&&(h.textContent="")}}else(function(p,m,g,y,b,v){const w=y-1,C=b-1;let S,I,T=v.getFirstChild(),P=0,$=0;for(;P<=w&&$<=C;){const N=m[P],B=g[$];if(N===B)T=Wu(kn(B,v.element)),P++,$++;else{S===void 0&&(S=new Set(m)),I===void 0&&(I=new Set(g));const O=I.has(N),A=S.has(B);if(O)if(A){const U=Xr(_e,B);U===T?T=Wu(kn(B,v.element)):(v.withBefore(T).insertChild(U),kn(B,v.element)),P++,$++}else Yr(B,v.withBefore(T)),$++;else T=Wu(hi(N)),Qr(N,v.element),P++}const x=Be.get(B);x!==null&&M(x)&&(We===null&&(We=x.getFormat()),Le===""&&(Le=x.getStyle()))}const _=P>w,E=$>C;if(_&&!E){const N=g[C+1],B=N===void 0?null:_e.getElementByKey(N);di(g,p,$,C,v.withBefore(B))}else E&&!_&&fi(m,P,w,v.element)})(s,c,d,l,f,o)}Su(s)&&(de+=rt),h.__lexicalTextContent=de,de=a+de}(n,e,e.getDOMSlot(t)),ll(e,t),Bt(u=e)&&We!=null&&We!==u.__textFormat&&!Un&&(u.setTextFormat(We),u.setTextStyle(Le)),function(i){Bt(i)&&Le!==""&&Le!==i.__textStyle&&!Un&&i.setTextStyle(Le)}(e),be=r}function eu(n,e){const t=[];let r=n.__first;for(;r!==null;){const u=e.get(r);u===void 0&&R(101),t.push(r),r=u.__next}return t}function kn(n,e){const t=Mt.get(n);let r=Be.get(n);t!==void 0&&r!==void 0||R(61);const u=il||li.has(n)||ai.has(n),i=Xr(_e,n);if(t===r&&!u){if(k(t)){const s=i.__lexicalTextContent;s!==void 0&&(de+=s,tt+=s);const o=i.__lexicalDirTextContent;o!==void 0&&(be+=o)}else{const s=t.getTextContent();M(t)&&!t.isDirectionless()&&(be+=s),tt+=s,de+=s}return i}if(t!==r&&u&&fs(qn,jn,Cu,r,"updated"),r.updateDOM(t,i,vt)){const s=Yr(n,null);return e===null&&R(62),e.replaceChild(s,i),Qr(n,null),s}if(k(t)&&k(r)){const s=r.__indent;s!==t.__indent&&sl(i,s);const o=r.__format;o!==t.__format&&ol(i,o),u&&(yf(t,r,i),ye(r)||r.isInline()||al(t,r,i)),Su(r)&&(de+=rt,tt+=rt)}else{const s=r.getTextContent();if(re(r)){const o=r.decorate(_e,vt);o!==null&&cl(n,o)}else M(r)&&!r.isDirectionless()&&(be+=s);de+=s,tt+=s}if(!Un&&ye(r)&&r.__cachedText!==tt){const s=r.getWritable();s.__cachedText=tt,r=s}return i}function cl(n,e){let t=_e._pendingDecorators;const r=_e._decorators;if(t===null){if(r[n]===e)return;t=Qa(_e)}t[n]=e}function Wu(n){let e=n.nextSibling;return e!==null&&e===_e._blockCursorElement&&(e=e.nextSibling),e}function _f(n,e,t,r,u,i){de="",tt="",be="",il=r===un,Dr=null,_e=t,vt=t._config,jn=t._nodes,Cu=_e._listeners.mutation,ai=u,li=i,Mt=n._nodeMap,Be=e._nodeMap,Un=e._readOnly,ci=new Map(t._keyToDOMMap);const s=new Map;return qn=s,kn("root",null),_e=void 0,jn=void 0,ai=void 0,li=void 0,Mt=void 0,Be=void 0,vt=void 0,ci=void 0,qn=void 0,s}function hi(n){const e=ci.get(n);return e===void 0&&R(75,n),e}const Ze=Object.freeze({}),pi=30,gi=[["keydown",function(n,e){if(On=n.timeStamp,fl=n.key,e.isComposing())return;const{key:t,shiftKey:r,ctrlKey:u,metaKey:i,altKey:s}=n;if(!F(e,w0,n)&&t!=null){if(function(o,a,l,f){return Ys(o)&&!a&&!f&&!l}(t,u,s,i))F(e,Ia,n);else if(function(o,a,l,f,h){return Ys(o)&&!f&&!l&&(a||h)}(t,u,r,s,i))F(e,S0,n);else if(function(o,a,l,f){return Qs(o)&&!a&&!f&&!l}(t,u,s,i))F(e,Pa,n);else if(function(o,a,l,f,h){return Qs(o)&&!f&&!l&&(a||h)}(t,u,r,s,i))F(e,T0,n);else if(function(o,a,l){return function(f){return f==="ArrowUp"}(o)&&!a&&!l}(t,u,i))F(e,La,n);else if(function(o,a,l){return function(f){return f==="ArrowDown"}(o)&&!a&&!l}(t,u,i))F(e,Da,n);else if(function(o,a){return eo(o)&&a}(t,r))In=!0,F(e,zr,n);else if(function(o){return o===" "}(t))F(e,C0,n);else if(function(o,a){return Pe&&a&&o.toLowerCase()==="o"}(t,u))n.preventDefault(),In=!0,F(e,en,!0);else if(function(o,a){return eo(o)&&!a}(t,r))In=!1,F(e,zr,n);else if(function(o,a,l,f){return Pe?!a&&!l&&(_n(o)||o.toLowerCase()==="h"&&f):!(f||a||l)&&_n(o)}(t,s,i,u))_n(t)?F(e,Ma,n):(n.preventDefault(),F(e,It,!0));else if(function(o){return o==="Escape"}(t))F(e,Ra,n);else if(function(o,a,l,f,h){return Pe?!(l||f||h)&&(xn(o)||o.toLowerCase()==="d"&&a):!(a||f||h)&&xn(o)}(t,u,r,s,i))xn(t)?F(e,Ba,n):(n.preventDefault(),F(e,It,!1));else if(function(o,a,l){return _n(o)&&(Pe?a:l)}(t,s,u))n.preventDefault(),F(e,Rn,!0);else if(function(o,a,l){return xn(o)&&(Pe?a:l)}(t,s,u))n.preventDefault(),F(e,Rn,!1);else if(function(o,a){return Pe&&a&&_n(o)}(t,i))n.preventDefault(),F(e,Bn,!0);else if(function(o,a){return Pe&&a&&xn(o)}(t,i))n.preventDefault(),F(e,Bn,!1);else if(function(o,a,l,f){return o.toLowerCase()==="b"&&!a&&En(l,f)}(t,s,i,u))n.preventDefault(),F(e,Ge,"bold");else if(function(o,a,l,f){return o.toLowerCase()==="u"&&!a&&En(l,f)}(t,s,i,u))n.preventDefault(),F(e,Ge,"underline");else if(function(o,a,l,f){return o.toLowerCase()==="i"&&!a&&En(l,f)}(t,s,i,u))n.preventDefault(),F(e,Ge,"italic");else if(function(o,a,l,f){return o==="Tab"&&!a&&!l&&!f}(t,s,u,i))F(e,E0,n);else if(function(o,a,l,f){return o.toLowerCase()==="z"&&!a&&En(l,f)}(t,r,i,u))n.preventDefault(),F(e,Ki,void 0);else if(function(o,a,l,f){return Pe?o.toLowerCase()==="z"&&l&&a:o.toLowerCase()==="y"&&f||o.toLowerCase()==="z"&&f&&a}(t,r,i,u))n.preventDefault(),F(e,Ji,void 0);else{const o=e._editorState._selection;o===null||L(o)?!_t&&to(t,i,u)&&(n.preventDefault(),F(e,ii,n)):function(a,l,f,h){return!l&&a.toLowerCase()==="c"&&(Pe?f:h)}(t,r,i,u)?(n.preventDefault(),F(e,yu,n)):function(a,l,f,h){return!l&&a.toLowerCase()==="x"&&(Pe?f:h)}(t,r,i,u)?(n.preventDefault(),F(e,Xi,n)):to(t,i,u)&&(n.preventDefault(),F(e,ii,n))}(function(o,a,l,f){return o||a||l||f})(u,r,s,i)&&F(e,M0,n)}}],["pointerdown",function(n,e){const t=n.target,r=n.pointerType;t instanceof Node&&r!=="touch"&&Ce(e,()=>{re(sn(t))||(bi=!0)})}],["compositionstart",function(n,e){Ce(e,()=>{const t=j();if(L(t)&&!e.isComposing()){const r=t.anchor,u=t.anchor.getNode();me(r.key),(n.timeStamp<On+pi||r.type==="element"||!t.isCollapsed()||u.getFormat()!==t.format||M(u)&&u.getStyle()!==t.style)&&F(e,tn,$0)}})}],["compositionend",function(n,e){_t?wn=!0:Ce(e,()=>{Hu(e,n.data)})}],["input",function(n,e){n.stopPropagation(),Ce(e,()=>{const t=j(),r=n.data,u=gl(n);if(r!=null&&L(t)&&pl(t,u,r,n.timeStamp,!1)){wn&&(Hu(e,r),wn=!1);const i=t.anchor.getNode(),s=Oe(e._window);if(s===null)return;const o=t.isBackward(),a=o?t.anchor.offset:t.focus.offset,l=o?t.focus.offset:t.anchor.offset;$r&&!t.isCollapsed()&&M(i)&&s.anchorNode!==null&&i.getTextContent().slice(0,a)+r+i.getTextContent().slice(a+l)===nl(s.anchorNode)||F(e,tn,r);const f=r.length;_t&&f>1&&n.inputType==="insertCompositionText"&&!e.isComposing()&&(t.anchor.offset-=f),_u||Xn||Zi||!e.isComposing()||(On=0,me(null))}else ls(!1,e,r!==null?r:void 0),wn&&(Hu(e,r||void 0),wn=!1);ve(),Va(oe())}),Jt=null}],["click",function(n,e){Ce(e,()=>{const t=j(),r=Oe(e._window),u=rr();if(r){if(L(t)){const i=t.anchor,s=i.getNode();i.type==="element"&&i.offset===0&&t.isCollapsed()&&!ye(s)&&ce().getChildrenSize()===1&&s.getTopLevelElementOrThrow().isEmpty()&&u!==null&&t.is(u)?(r.removeAllRanges(),t.dirty=!0):n.detail===3&&!t.isCollapsed()&&s!==t.focus.getNode()&&(k(s)?s.select(0):s.getParentOrThrow().select(0))}else if(n.pointerType==="touch"){const i=r.anchorNode;if(i!==null){const s=i.nodeType;(s===Zn||s===wt)&&Ae(gs(u,r,e,n))}}}F(e,Oa,n)})}],["cut",Ze],["copy",Ze],["dragstart",Ze],["dragover",Ze],["dragend",Ze],["paste",Ze],["focus",Ze],["blur",Ze],["drop",Ze]];$r&&gi.push(["beforeinput",(n,e)=>function(t,r){const u=t.inputType,i=gl(t);u==="deleteCompositionText"||_t&&rl(r)||u!=="insertCompositionText"&&Ce(r,()=>{const s=j();if(u==="deleteContentBackward"){if(s===null){const d=rr();if(!L(d))return;Ae(d.clone())}if(L(s)){const d=s.anchor.key===s.focus.key;if(o=t.timeStamp,fl==="MediaLast"&&o<On+pi&&r.isComposing()&&d){if(me(null),On=0,setTimeout(()=>{Ce(r,()=>{me(null)})},pi),L(s)){const p=s.anchor.getNode();p.markDirty(),s.format=p.getFormat(),M(p)||R(142),s.style=p.getStyle()}}else{me(null),t.preventDefault();const p=s.anchor.getNode(),m=p.getTextContent(),g=p.canInsertTextAfter(),y=s.anchor.offset===0&&s.focus.offset===m.length;F0&&d&&!y&&g||F(r,It,!0)}return}}var o;if(!L(s))return;const a=t.data;Jt!==null&&ls(!1,r,Jt),s.dirty&&Jt===null||!s.isCollapsed()||ye(s.anchor.getNode())||i===null||s.applyDOMRange(i),Jt=null;const l=s.anchor,f=s.focus,h=l.getNode(),c=f.getNode();if(u!=="insertText"&&u!=="insertTranspose")switch(t.preventDefault(),u){case"insertFromYank":case"insertFromDrop":case"insertReplacementText":F(r,tn,t);break;case"insertFromComposition":me(null),F(r,tn,t);break;case"insertLineBreak":me(null),F(r,en,!1);break;case"insertParagraph":me(null),In&&!Xn?(In=!1,F(r,en,!1)):F(r,Mn,void 0);break;case"insertFromPaste":case"insertFromPasteAsQuotation":F(r,bu,t);break;case"deleteByComposition":(function(d,p){return d!==p||k(d)||k(p)||!d.isToken()||!p.isToken()})(h,c)&&F(r,ui,t);break;case"deleteByDrag":case"deleteByCut":F(r,ui,t);break;case"deleteContent":F(r,It,!1);break;case"deleteWordBackward":F(r,Rn,!0);break;case"deleteWordForward":F(r,Rn,!1);break;case"deleteHardLineBackward":case"deleteSoftLineBackward":F(r,Bn,!0);break;case"deleteContentForward":case"deleteHardLineForward":case"deleteSoftLineForward":F(r,Bn,!1);break;case"formatStrikeThrough":F(r,Ge,"strikethrough");break;case"formatBold":F(r,Ge,"bold");break;case"formatItalic":F(r,Ge,"italic");break;case"formatUnderline":F(r,Ge,"underline");break;case"historyUndo":F(r,Ki,void 0);break;case"historyRedo":F(r,Ji,void 0)}else{if(a===`
4
4
  `)t.preventDefault(),F(r,en,!1);else if(a===rt)t.preventDefault(),F(r,Mn,void 0);else if(a==null&&t.dataTransfer){const d=t.dataTransfer.getData("text/plain");t.preventDefault(),s.insertRawText(d)}else a!=null&&pl(s,i,a,t.timeStamp,!0)?(t.preventDefault(),F(r,tn,a)):Jt=a;dl=t.timeStamp}})}(n,e)]);let On=0,fl=null,dl=0,Jt=null;const tu=new WeakMap;let mi=!1,bi=!1,In=!1,wn=!1,hl=[0,"",0,"root",0];function pl(n,e,t,r,u){const i=n.anchor,s=n.focus,o=i.getNode(),a=oe(),l=Oe(a._window),f=l!==null?l.anchorNode:null,h=i.key,c=a.getElementByKey(h),d=t.length;return h!==s.key||!M(o)||(!u&&(!$r||dl<r+50)||o.isDirty()&&d<2||el(t))&&i.offset!==s.offset&&!o.isComposing()||At(o)||o.isDirty()&&d>1||(u||!$r)&&c!==null&&!o.isComposing()&&f!==Gr(c)||l!==null&&e!==null&&(!e.collapsed||e.startContainer!==l.anchorNode||e.startOffset!==l.anchorOffset)||o.getFormat()!==n.format||o.getStyle()!==n.style||of(n,o)}function so(n,e){return n!==null&&n.nodeValue!==null&&n.nodeType===wt&&e!==0&&e!==n.nodeValue.length}function oo(n,e,t){const{anchorNode:r,anchorOffset:u,focusNode:i,focusOffset:s}=n;mi&&(mi=!1,so(r,u)&&so(i,s))||Ce(e,()=>{if(!t)return void Ae(null);if(!Qn(e,r,i))return;const o=j();if(L(o)){const a=o.anchor,l=a.getNode();if(o.isCollapsed()){n.type==="Range"&&n.anchorNode===n.focusNode&&(o.dirty=!0);const f=Tu(e).event,h=f?f.timeStamp:performance.now(),[c,d,p,m,g]=hl,y=ce(),b=e.isComposing()===!1&&y.getTextContent()==="";if(h<g+200&&a.offset===p&&a.key===m)o.format=c,o.style=d;else if(a.type==="text")M(l)||R(141),o.format=l.getFormat(),o.style=l.getStyle();else if(a.type==="element"&&!b){const v=a.getNode();o.style="",v instanceof hn&&v.getChildrenSize()===0?(o.format=v.getTextFormat(),o.style=v.getTextStyle()):o.format=0}}else{const f=a.key,h=o.focus.key,c=o.getNodes(),d=c.length,p=o.isBackward(),m=p?s:u,g=p?u:s,y=p?h:f,b=p?f:h;let v=z0,w=!1;for(let C=0;C<d;C++){const S=c[C],I=S.getTextContentSize();if(M(S)&&I!==0&&!(C===0&&S.__key===y&&m===I||C===d-1&&S.__key===b&&g===0)&&(w=!0,v&=S.getFormat(),v===0))break}o.format=w?v:0}}F(e,mu,void 0)})}function gl(n){if(!n.getTargetRanges)return null;const e=n.getTargetRanges();return e.length===0?null:e[0]}function Hu(n,e){const t=n._compositionKey;if(me(null),t!==null&&e!=null){if(e===""){const r=he(t),u=Gr(n.getElementByKey(t));return void(u!==null&&u.nodeValue!==null&&M(r)&&cs(r,u.nodeValue,null,null,!0))}if(e[e.length-1]===`
@@ -10,7 +10,7 @@ import { File as O0 } from "../file/index.js";
10
10
  import { Button as $e } from "../button/index.js";
11
11
  import { Dropzone as I0 } from "../dropzone/index.js";
12
12
  import { Icon as We } from "../icon/index.js";
13
- import { I as Js } from "../../index-D4LZQ-JF.js";
13
+ import { I as Js } from "../../index-BHgGZxsR.js";
14
14
  import { Toolbar as P0 } from "../toolbar/index.js";
15
15
  function bn(n) {
16
16
  return {};
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index46.css');const r=require("react/jsx-runtime"),l=require("../../classix-5H4IWnMA.cjs"),t=require("../../icons-BoBeAmLe.cjs"),m="_icon_vhz6u_1",u="_small_vhz6u_10",_="_medium_vhz6u_15",g="_large_vhz6u_20",d="_danger_vhz6u_25",e={icon:m,small:u,medium:_,large:g,danger:d,"gap-right":"_gap-right_vhz6u_29","gap-left":"_gap-left_vhz6u_33"},h={large:e.large,medium:e.medium,small:e.small},v={danger:e.danger},z=({fill:o,gap:n="none",name:a,size:c="medium",variant:s})=>{const i={maskImage:t.iconSVG(a,o??!1)};return r.jsx("span",{"aria-hidden":"true",className:l.t(n!=="none"&&e[`gap-${n}`],h[c],e.icon,s&&v[s]),style:i,"data-component":"icon"})},p=()=>Object.keys(t.iconPaths);exports.Icon=z;exports.Icons=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index46.css');const r=require("react/jsx-runtime"),l=require("../../classix-5H4IWnMA.cjs"),t=require("../../icons-Dx0NQYLH.cjs"),m="_icon_vhz6u_1",u="_small_vhz6u_10",_="_medium_vhz6u_15",g="_large_vhz6u_20",d="_danger_vhz6u_25",e={icon:m,small:u,medium:_,large:g,danger:d,"gap-right":"_gap-right_vhz6u_29","gap-left":"_gap-left_vhz6u_33"},h={large:e.large,medium:e.medium,small:e.small},v={danger:e.danger},z=({fill:o,gap:n="none",name:a,size:c="medium",variant:s})=>{const i={maskImage:t.iconSVG(a,o??!1)};return r.jsx("span",{"aria-hidden":"true",className:l.t(n!=="none"&&e[`gap-${n}`],h[c],e.icon,s&&v[s]),style:i,"data-component":"icon"})},p=()=>Object.keys(t.iconPaths);exports.Icon=z;exports.Icons=p;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,6 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
2
  import { t as c } from "../../classix-DG18itHa.js";
3
- import { i, a as l } from "../../icons-Dhj9mAkR.js";
3
+ import { i, a as l } from "../../icons-BFgf_lJN.js";
4
4
  import '../../assets/index46.css';const _ = "_icon_vhz6u_1", g = "_small_vhz6u_10", u = "_medium_vhz6u_15", d = "_large_vhz6u_20", h = "_danger_vhz6u_25", n = {
5
5
  icon: _,
6
6
  small: g,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index19.css');const s=require("react/jsx-runtime"),F=require("../../classix-5H4IWnMA.cjs"),r=require("react"),S=require("../button/index.cjs"),B=require("../dialog/index.cjs"),G="_wrapper_2h6kn_1",R="_toolbar_2h6kn_6",V="_iframe_2h6kn_16",i={wrapper:G,toolbar:R,"fullscreen-toolbar":"_fullscreen-toolbar_2h6kn_7",iframe:V,"fullscreen-dialog":"_fullscreen-dialog_2h6kn_22","fullscreen-iframe":"_fullscreen-iframe_2h6kn_39"},f=120,$=12e3,L=8,K=({accessibleLabel:h,autoResize:l=!1,className:y,closeFullscreenLabel:q="Close fullscreen",fullscreenLabel:A="View in fullscreen",hasFullscreenView:C=!0,loading:I="lazy",onLoad:_,referrerPolicy:H="no-referrer",sandbox:x="",srcDoc:g,style:E,...k})=>{const w=r.useRef(null),o=r.useRef(null),c=r.useRef(null),[O,b]=r.useState(f),[M,d]=r.useState(!1),p=r.useCallback(()=>{o.current!==null&&(window.cancelAnimationFrame(o.current),o.current=null),c.current!==null&&(window.clearTimeout(c.current),c.current=null)},[]),v=r.useCallback(()=>{if(!l)return;const e=w.current,t=e==null?void 0:e.contentDocument;if(!e||!t)return;const m=e.style.height;try{e.style.height=`${f}px`;const a=t.querySelector("[data-iframe-content]")??t.body,u=a.getBoundingClientRect(),{body:T,documentElement:j}=t,U=Math.min(Math.max(Math.ceil(Math.max(a.scrollHeight,a.offsetHeight,u.height,T.scrollHeight,T.offsetHeight,j.scrollHeight,j.offsetHeight)+L),f),$);b(U)}catch{}finally{e.style.height=m}},[l]),n=r.useCallback(()=>{!l||o.current!==null||(o.current=window.requestAnimationFrame(()=>{o.current=null,v(),c.current!==null&&window.clearTimeout(c.current),c.current=window.setTimeout(()=>{c.current=null,v()},250)}))},[l,v]),N=e=>{var m,a;n();const t=(m=w.current)==null?void 0:m.contentDocument;Array.from((t==null?void 0:t.images)??[]).forEach(u=>{u.complete||(u.addEventListener("load",n,{once:!0}),u.addEventListener("error",n,{once:!0}))}),(a=t==null?void 0:t.fonts)==null||a.ready.then(n).catch(()=>{}),_==null||_(e)};return r.useEffect(()=>{if(l)return p(),b(f),n(),p},[l,p,n,g]),r.useEffect(()=>{var e;if(l)return window.addEventListener("resize",n),(e=window.visualViewport)==null||e.addEventListener("resize",n),()=>{var t;window.removeEventListener("resize",n),(t=window.visualViewport)==null||t.removeEventListener("resize",n)}},[l,n]),s.jsxs("div",{className:i.wrapper,"data-component":"iframe",children:[C&&s.jsx("div",{className:i.toolbar,children:s.jsx(S.Button,{"aria-expanded":M,"aria-haspopup":"dialog",onClick:()=>d(!0),variant:"tertiary",children:A})}),s.jsx("iframe",{...k,className:F.t(i.iframe,y),loading:I,onLoad:N,ref:w,referrerPolicy:H,sandbox:x,srcDoc:g,style:l?{...E,height:O,minHeight:f}:E,title:h}),M&&s.jsxs(B.Dialog,{"aria-label":`${h} fullscreen`,className:i["fullscreen-dialog"],onKeyDown:e=>{e.key==="Escape"&&d(!1)},open:!0,setOpen:d,children:[s.jsx("div",{className:i["fullscreen-toolbar"],children:s.jsx(S.Button,{autoFocus:!0,onClick:()=>d(!1),children:q})}),s.jsx("iframe",{...k,className:F.t(i.iframe,i["fullscreen-iframe"],y),loading:"eager",referrerPolicy:H,sandbox:x,srcDoc:g,title:`${h} fullscreen`})]})]})};exports.Iframe=K;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index19.css');const o=require("react/jsx-runtime"),S=require("../../classix-5H4IWnMA.cjs"),n=require("react"),q=require("../button/index.cjs"),B=require("../dialog/index.cjs"),G="_wrapper_owo4o_1",R="_toolbar_owo4o_6",V="_iframe_owo4o_16",c={wrapper:G,toolbar:R,"fullscreen-toolbar":"_fullscreen-toolbar_owo4o_7",iframe:V,"fullscreen-dialog":"_fullscreen-dialog_owo4o_22","fullscreen-iframe":"_fullscreen-iframe_owo4o_40"},f=120,$=12e3,L=8,X=({accessibleLabel:m,autoResize:l=!1,className:H,closeFullscreenLabel:A="Close fullscreen",fullscreenLabel:C="View in fullscreen",hasFullscreenView:I=!0,loading:O="lazy",onLoad:h,referrerPolicy:x="no-referrer",sandbox:y="",srcDoc:w,style:E,...b})=>{const _=n.useRef(null),i=n.useRef(null),s=n.useRef(null),[N,M]=n.useState(f),[T,g]=n.useState(!1),p=n.useCallback(()=>{i.current!==null&&(window.cancelAnimationFrame(i.current),i.current=null),s.current!==null&&(window.clearTimeout(s.current),s.current=null)},[]),v=n.useCallback(()=>{if(!l)return;const t=_.current,e=t==null?void 0:t.contentDocument;if(!t||!e)return;const d=t.style.height;try{t.style.height=`${f}px`;const a=e.querySelector("[data-iframe-content]")??e.body,u=a.getBoundingClientRect(),{body:j,documentElement:F}=e,U=Math.min(Math.max(Math.ceil(Math.max(a.scrollHeight,a.offsetHeight,u.height,j.scrollHeight,j.offsetHeight,F.scrollHeight,F.offsetHeight)+L),f),$);M(U)}catch{}finally{t.style.height=d}},[l]),r=n.useCallback(()=>{!l||i.current!==null||(i.current=window.requestAnimationFrame(()=>{i.current=null,v(),s.current!==null&&window.clearTimeout(s.current),s.current=window.setTimeout(()=>{s.current=null,v()},250)}))},[l,v]),k=t=>{var d,a;r();const e=(d=_.current)==null?void 0:d.contentDocument;Array.from((e==null?void 0:e.images)??[]).forEach(u=>{u.complete||(u.addEventListener("load",r,{once:!0}),u.addEventListener("error",r,{once:!0}))}),(a=e==null?void 0:e.fonts)==null||a.ready.then(r).catch(()=>{}),h==null||h(t)};return n.useEffect(()=>{if(l)return p(),M(f),r(),p},[l,p,r,w]),n.useEffect(()=>{var t;if(l)return window.addEventListener("resize",r),(t=window.visualViewport)==null||t.addEventListener("resize",r),()=>{var e;window.removeEventListener("resize",r),(e=window.visualViewport)==null||e.removeEventListener("resize",r)}},[l,r]),o.jsxs("div",{className:c.wrapper,"data-component":"iframe",children:[I&&o.jsx("div",{className:c.toolbar,children:o.jsx(q.Button,{"aria-expanded":T,"aria-haspopup":"dialog",onClick:()=>g(!0),variant:"tertiary",children:C})}),o.jsx("iframe",{...b,className:S.t(c.iframe,H),loading:O,onLoad:k,ref:_,referrerPolicy:x,sandbox:y,srcDoc:w,style:l?{...E,height:N,minHeight:f}:E,title:m}),T&&o.jsxs(B.Dialog,{"aria-label":`${m} fullscreen`,className:c["fullscreen-dialog"],open:!0,setOpen:g,children:[o.jsx("div",{className:c["fullscreen-toolbar"],children:o.jsx(q.Button,{autoFocus:!0,onClick:()=>g(!1),children:A})}),o.jsx("iframe",{...b,className:S.t(c.iframe,c["fullscreen-iframe"],H),loading:"eager",referrerPolicy:x,sandbox:y,srcDoc:w,title:`${m} fullscreen`})]})]})};exports.Iframe=X;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/iframe/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { type ComponentPropsWithoutRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '../button';\nimport { Dialog } from '../dialog';\nimport styles from './styles.module.css';\n\nconst MIN_AUTO_HEIGHT = 120;\nconst MAX_AUTO_HEIGHT = 12000;\nconst AUTO_HEIGHT_BUFFER = 8;\n\nexport type IframeProps = Omit<ComponentPropsWithoutRef<'iframe'>, 'src' | 'srcDoc' | 'title'> & {\n accessibleLabel: string;\n autoResize?: boolean;\n closeFullscreenLabel?: string;\n fullscreenLabel?: string;\n hasFullscreenView?: boolean;\n srcDoc: string;\n};\n\nexport const Iframe = ({\n accessibleLabel,\n autoResize = false,\n className,\n closeFullscreenLabel = 'Close fullscreen',\n fullscreenLabel = 'View in fullscreen',\n hasFullscreenView = true,\n loading = 'lazy',\n onLoad,\n referrerPolicy = 'no-referrer',\n sandbox = '',\n srcDoc,\n style,\n ...props\n}: IframeProps) => {\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const measurementFrameRef = useRef<number | null>(null);\n const followUpMeasurementTimeoutRef = useRef<number | null>(null);\n const [measuredHeight, setMeasuredHeight] = useState(MIN_AUTO_HEIGHT);\n const [isFullscreenOpen, setIsFullscreenOpen] = useState(false);\n\n const clearScheduledMeasurements = useCallback(() => {\n if (measurementFrameRef.current !== null) {\n window.cancelAnimationFrame(measurementFrameRef.current);\n measurementFrameRef.current = null;\n }\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n followUpMeasurementTimeoutRef.current = null;\n }\n }, []);\n\n const measureSize = useCallback(() => {\n if (!autoResize) return;\n\n const iframe = iframeRef.current;\n const iframeDocument = iframe?.contentDocument;\n if (!iframe || !iframeDocument) return;\n\n const renderedHeight = iframe.style.height;\n\n try {\n // measure from a stable viewport height so content sized with percentages or\n // viewport units cannot feed the iframe's previous height back into itself\n iframe.style.height = `${MIN_AUTO_HEIGHT}px`;\n\n const content =\n iframeDocument.querySelector<HTMLElement>('[data-iframe-content]') ?? iframeDocument.body;\n const contentRect = content.getBoundingClientRect();\n const { body, documentElement } = iframeDocument;\n const height = Math.min(\n Math.max(\n Math.ceil(\n Math.max(\n content.scrollHeight,\n content.offsetHeight,\n contentRect.height,\n body.scrollHeight,\n body.offsetHeight,\n documentElement.scrollHeight,\n documentElement.offsetHeight\n ) + AUTO_HEIGHT_BUFFER\n ),\n MIN_AUTO_HEIGHT\n ),\n MAX_AUTO_HEIGHT\n );\n\n setMeasuredHeight(height);\n } catch {\n // cross-origin iframe content cannot be measured; retain minimum height\n } finally {\n iframe.style.height = renderedHeight;\n }\n }, [autoResize]);\n\n const scheduleSizeMeasurement = useCallback(() => {\n if (!autoResize || measurementFrameRef.current !== null) return;\n\n measurementFrameRef.current = window.requestAnimationFrame(() => {\n measurementFrameRef.current = null;\n measureSize();\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n }\n\n followUpMeasurementTimeoutRef.current = window.setTimeout(() => {\n followUpMeasurementTimeoutRef.current = null;\n measureSize();\n }, 250);\n });\n }, [autoResize, measureSize]);\n\n const handleLoad: NonNullable<IframeProps['onLoad']> = (event) => {\n scheduleSizeMeasurement();\n\n const iframeDocument = iframeRef.current?.contentDocument;\n Array.from(iframeDocument?.images ?? []).forEach((image) => {\n if (image.complete) return;\n image.addEventListener('load', scheduleSizeMeasurement, { once: true });\n image.addEventListener('error', scheduleSizeMeasurement, { once: true });\n });\n iframeDocument?.fonts?.ready.then(scheduleSizeMeasurement).catch(() => undefined);\n\n onLoad?.(event);\n };\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n clearScheduledMeasurements();\n setMeasuredHeight(MIN_AUTO_HEIGHT);\n scheduleSizeMeasurement();\n\n return clearScheduledMeasurements;\n }, [autoResize, clearScheduledMeasurements, scheduleSizeMeasurement, srcDoc]);\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n window.addEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.addEventListener('resize', scheduleSizeMeasurement);\n\n return () => {\n window.removeEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.removeEventListener('resize', scheduleSizeMeasurement);\n };\n }, [autoResize, scheduleSizeMeasurement]);\n\n return (\n <div className={styles.wrapper}>\n {hasFullscreenView && (\n <div className={styles.toolbar}>\n <Button\n aria-expanded={isFullscreenOpen}\n aria-haspopup='dialog'\n onClick={() => setIsFullscreenOpen(true)}\n variant='tertiary'\n >\n {fullscreenLabel}\n </Button>\n </div>\n )}\n <iframe\n {...props}\n className={cx(styles.iframe, className)}\n loading={loading}\n onLoad={handleLoad}\n ref={iframeRef}\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n style={\n autoResize\n ? {\n ...style,\n height: measuredHeight,\n minHeight: MIN_AUTO_HEIGHT,\n }\n : style\n }\n title={accessibleLabel}\n />\n {isFullscreenOpen && (\n <Dialog\n aria-label={`${accessibleLabel} fullscreen`}\n className={styles['fullscreen-dialog']}\n onKeyDown={(event) => {\n if (event.key === 'Escape') setIsFullscreenOpen(false);\n }}\n open\n setOpen={setIsFullscreenOpen}\n >\n <div className={styles['fullscreen-toolbar']}>\n <Button\n autoFocus\n onClick={() => setIsFullscreenOpen(false)}\n >\n {closeFullscreenLabel}\n </Button>\n </div>\n <iframe\n {...props}\n className={cx(styles.iframe, styles['fullscreen-iframe'], className)}\n loading='eager'\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n title={`${accessibleLabel} fullscreen`}\n />\n </Dialog>\n )}\n </div>\n );\n};\n"],"names":["MIN_AUTO_HEIGHT","MAX_AUTO_HEIGHT","AUTO_HEIGHT_BUFFER","Iframe","accessibleLabel","autoResize","className","closeFullscreenLabel","fullscreenLabel","hasFullscreenView","loading","onLoad","referrerPolicy","sandbox","srcDoc","style","props","iframeRef","useRef","measurementFrameRef","followUpMeasurementTimeoutRef","measuredHeight","setMeasuredHeight","useState","isFullscreenOpen","setIsFullscreenOpen","clearScheduledMeasurements","useCallback","current","window","cancelAnimationFrame","clearTimeout","measureSize","iframe","iframeDocument","contentDocument","renderedHeight","height","content","querySelector","body","contentRect","getBoundingClientRect","documentElement","Math","min","max","ceil","scrollHeight","offsetHeight","scheduleSizeMeasurement","requestAnimationFrame","setTimeout","handleLoad","event","Array","from","images","forEach","image","complete","addEventListener","once","fonts","ready","then","catch","useEffect","visualViewport","removeEventListener","styles","wrapper","toolbar","jsx","Button","cx","minHeight","jsxs","Dialog","key"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/iframe/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { type ComponentPropsWithoutRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '../button';\nimport { Dialog } from '../dialog';\nimport styles from './styles.module.css';\n\nconst MIN_AUTO_HEIGHT = 120;\nconst MAX_AUTO_HEIGHT = 12000;\nconst AUTO_HEIGHT_BUFFER = 8;\n\nexport type IframeProps = Omit<ComponentPropsWithoutRef<'iframe'>, 'src' | 'srcDoc' | 'title'> & {\n accessibleLabel: string;\n autoResize?: boolean;\n closeFullscreenLabel?: string;\n fullscreenLabel?: string;\n hasFullscreenView?: boolean;\n srcDoc: string;\n};\n\nexport const Iframe = ({\n accessibleLabel,\n autoResize = false,\n className,\n closeFullscreenLabel = 'Close fullscreen',\n fullscreenLabel = 'View in fullscreen',\n hasFullscreenView = true,\n loading = 'lazy',\n onLoad,\n referrerPolicy = 'no-referrer',\n sandbox = '',\n srcDoc,\n style,\n ...props\n}: IframeProps) => {\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const measurementFrameRef = useRef<number | null>(null);\n const followUpMeasurementTimeoutRef = useRef<number | null>(null);\n const [measuredHeight, setMeasuredHeight] = useState(MIN_AUTO_HEIGHT);\n const [isFullscreenOpen, setIsFullscreenOpen] = useState(false);\n\n const clearScheduledMeasurements = useCallback(() => {\n if (measurementFrameRef.current !== null) {\n window.cancelAnimationFrame(measurementFrameRef.current);\n measurementFrameRef.current = null;\n }\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n followUpMeasurementTimeoutRef.current = null;\n }\n }, []);\n\n const measureSize = useCallback(() => {\n if (!autoResize) return;\n\n const iframe = iframeRef.current;\n const iframeDocument = iframe?.contentDocument;\n if (!iframe || !iframeDocument) return;\n\n const renderedHeight = iframe.style.height;\n\n try {\n // measure from a stable viewport height so content sized with percentages or\n // viewport units cannot feed the iframe's previous height back into itself\n iframe.style.height = `${MIN_AUTO_HEIGHT}px`;\n\n const content =\n iframeDocument.querySelector<HTMLElement>('[data-iframe-content]') ?? iframeDocument.body;\n const contentRect = content.getBoundingClientRect();\n const { body, documentElement } = iframeDocument;\n const height = Math.min(\n Math.max(\n Math.ceil(\n Math.max(\n content.scrollHeight,\n content.offsetHeight,\n contentRect.height,\n body.scrollHeight,\n body.offsetHeight,\n documentElement.scrollHeight,\n documentElement.offsetHeight\n ) + AUTO_HEIGHT_BUFFER\n ),\n MIN_AUTO_HEIGHT\n ),\n MAX_AUTO_HEIGHT\n );\n\n setMeasuredHeight(height);\n } catch {\n // cross-origin iframe content cannot be measured; retain minimum height\n } finally {\n iframe.style.height = renderedHeight;\n }\n }, [autoResize]);\n\n const scheduleSizeMeasurement = useCallback(() => {\n if (!autoResize || measurementFrameRef.current !== null) return;\n\n measurementFrameRef.current = window.requestAnimationFrame(() => {\n measurementFrameRef.current = null;\n measureSize();\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n }\n\n followUpMeasurementTimeoutRef.current = window.setTimeout(() => {\n followUpMeasurementTimeoutRef.current = null;\n measureSize();\n }, 250);\n });\n }, [autoResize, measureSize]);\n\n const handleLoad: NonNullable<IframeProps['onLoad']> = (event) => {\n scheduleSizeMeasurement();\n\n const iframeDocument = iframeRef.current?.contentDocument;\n Array.from(iframeDocument?.images ?? []).forEach((image) => {\n if (image.complete) return;\n image.addEventListener('load', scheduleSizeMeasurement, { once: true });\n image.addEventListener('error', scheduleSizeMeasurement, { once: true });\n });\n iframeDocument?.fonts?.ready.then(scheduleSizeMeasurement).catch(() => undefined);\n\n onLoad?.(event);\n };\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n clearScheduledMeasurements();\n setMeasuredHeight(MIN_AUTO_HEIGHT);\n scheduleSizeMeasurement();\n\n return clearScheduledMeasurements;\n }, [autoResize, clearScheduledMeasurements, scheduleSizeMeasurement, srcDoc]);\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n window.addEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.addEventListener('resize', scheduleSizeMeasurement);\n\n return () => {\n window.removeEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.removeEventListener('resize', scheduleSizeMeasurement);\n };\n }, [autoResize, scheduleSizeMeasurement]);\n\n return (\n <div className={styles.wrapper}>\n {hasFullscreenView && (\n <div className={styles.toolbar}>\n <Button\n aria-expanded={isFullscreenOpen}\n aria-haspopup='dialog'\n onClick={() => setIsFullscreenOpen(true)}\n variant='tertiary'\n >\n {fullscreenLabel}\n </Button>\n </div>\n )}\n <iframe\n {...props}\n className={cx(styles.iframe, className)}\n loading={loading}\n onLoad={handleLoad}\n ref={iframeRef}\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n style={\n autoResize\n ? {\n ...style,\n height: measuredHeight,\n minHeight: MIN_AUTO_HEIGHT,\n }\n : style\n }\n title={accessibleLabel}\n />\n {isFullscreenOpen && (\n <Dialog\n aria-label={`${accessibleLabel} fullscreen`}\n className={styles['fullscreen-dialog']}\n open\n setOpen={setIsFullscreenOpen}\n >\n <div className={styles['fullscreen-toolbar']}>\n <Button\n autoFocus\n onClick={() => setIsFullscreenOpen(false)}\n >\n {closeFullscreenLabel}\n </Button>\n </div>\n <iframe\n {...props}\n className={cx(styles.iframe, styles['fullscreen-iframe'], className)}\n loading='eager'\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n title={`${accessibleLabel} fullscreen`}\n />\n </Dialog>\n )}\n </div>\n );\n};\n"],"names":["MIN_AUTO_HEIGHT","MAX_AUTO_HEIGHT","AUTO_HEIGHT_BUFFER","Iframe","accessibleLabel","autoResize","className","closeFullscreenLabel","fullscreenLabel","hasFullscreenView","loading","onLoad","referrerPolicy","sandbox","srcDoc","style","props","iframeRef","useRef","measurementFrameRef","followUpMeasurementTimeoutRef","measuredHeight","setMeasuredHeight","useState","isFullscreenOpen","setIsFullscreenOpen","clearScheduledMeasurements","useCallback","current","window","cancelAnimationFrame","clearTimeout","measureSize","iframe","iframeDocument","contentDocument","renderedHeight","height","content","querySelector","body","contentRect","getBoundingClientRect","documentElement","Math","min","max","ceil","scrollHeight","offsetHeight","scheduleSizeMeasurement","requestAnimationFrame","setTimeout","handleLoad","event","Array","from","images","forEach","image","complete","addEventListener","once","fonts","ready","then","catch","useEffect","visualViewport","removeEventListener","styles","wrapper","toolbar","jsx","Button","cx","minHeight","jsxs","Dialog"],"mappings":"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"}
@@ -1,89 +1,87 @@
1
- import { jsxs as I, jsx as s } from "react/jsx-runtime";
2
- import { t as N } from "../../classix-DG18itHa.js";
3
- import { useRef as v, useState as O, useCallback as H, useEffect as C } from "react";
4
- import { Button as S } from "../button/index.js";
1
+ import { jsxs as N, jsx as s } from "react/jsx-runtime";
2
+ import { t as O } from "../../classix-DG18itHa.js";
3
+ import { useRef as v, useState as C, useCallback as H, useEffect as S } from "react";
4
+ import { Button as U } from "../button/index.js";
5
5
  import { Dialog as L } from "../dialog/index.js";
6
- import '../../assets/index19.css';const K = "_wrapper_2h6kn_1", X = "_toolbar_2h6kn_6", D = "_iframe_2h6kn_16", o = {
7
- wrapper: K,
8
- toolbar: X,
9
- "fullscreen-toolbar": "_fullscreen-toolbar_2h6kn_7",
10
- iframe: D,
11
- "fullscreen-dialog": "_fullscreen-dialog_2h6kn_22",
12
- "fullscreen-iframe": "_fullscreen-iframe_2h6kn_39"
13
- }, u = 120, J = 12e3, Q = 8, R = ({
14
- accessibleLabel: d,
6
+ import '../../assets/index19.css';const X = "_wrapper_owo4o_1", J = "_toolbar_owo4o_6", K = "_iframe_owo4o_16", l = {
7
+ wrapper: X,
8
+ toolbar: J,
9
+ "fullscreen-toolbar": "_fullscreen-toolbar_owo4o_7",
10
+ iframe: K,
11
+ "fullscreen-dialog": "_fullscreen-dialog_owo4o_22",
12
+ "fullscreen-iframe": "_fullscreen-iframe_owo4o_40"
13
+ }, u = 120, Q = 12e3, W = 8, R = ({
14
+ accessibleLabel: m,
15
15
  autoResize: n = !1,
16
- className: y,
17
- closeFullscreenLabel: U = "Close fullscreen",
16
+ className: E,
17
+ closeFullscreenLabel: k = "Close fullscreen",
18
18
  fullscreenLabel: B = "View in fullscreen",
19
19
  hasFullscreenView: G = !0,
20
20
  loading: V = "lazy",
21
- onLoad: h,
22
- referrerPolicy: E = "no-referrer",
23
- sandbox: k = "",
24
- srcDoc: p,
25
- style: M,
26
- ...T
21
+ onLoad: d,
22
+ referrerPolicy: y = "no-referrer",
23
+ sandbox: M = "",
24
+ srcDoc: h,
25
+ style: T,
26
+ ...F
27
27
  }) => {
28
- const w = v(null), i = v(null), l = v(null), [$, F] = O(u), [A, f] = O(!1), g = H(() => {
29
- i.current !== null && (window.cancelAnimationFrame(i.current), i.current = null), l.current !== null && (window.clearTimeout(l.current), l.current = null);
28
+ const w = v(null), i = v(null), o = v(null), [$, A] = C(u), [b, p] = C(!1), g = H(() => {
29
+ i.current !== null && (window.cancelAnimationFrame(i.current), i.current = null), o.current !== null && (window.clearTimeout(o.current), o.current = null);
30
30
  }, []), _ = H(() => {
31
31
  if (!n) return;
32
- const e = w.current, r = e == null ? void 0 : e.contentDocument;
33
- if (!e || !r) return;
34
- const m = e.style.height;
32
+ const r = w.current, e = r == null ? void 0 : r.contentDocument;
33
+ if (!r || !e) return;
34
+ const f = r.style.height;
35
35
  try {
36
- e.style.height = `${u}px`;
37
- const c = r.querySelector("[data-iframe-content]") ?? r.body, a = c.getBoundingClientRect(), {
38
- body: b,
39
- documentElement: x
40
- } = r, q = Math.min(Math.max(Math.ceil(Math.max(c.scrollHeight, c.offsetHeight, a.height, b.scrollHeight, b.offsetHeight, x.scrollHeight, x.offsetHeight) + Q), u), J);
41
- F(q);
36
+ r.style.height = `${u}px`;
37
+ const c = e.querySelector("[data-iframe-content]") ?? e.body, a = c.getBoundingClientRect(), {
38
+ body: x,
39
+ documentElement: I
40
+ } = e, q = Math.min(Math.max(Math.ceil(Math.max(c.scrollHeight, c.offsetHeight, a.height, x.scrollHeight, x.offsetHeight, I.scrollHeight, I.offsetHeight) + W), u), Q);
41
+ A(q);
42
42
  } catch {
43
43
  } finally {
44
- e.style.height = m;
44
+ r.style.height = f;
45
45
  }
46
46
  }, [n]), t = H(() => {
47
47
  !n || i.current !== null || (i.current = window.requestAnimationFrame(() => {
48
- i.current = null, _(), l.current !== null && window.clearTimeout(l.current), l.current = window.setTimeout(() => {
49
- l.current = null, _();
48
+ i.current = null, _(), o.current !== null && window.clearTimeout(o.current), o.current = window.setTimeout(() => {
49
+ o.current = null, _();
50
50
  }, 250);
51
51
  }));
52
- }, [n, _]), j = (e) => {
53
- var m, c;
52
+ }, [n, _]), j = (r) => {
53
+ var f, c;
54
54
  t();
55
- const r = (m = w.current) == null ? void 0 : m.contentDocument;
56
- Array.from((r == null ? void 0 : r.images) ?? []).forEach((a) => {
55
+ const e = (f = w.current) == null ? void 0 : f.contentDocument;
56
+ Array.from((e == null ? void 0 : e.images) ?? []).forEach((a) => {
57
57
  a.complete || (a.addEventListener("load", t, {
58
58
  once: !0
59
59
  }), a.addEventListener("error", t, {
60
60
  once: !0
61
61
  }));
62
- }), (c = r == null ? void 0 : r.fonts) == null || c.ready.then(t).catch(() => {
63
- }), h == null || h(e);
62
+ }), (c = e == null ? void 0 : e.fonts) == null || c.ready.then(t).catch(() => {
63
+ }), d == null || d(r);
64
64
  };
65
- return C(() => {
65
+ return S(() => {
66
66
  if (n)
67
- return g(), F(u), t(), g;
68
- }, [n, g, t, p]), C(() => {
69
- var e;
67
+ return g(), A(u), t(), g;
68
+ }, [n, g, t, h]), S(() => {
69
+ var r;
70
70
  if (n)
71
- return window.addEventListener("resize", t), (e = window.visualViewport) == null || e.addEventListener("resize", t), () => {
72
- var r;
73
- window.removeEventListener("resize", t), (r = window.visualViewport) == null || r.removeEventListener("resize", t);
71
+ return window.addEventListener("resize", t), (r = window.visualViewport) == null || r.addEventListener("resize", t), () => {
72
+ var e;
73
+ window.removeEventListener("resize", t), (e = window.visualViewport) == null || e.removeEventListener("resize", t);
74
74
  };
75
- }, [n, t]), /* @__PURE__ */ I("div", { className: o.wrapper, "data-component": "iframe", children: [
76
- G && /* @__PURE__ */ s("div", { className: o.toolbar, children: /* @__PURE__ */ s(S, { "aria-expanded": A, "aria-haspopup": "dialog", onClick: () => f(!0), variant: "tertiary", children: B }) }),
77
- /* @__PURE__ */ s("iframe", { ...T, className: N(o.iframe, y), loading: V, onLoad: j, ref: w, referrerPolicy: E, sandbox: k, srcDoc: p, style: n ? {
78
- ...M,
75
+ }, [n, t]), /* @__PURE__ */ N("div", { className: l.wrapper, "data-component": "iframe", children: [
76
+ G && /* @__PURE__ */ s("div", { className: l.toolbar, children: /* @__PURE__ */ s(U, { "aria-expanded": b, "aria-haspopup": "dialog", onClick: () => p(!0), variant: "tertiary", children: B }) }),
77
+ /* @__PURE__ */ s("iframe", { ...F, className: O(l.iframe, E), loading: V, onLoad: j, ref: w, referrerPolicy: y, sandbox: M, srcDoc: h, style: n ? {
78
+ ...T,
79
79
  height: $,
80
80
  minHeight: u
81
- } : M, title: d }),
82
- A && /* @__PURE__ */ I(L, { "aria-label": `${d} fullscreen`, className: o["fullscreen-dialog"], onKeyDown: (e) => {
83
- e.key === "Escape" && f(!1);
84
- }, open: !0, setOpen: f, children: [
85
- /* @__PURE__ */ s("div", { className: o["fullscreen-toolbar"], children: /* @__PURE__ */ s(S, { autoFocus: !0, onClick: () => f(!1), children: U }) }),
86
- /* @__PURE__ */ s("iframe", { ...T, className: N(o.iframe, o["fullscreen-iframe"], y), loading: "eager", referrerPolicy: E, sandbox: k, srcDoc: p, title: `${d} fullscreen` })
81
+ } : T, title: m }),
82
+ b && /* @__PURE__ */ N(L, { "aria-label": `${m} fullscreen`, className: l["fullscreen-dialog"], open: !0, setOpen: p, children: [
83
+ /* @__PURE__ */ s("div", { className: l["fullscreen-toolbar"], children: /* @__PURE__ */ s(U, { autoFocus: !0, onClick: () => p(!1), children: k }) }),
84
+ /* @__PURE__ */ s("iframe", { ...F, className: O(l.iframe, l["fullscreen-iframe"], E), loading: "eager", referrerPolicy: y, sandbox: M, srcDoc: h, title: `${m} fullscreen` })
87
85
  ] })
88
86
  ] });
89
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/iframe/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { type ComponentPropsWithoutRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '../button';\nimport { Dialog } from '../dialog';\nimport styles from './styles.module.css';\n\nconst MIN_AUTO_HEIGHT = 120;\nconst MAX_AUTO_HEIGHT = 12000;\nconst AUTO_HEIGHT_BUFFER = 8;\n\nexport type IframeProps = Omit<ComponentPropsWithoutRef<'iframe'>, 'src' | 'srcDoc' | 'title'> & {\n accessibleLabel: string;\n autoResize?: boolean;\n closeFullscreenLabel?: string;\n fullscreenLabel?: string;\n hasFullscreenView?: boolean;\n srcDoc: string;\n};\n\nexport const Iframe = ({\n accessibleLabel,\n autoResize = false,\n className,\n closeFullscreenLabel = 'Close fullscreen',\n fullscreenLabel = 'View in fullscreen',\n hasFullscreenView = true,\n loading = 'lazy',\n onLoad,\n referrerPolicy = 'no-referrer',\n sandbox = '',\n srcDoc,\n style,\n ...props\n}: IframeProps) => {\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const measurementFrameRef = useRef<number | null>(null);\n const followUpMeasurementTimeoutRef = useRef<number | null>(null);\n const [measuredHeight, setMeasuredHeight] = useState(MIN_AUTO_HEIGHT);\n const [isFullscreenOpen, setIsFullscreenOpen] = useState(false);\n\n const clearScheduledMeasurements = useCallback(() => {\n if (measurementFrameRef.current !== null) {\n window.cancelAnimationFrame(measurementFrameRef.current);\n measurementFrameRef.current = null;\n }\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n followUpMeasurementTimeoutRef.current = null;\n }\n }, []);\n\n const measureSize = useCallback(() => {\n if (!autoResize) return;\n\n const iframe = iframeRef.current;\n const iframeDocument = iframe?.contentDocument;\n if (!iframe || !iframeDocument) return;\n\n const renderedHeight = iframe.style.height;\n\n try {\n // measure from a stable viewport height so content sized with percentages or\n // viewport units cannot feed the iframe's previous height back into itself\n iframe.style.height = `${MIN_AUTO_HEIGHT}px`;\n\n const content =\n iframeDocument.querySelector<HTMLElement>('[data-iframe-content]') ?? iframeDocument.body;\n const contentRect = content.getBoundingClientRect();\n const { body, documentElement } = iframeDocument;\n const height = Math.min(\n Math.max(\n Math.ceil(\n Math.max(\n content.scrollHeight,\n content.offsetHeight,\n contentRect.height,\n body.scrollHeight,\n body.offsetHeight,\n documentElement.scrollHeight,\n documentElement.offsetHeight\n ) + AUTO_HEIGHT_BUFFER\n ),\n MIN_AUTO_HEIGHT\n ),\n MAX_AUTO_HEIGHT\n );\n\n setMeasuredHeight(height);\n } catch {\n // cross-origin iframe content cannot be measured; retain minimum height\n } finally {\n iframe.style.height = renderedHeight;\n }\n }, [autoResize]);\n\n const scheduleSizeMeasurement = useCallback(() => {\n if (!autoResize || measurementFrameRef.current !== null) return;\n\n measurementFrameRef.current = window.requestAnimationFrame(() => {\n measurementFrameRef.current = null;\n measureSize();\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n }\n\n followUpMeasurementTimeoutRef.current = window.setTimeout(() => {\n followUpMeasurementTimeoutRef.current = null;\n measureSize();\n }, 250);\n });\n }, [autoResize, measureSize]);\n\n const handleLoad: NonNullable<IframeProps['onLoad']> = (event) => {\n scheduleSizeMeasurement();\n\n const iframeDocument = iframeRef.current?.contentDocument;\n Array.from(iframeDocument?.images ?? []).forEach((image) => {\n if (image.complete) return;\n image.addEventListener('load', scheduleSizeMeasurement, { once: true });\n image.addEventListener('error', scheduleSizeMeasurement, { once: true });\n });\n iframeDocument?.fonts?.ready.then(scheduleSizeMeasurement).catch(() => undefined);\n\n onLoad?.(event);\n };\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n clearScheduledMeasurements();\n setMeasuredHeight(MIN_AUTO_HEIGHT);\n scheduleSizeMeasurement();\n\n return clearScheduledMeasurements;\n }, [autoResize, clearScheduledMeasurements, scheduleSizeMeasurement, srcDoc]);\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n window.addEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.addEventListener('resize', scheduleSizeMeasurement);\n\n return () => {\n window.removeEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.removeEventListener('resize', scheduleSizeMeasurement);\n };\n }, [autoResize, scheduleSizeMeasurement]);\n\n return (\n <div className={styles.wrapper}>\n {hasFullscreenView && (\n <div className={styles.toolbar}>\n <Button\n aria-expanded={isFullscreenOpen}\n aria-haspopup='dialog'\n onClick={() => setIsFullscreenOpen(true)}\n variant='tertiary'\n >\n {fullscreenLabel}\n </Button>\n </div>\n )}\n <iframe\n {...props}\n className={cx(styles.iframe, className)}\n loading={loading}\n onLoad={handleLoad}\n ref={iframeRef}\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n style={\n autoResize\n ? {\n ...style,\n height: measuredHeight,\n minHeight: MIN_AUTO_HEIGHT,\n }\n : style\n }\n title={accessibleLabel}\n />\n {isFullscreenOpen && (\n <Dialog\n aria-label={`${accessibleLabel} fullscreen`}\n className={styles['fullscreen-dialog']}\n onKeyDown={(event) => {\n if (event.key === 'Escape') setIsFullscreenOpen(false);\n }}\n open\n setOpen={setIsFullscreenOpen}\n >\n <div className={styles['fullscreen-toolbar']}>\n <Button\n autoFocus\n onClick={() => setIsFullscreenOpen(false)}\n >\n {closeFullscreenLabel}\n </Button>\n </div>\n <iframe\n {...props}\n className={cx(styles.iframe, styles['fullscreen-iframe'], className)}\n loading='eager'\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n title={`${accessibleLabel} fullscreen`}\n />\n </Dialog>\n )}\n </div>\n );\n};\n"],"names":["MIN_AUTO_HEIGHT","MAX_AUTO_HEIGHT","AUTO_HEIGHT_BUFFER","Iframe","accessibleLabel","autoResize","className","closeFullscreenLabel","fullscreenLabel","hasFullscreenView","loading","onLoad","referrerPolicy","sandbox","srcDoc","style","props","iframeRef","useRef","measurementFrameRef","followUpMeasurementTimeoutRef","measuredHeight","setMeasuredHeight","useState","isFullscreenOpen","setIsFullscreenOpen","clearScheduledMeasurements","useCallback","current","window","cancelAnimationFrame","clearTimeout","measureSize","iframe","iframeDocument","contentDocument","renderedHeight","height","content","querySelector","body","contentRect","getBoundingClientRect","documentElement","Math","min","max","ceil","scrollHeight","offsetHeight","scheduleSizeMeasurement","requestAnimationFrame","setTimeout","handleLoad","event","Array","from","images","forEach","image","complete","addEventListener","once","fonts","ready","then","catch","useEffect","visualViewport","removeEventListener","styles","wrapper","toolbar","jsx","Button","cx","minHeight","jsxs","Dialog","key"],"mappings":";;;;;;;;;;;;GAOMA,IAAkB,KAClBC,IAAkB,MAClBC,IAAqB,GAWdC,IAASA,CAAC;AAAA,EACrBC,iBAAAA;AAAAA,EACAC,YAAAA,IAAa;AAAA,EACbC,WAAAA;AAAAA,EACAC,sBAAAA,IAAuB;AAAA,EACvBC,iBAAAA,IAAkB;AAAA,EAClBC,mBAAAA,IAAoB;AAAA,EACpBC,SAAAA,IAAU;AAAA,EACVC,QAAAA;AAAAA,EACAC,gBAAAA,IAAiB;AAAA,EACjBC,SAAAA,IAAU;AAAA,EACVC,QAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACA,GAAGC;AACQ,MAAM;AACjB,QAAMC,IAAYC,EAA0B,IAAI,GAC1CC,IAAsBD,EAAsB,IAAI,GAChDE,IAAgCF,EAAsB,IAAI,GAC1D,CAACG,GAAgBC,CAAiB,IAAIC,EAASvB,CAAe,GAC9D,CAACwB,GAAkBC,CAAmB,IAAIF,EAAS,EAAK,GAExDG,IAA6BC,EAAY,MAAM;AACnD,IAAIR,EAAoBS,YAAY,SAClCC,OAAOC,qBAAqBX,EAAoBS,OAAO,GACvDT,EAAoBS,UAAU,OAG5BR,EAA8BQ,YAAY,SAC5CC,OAAOE,aAAaX,EAA8BQ,OAAO,GACzDR,EAA8BQ,UAAU;AAAA,EAE5C,GAAG,CAAA,CAAE,GAECI,IAAcL,EAAY,MAAM;AACpC,QAAI,CAACtB,EAAY;AAEjB,UAAM4B,IAAShB,EAAUW,SACnBM,IAAiBD,KAAAA,gBAAAA,EAAQE;AAC/B,QAAI,CAACF,KAAU,CAACC,EAAgB;AAEhC,UAAME,IAAiBH,EAAOlB,MAAMsB;AAEpC,QAAI;AAGFJ,MAAAA,EAAOlB,MAAMsB,SAAS,GAAGrC,CAAe;AAExC,YAAMsC,IACJJ,EAAeK,cAA2B,uBAAuB,KAAKL,EAAeM,MACjFC,IAAcH,EAAQI,sBAAAA,GACtB;AAAA,QAAEF,MAAAA;AAAAA,QAAMG,iBAAAA;AAAAA,MAAAA,IAAoBT,GAC5BG,IAASO,KAAKC,IAClBD,KAAKE,IACHF,KAAKG,KACHH,KAAKE,IACHR,EAAQU,cACRV,EAAQW,cACRR,EAAYJ,QACZG,EAAKQ,cACLR,EAAKS,cACLN,EAAgBK,cAChBL,EAAgBM,YAClB,IAAI/C,CACN,GACAF,CACF,GACAC,CACF;AAEAqB,MAAAA,EAAkBe,CAAM;AAAA,IAC1B,QAAQ;AAAA,IACN,UAAA;AAEAJ,MAAAA,EAAOlB,MAAMsB,SAASD;AAAAA,IACxB;AAAA,EACF,GAAG,CAAC/B,CAAU,CAAC,GAET6C,IAA0BvB,EAAY,MAAM;AAChD,IAAI,CAACtB,KAAcc,EAAoBS,YAAY,SAEnDT,EAAoBS,UAAUC,OAAOsB,sBAAsB,MAAM;AAC/DhC,MAAAA,EAAoBS,UAAU,MAC9BI,EAAAA,GAEIZ,EAA8BQ,YAAY,QAC5CC,OAAOE,aAAaX,EAA8BQ,OAAO,GAG3DR,EAA8BQ,UAAUC,OAAOuB,WAAW,MAAM;AAC9DhC,QAAAA,EAA8BQ,UAAU,MACxCI,EAAAA;AAAAA,MACF,GAAG,GAAG;AAAA,IACR,CAAC;AAAA,EACH,GAAG,CAAC3B,GAAY2B,CAAW,CAAC,GAEtBqB,IAAkDC,CAAAA,MAAU;;AAChEJ,IAAAA,EAAAA;AAEA,UAAMhB,KAAiBjB,IAAAA,EAAUW,YAAVX,gBAAAA,EAAmBkB;AAC1CoB,UAAMC,MAAKtB,KAAAA,gBAAAA,EAAgBuB,WAAU,CAAA,CAAE,EAAEC,QAASC,CAAAA,MAAU;AAC1D,MAAIA,EAAMC,aACVD,EAAME,iBAAiB,QAAQX,GAAyB;AAAA,QAAEY,MAAM;AAAA,MAAA,CAAM,GACtEH,EAAME,iBAAiB,SAASX,GAAyB;AAAA,QAAEY,MAAM;AAAA,MAAA,CAAM;AAAA,IACzE,CAAC,IACD5B,IAAAA,KAAAA,gBAAAA,EAAgB6B,UAAhB7B,QAAAA,EAAuB8B,MAAMC,KAAKf,GAAyBgB,MAAM,MAAA;AAAA,QAEjEvD,KAAAA,QAAAA,EAAS2C;AAAAA,EACX;AAEAa,SAAAA,EAAU,MAAM;AACd,QAAK9D;AAELqB,aAAAA,EAAAA,GACAJ,EAAkBtB,CAAe,GACjCkD,EAAAA,GAEOxB;AAAAA,EACT,GAAG,CAACrB,GAAYqB,GAA4BwB,GAAyBpC,CAAM,CAAC,GAE5EqD,EAAU,MAAM;;AACd,QAAK9D;AAELwB,oBAAOgC,iBAAiB,UAAUX,CAAuB,IACzDrB,IAAAA,OAAOuC,mBAAPvC,QAAAA,EAAuBgC,iBAAiB,UAAUX,IAE3C,MAAM;;AACXrB,eAAOwC,oBAAoB,UAAUnB,CAAuB,IAC5DrB,IAAAA,OAAOuC,mBAAPvC,QAAAA,EAAuBwC,oBAAoB,UAAUnB;AAAAA,MACvD;AAAA,EACF,GAAG,CAAC7C,GAAY6C,CAAuB,CAAC,qBAGrC,OAAA,EAAI,WAAWoB,EAAOC,SAAQ,kBAAA,UAC5B9D,UAAAA;AAAAA,IAAAA,uBACE,OAAA,EAAI,WAAW6D,EAAOE,SACrB,UAAA,gBAAAC,EAACC,KACC,iBAAelD,GACf,iBAAc,UACd,SAAS,MAAMC,EAAoB,EAAI,GACvC,SAAQ,YAEPjB,aACH,EAAA,CACF;AAAA,sBAED,UAAA,EACC,GAAIQ,GACJ,WAAW2D,EAAGL,EAAOrC,QAAQ3B,CAAS,GACtC,SAAAI,GACA,QAAQ2C,GACR,KAAKpC,GACL,gBAAAL,GACA,SAAAC,GACA,QAAAC,GACA,OACET,IACI;AAAA,MACE,GAAGU;AAAAA,MACHsB,QAAQhB;AAAAA,MACRuD,WAAW5E;AAAAA,IAAAA,IAEbe,GAEN,OAAOX,GAAgB;AAAA,IAExBoB,KACC,gBAAAqD,EAACC,GAAA,EACC,cAAY,GAAG1E,CAAe,eAC9B,WAAWkE,EAAO,mBAAmB,GACrC,WAAYhB,CAAAA,MAAU;AACpB,MAAIA,EAAMyB,QAAQ,YAAUtD,EAAoB,EAAK;AAAA,IACvD,GACA,MAAI,IACJ,SAASA,GAET,UAAA;AAAA,MAAA,gBAAAgD,EAAC,OAAA,EAAI,WAAWH,EAAO,oBAAoB,GACzC,UAAA,gBAAAG,EAACC,GAAA,EACC,WAAS,IACT,SAAS,MAAMjD,EAAoB,EAAK,GAEvClB,aACH,GACF;AAAA,MACA,gBAAAkE,EAAC,YACC,GAAIzD,GACJ,WAAW2D,EAAGL,EAAOrC,QAAQqC,EAAO,mBAAmB,GAAGhE,CAAS,GACnE,SAAQ,SACR,gBAAAM,GACA,SAAAC,GACA,QAAAC,GACA,OAAO,GAAGV,CAAe,cAAA,CAAc;AAAA,IAAA,EAAA,CAE3C;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/iframe/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport { type ComponentPropsWithoutRef, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '../button';\nimport { Dialog } from '../dialog';\nimport styles from './styles.module.css';\n\nconst MIN_AUTO_HEIGHT = 120;\nconst MAX_AUTO_HEIGHT = 12000;\nconst AUTO_HEIGHT_BUFFER = 8;\n\nexport type IframeProps = Omit<ComponentPropsWithoutRef<'iframe'>, 'src' | 'srcDoc' | 'title'> & {\n accessibleLabel: string;\n autoResize?: boolean;\n closeFullscreenLabel?: string;\n fullscreenLabel?: string;\n hasFullscreenView?: boolean;\n srcDoc: string;\n};\n\nexport const Iframe = ({\n accessibleLabel,\n autoResize = false,\n className,\n closeFullscreenLabel = 'Close fullscreen',\n fullscreenLabel = 'View in fullscreen',\n hasFullscreenView = true,\n loading = 'lazy',\n onLoad,\n referrerPolicy = 'no-referrer',\n sandbox = '',\n srcDoc,\n style,\n ...props\n}: IframeProps) => {\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const measurementFrameRef = useRef<number | null>(null);\n const followUpMeasurementTimeoutRef = useRef<number | null>(null);\n const [measuredHeight, setMeasuredHeight] = useState(MIN_AUTO_HEIGHT);\n const [isFullscreenOpen, setIsFullscreenOpen] = useState(false);\n\n const clearScheduledMeasurements = useCallback(() => {\n if (measurementFrameRef.current !== null) {\n window.cancelAnimationFrame(measurementFrameRef.current);\n measurementFrameRef.current = null;\n }\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n followUpMeasurementTimeoutRef.current = null;\n }\n }, []);\n\n const measureSize = useCallback(() => {\n if (!autoResize) return;\n\n const iframe = iframeRef.current;\n const iframeDocument = iframe?.contentDocument;\n if (!iframe || !iframeDocument) return;\n\n const renderedHeight = iframe.style.height;\n\n try {\n // measure from a stable viewport height so content sized with percentages or\n // viewport units cannot feed the iframe's previous height back into itself\n iframe.style.height = `${MIN_AUTO_HEIGHT}px`;\n\n const content =\n iframeDocument.querySelector<HTMLElement>('[data-iframe-content]') ?? iframeDocument.body;\n const contentRect = content.getBoundingClientRect();\n const { body, documentElement } = iframeDocument;\n const height = Math.min(\n Math.max(\n Math.ceil(\n Math.max(\n content.scrollHeight,\n content.offsetHeight,\n contentRect.height,\n body.scrollHeight,\n body.offsetHeight,\n documentElement.scrollHeight,\n documentElement.offsetHeight\n ) + AUTO_HEIGHT_BUFFER\n ),\n MIN_AUTO_HEIGHT\n ),\n MAX_AUTO_HEIGHT\n );\n\n setMeasuredHeight(height);\n } catch {\n // cross-origin iframe content cannot be measured; retain minimum height\n } finally {\n iframe.style.height = renderedHeight;\n }\n }, [autoResize]);\n\n const scheduleSizeMeasurement = useCallback(() => {\n if (!autoResize || measurementFrameRef.current !== null) return;\n\n measurementFrameRef.current = window.requestAnimationFrame(() => {\n measurementFrameRef.current = null;\n measureSize();\n\n if (followUpMeasurementTimeoutRef.current !== null) {\n window.clearTimeout(followUpMeasurementTimeoutRef.current);\n }\n\n followUpMeasurementTimeoutRef.current = window.setTimeout(() => {\n followUpMeasurementTimeoutRef.current = null;\n measureSize();\n }, 250);\n });\n }, [autoResize, measureSize]);\n\n const handleLoad: NonNullable<IframeProps['onLoad']> = (event) => {\n scheduleSizeMeasurement();\n\n const iframeDocument = iframeRef.current?.contentDocument;\n Array.from(iframeDocument?.images ?? []).forEach((image) => {\n if (image.complete) return;\n image.addEventListener('load', scheduleSizeMeasurement, { once: true });\n image.addEventListener('error', scheduleSizeMeasurement, { once: true });\n });\n iframeDocument?.fonts?.ready.then(scheduleSizeMeasurement).catch(() => undefined);\n\n onLoad?.(event);\n };\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n clearScheduledMeasurements();\n setMeasuredHeight(MIN_AUTO_HEIGHT);\n scheduleSizeMeasurement();\n\n return clearScheduledMeasurements;\n }, [autoResize, clearScheduledMeasurements, scheduleSizeMeasurement, srcDoc]);\n\n useEffect(() => {\n if (!autoResize) return undefined;\n\n window.addEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.addEventListener('resize', scheduleSizeMeasurement);\n\n return () => {\n window.removeEventListener('resize', scheduleSizeMeasurement);\n window.visualViewport?.removeEventListener('resize', scheduleSizeMeasurement);\n };\n }, [autoResize, scheduleSizeMeasurement]);\n\n return (\n <div className={styles.wrapper}>\n {hasFullscreenView && (\n <div className={styles.toolbar}>\n <Button\n aria-expanded={isFullscreenOpen}\n aria-haspopup='dialog'\n onClick={() => setIsFullscreenOpen(true)}\n variant='tertiary'\n >\n {fullscreenLabel}\n </Button>\n </div>\n )}\n <iframe\n {...props}\n className={cx(styles.iframe, className)}\n loading={loading}\n onLoad={handleLoad}\n ref={iframeRef}\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n style={\n autoResize\n ? {\n ...style,\n height: measuredHeight,\n minHeight: MIN_AUTO_HEIGHT,\n }\n : style\n }\n title={accessibleLabel}\n />\n {isFullscreenOpen && (\n <Dialog\n aria-label={`${accessibleLabel} fullscreen`}\n className={styles['fullscreen-dialog']}\n open\n setOpen={setIsFullscreenOpen}\n >\n <div className={styles['fullscreen-toolbar']}>\n <Button\n autoFocus\n onClick={() => setIsFullscreenOpen(false)}\n >\n {closeFullscreenLabel}\n </Button>\n </div>\n <iframe\n {...props}\n className={cx(styles.iframe, styles['fullscreen-iframe'], className)}\n loading='eager'\n referrerPolicy={referrerPolicy}\n sandbox={sandbox}\n srcDoc={srcDoc}\n title={`${accessibleLabel} fullscreen`}\n />\n </Dialog>\n )}\n </div>\n );\n};\n"],"names":["MIN_AUTO_HEIGHT","MAX_AUTO_HEIGHT","AUTO_HEIGHT_BUFFER","Iframe","accessibleLabel","autoResize","className","closeFullscreenLabel","fullscreenLabel","hasFullscreenView","loading","onLoad","referrerPolicy","sandbox","srcDoc","style","props","iframeRef","useRef","measurementFrameRef","followUpMeasurementTimeoutRef","measuredHeight","setMeasuredHeight","useState","isFullscreenOpen","setIsFullscreenOpen","clearScheduledMeasurements","useCallback","current","window","cancelAnimationFrame","clearTimeout","measureSize","iframe","iframeDocument","contentDocument","renderedHeight","height","content","querySelector","body","contentRect","getBoundingClientRect","documentElement","Math","min","max","ceil","scrollHeight","offsetHeight","scheduleSizeMeasurement","requestAnimationFrame","setTimeout","handleLoad","event","Array","from","images","forEach","image","complete","addEventListener","once","fonts","ready","then","catch","useEffect","visualViewport","removeEventListener","styles","wrapper","toolbar","jsx","Button","cx","minHeight","jsxs","Dialog"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("../../classix-5H4IWnMA.cjs");require("react");require("../../icons-BoBeAmLe.cjs");const e=require("../../index-D9Hq7ewF.cjs");require("../../use-touched-D_TJ8wDc.cjs");exports.Input=e.Input;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("../../classix-5H4IWnMA.cjs");require("react");require("../../icons-Dx0NQYLH.cjs");const e=require("../../index-CEzqxRIu.cjs");require("../../use-touched-D_TJ8wDc.cjs");exports.Input=e.Input;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,8 +1,8 @@
1
1
  import "react/jsx-runtime";
2
2
  import "../../classix-DG18itHa.js";
3
3
  import "react";
4
- import "../../icons-Dhj9mAkR.js";
5
- import { I as a } from "../../index-D4LZQ-JF.js";
4
+ import "../../icons-BFgf_lJN.js";
5
+ import { I as a } from "../../index-BHgGZxsR.js";
6
6
  import "../../use-touched-DXIJVVzz.js";
7
7
  export {
8
8
  a as Input
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index15.css');const e=require("react/jsx-runtime"),v=require("../../classix-5H4IWnMA.cjs"),x=require("../avatar/index.cjs"),q=require("../icon/index.cjs"),j="_message_q630z_1",h="_timestamp_q630z_81",f="_attachments_q630z_86",w="_preview_q630z_105",s={"message-group":"_message-group_q630z_1",message:j,timestamp:h,attachments:f,preview:w},z=({appearance:m="default",attachments:i,author:a,authorColor:r,authorImageUrl:o,authorRole:l,content:d,iconName:g="info",id:_,preview:p,timestamp:c,timestampText:u,type:t="default"})=>{const n=c?new Date(c):void 0;return e.jsxs("div",{className:s["message-group"],"data-message-type":t,"data-component":"message",children:[a&&e.jsx(x.Avatar,{accessibleLabel:a,color:r,imageUrl:o,name:a,role:l}),e.jsxs("div",{className:v.t(s.message,p&&s.preview),"data-appearance":m,"data-id":_,"data-type":t,children:[t=="system"&&e.jsx(q.Icon,{fill:!0,gap:"right",name:g}),d]}),i&&e.jsx("div",{className:s.attachments,children:i}),n&&e.jsx("time",{className:s.timestamp,dateTime:n.toISOString(),children:u??n.toLocaleString()})]})};exports.Message=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index15.css');const e=require("react/jsx-runtime"),v=require("../../classix-5H4IWnMA.cjs"),x=require("../avatar/index.cjs"),b=require("../icon/index.cjs"),j="_message_1bnsh_1",f="_timestamp_1bnsh_91",w="_attachments_1bnsh_96",S="_preview_1bnsh_115",t={"message-group":"_message-group_1bnsh_1",message:j,timestamp:f,attachments:w,preview:S},q=({appearance:o="default",attachments:i,author:a,authorColor:r,authorImageUrl:l,authorRole:d,content:g,iconName:_="info",id:p,preview:u,timestamp:m,timestampText:h,type:s="default"})=>{const n=m?new Date(m):void 0,c=n?e.jsx("time",{className:t.timestamp,dateTime:n.toISOString(),children:h??n.toLocaleString()}):null;return e.jsxs("div",{className:t["message-group"],"data-message-type":s,"data-component":"message",children:[a&&e.jsx(x.Avatar,{accessibleLabel:a,color:r,imageUrl:l,name:a,role:d}),s==="system"&&c,e.jsxs("div",{className:v.t(t.message,u&&t.preview),"data-appearance":o,"data-id":p,"data-type":s,children:[s=="system"&&e.jsx(b.Icon,{fill:!0,gap:"right",name:_}),g]}),i&&e.jsx("div",{className:t.attachments,children:i}),s!=="system"&&c]})};exports.Message=q;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../src/components/message/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { IconName } from '@/components/icon/icons.ts';\n\nimport { Avatar, type AvatarColor } from '../avatar';\nimport { Icon } from '../icon';\nimport styles from './styles.module.css';\n\nexport type MessageOptions = {\n appearance?: 'default' | 'document' | 'file';\n attachments?: React.ReactNode;\n author?: string;\n authorColor?: AvatarColor;\n authorImageUrl?: string;\n authorRole?: string;\n content: React.ReactNode;\n iconName?: IconName;\n id: string;\n preview?: boolean;\n timestamp?: Date | string;\n timestampText?: React.ReactNode;\n type?: 'default' | 'minimal' | 'system' | 'user';\n};\n\nexport const Message = ({\n appearance = 'default',\n attachments,\n author,\n authorColor,\n authorImageUrl,\n authorRole,\n content,\n iconName = 'info',\n id,\n preview,\n timestamp,\n timestampText,\n type = 'default',\n}: MessageOptions) => {\n const date = timestamp ? new Date(timestamp) : undefined;\n\n return (\n <div\n className={styles['message-group']}\n data-message-type={type}\n >\n {author && (\n <Avatar\n accessibleLabel={author}\n color={authorColor}\n imageUrl={authorImageUrl}\n name={author}\n role={authorRole}\n />\n )}\n <div\n className={cx(styles.message, preview && styles.preview)}\n data-appearance={appearance}\n data-id={id}\n data-type={type}\n >\n {type == 'system' && (\n <Icon\n fill\n gap='right'\n name={iconName}\n />\n )}\n {content}\n </div>\n {attachments && <div className={styles.attachments}>{attachments}</div>}\n {date && (\n <time\n className={styles.timestamp}\n dateTime={date.toISOString()}\n >\n {timestampText ?? date.toLocaleString()}\n </time>\n )}\n </div>\n );\n};\n"],"names":["Message","appearance","attachments","author","authorColor","authorImageUrl","authorRole","content","iconName","id","preview","timestamp","timestampText","type","date","Date","undefined","jsxs","styles","jsx","Avatar","cx","message","Icon","toISOString","toLocaleString"],"mappings":"sZAwBaA,EAAUA,CAAC,CACtBC,WAAAA,EAAa,UACbC,YAAAA,EACAC,OAAAA,EACAC,YAAAA,EACAC,eAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,SAAAA,EAAW,OACXC,GAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,cAAAA,EACAC,KAAAA,EAAO,SACO,IAAM,CACpB,MAAMC,EAAOH,EAAY,IAAII,KAAKJ,CAAS,EAAIK,OAE/C,OACEC,OAAC,OACC,UAAWC,EAAO,eAAe,EACjC,oBAAmBL,EAAK,iBAAA,UAEvBV,SAAAA,CAAAA,GACCgB,EAAAA,IAACC,EAAAA,OAAA,CACC,gBAAiBjB,EACjB,MAAOC,EACP,SAAUC,EACV,KAAMF,EACN,KAAMG,CAAAA,CAAW,EAGrBW,EAAAA,KAAC,MAAA,CACC,UAAWI,EAAAA,EAAGH,EAAOI,QAASZ,GAAWQ,EAAOR,OAAO,EACvD,kBAAiBT,EACjB,UAASQ,EACT,YAAWI,EAEVA,SAAAA,CAAAA,GAAQ,gBACNU,EAAAA,KAAA,CACC,KAAI,GACJ,IAAI,QACJ,KAAMf,CAAAA,CAAS,EAGlBD,CAAAA,EACH,EACCL,GAAeiB,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAOhB,YAAcA,SAAAA,EAAY,EAChEY,GACCK,EAAAA,IAAC,OAAA,CACC,UAAWD,EAAOP,UAClB,SAAUG,EAAKU,YAAAA,EAEdZ,SAAAA,GAAiBE,EAAKW,gBAAe,CACxC,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/components/message/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { IconName } from '@/components/icon/icons.ts';\n\nimport { Avatar, type AvatarColor } from '../avatar';\nimport { Icon } from '../icon';\nimport styles from './styles.module.css';\n\nexport type MessageOptions = {\n appearance?: 'default' | 'document' | 'file';\n attachments?: React.ReactNode;\n author?: string;\n authorColor?: AvatarColor;\n authorImageUrl?: string;\n authorRole?: string;\n content: React.ReactNode;\n iconName?: IconName;\n id: string;\n preview?: boolean;\n timestamp?: Date | string;\n timestampText?: React.ReactNode;\n type?: 'default' | 'minimal' | 'system' | 'user';\n};\n\nexport const Message = ({\n appearance = 'default',\n attachments,\n author,\n authorColor,\n authorImageUrl,\n authorRole,\n content,\n iconName = 'info',\n id,\n preview,\n timestamp,\n timestampText,\n type = 'default',\n}: MessageOptions) => {\n const date = timestamp ? new Date(timestamp) : undefined;\n const timestampElement = date ? (\n <time\n className={styles.timestamp}\n dateTime={date.toISOString()}\n >\n {timestampText ?? date.toLocaleString()}\n </time>\n ) : null;\n\n return (\n <div\n className={styles['message-group']}\n data-message-type={type}\n >\n {author && (\n <Avatar\n accessibleLabel={author}\n color={authorColor}\n imageUrl={authorImageUrl}\n name={author}\n role={authorRole}\n />\n )}\n {type === 'system' && timestampElement}\n <div\n className={cx(styles.message, preview && styles.preview)}\n data-appearance={appearance}\n data-id={id}\n data-type={type}\n >\n {type == 'system' && (\n <Icon\n fill\n gap='right'\n name={iconName}\n />\n )}\n {content}\n </div>\n {attachments && <div className={styles.attachments}>{attachments}</div>}\n {type !== 'system' && timestampElement}\n </div>\n );\n};\n"],"names":["Message","appearance","attachments","author","authorColor","authorImageUrl","authorRole","content","iconName","id","preview","timestamp","timestampText","type","date","Date","undefined","timestampElement","jsx","styles","toISOString","toLocaleString","jsxs","Avatar","cx","message","Icon"],"mappings":"sZAwBaA,EAAUA,CAAC,CACtBC,WAAAA,EAAa,UACbC,YAAAA,EACAC,OAAAA,EACAC,YAAAA,EACAC,eAAAA,EACAC,WAAAA,EACAC,QAAAA,EACAC,SAAAA,EAAW,OACXC,GAAAA,EACAC,QAAAA,EACAC,UAAAA,EACAC,cAAAA,EACAC,KAAAA,EAAO,SACO,IAAM,CACpB,MAAMC,EAAOH,EAAY,IAAII,KAAKJ,CAAS,EAAIK,OACzCC,EAAmBH,EACvBI,EAAAA,IAAC,OAAA,CACC,UAAWC,EAAOR,UAClB,SAAUG,EAAKM,cAEdR,SAAAA,GAAiBE,EAAKO,eAAAA,EACzB,EACE,KAEJ,OACEC,OAAC,OACC,UAAWH,EAAO,eAAe,EACjC,oBAAmBN,EAAK,iBAAA,UAEvBV,SAAAA,CAAAA,GACCe,EAAAA,IAACK,EAAAA,OAAA,CACC,gBAAiBpB,EACjB,MAAOC,EACP,SAAUC,EACV,KAAMF,EACN,KAAMG,CAAAA,CAAW,EAGpBO,IAAS,UAAYI,EACtBK,EAAAA,KAAC,MAAA,CACC,UAAWE,EAAAA,EAAGL,EAAOM,QAASf,GAAWS,EAAOT,OAAO,EACvD,kBAAiBT,EACjB,UAASQ,EACT,YAAWI,EAEVA,SAAAA,CAAAA,GAAQ,gBACNa,EAAAA,KAAA,CACC,KAAI,GACJ,IAAI,QACJ,KAAMlB,CAAAA,CAAS,EAGlBD,CAAAA,EACH,EACCL,GAAegB,EAAAA,IAAC,MAAA,CAAI,UAAWC,EAAOjB,YAAcA,SAAAA,EAAY,EAChEW,IAAS,UAAYI,CAAAA,EACxB,CAEJ"}
@@ -1,40 +1,41 @@
1
- import { jsxs as o, jsx as a } from "react/jsx-runtime";
2
- import { t as h } from "../../classix-DG18itHa.js";
3
- import { Avatar as q } from "../avatar/index.js";
4
- import { Icon as u } from "../icon/index.js";
5
- import '../../assets/index15.css';const w = "_message_q630z_1", z = "_timestamp_q630z_81", N = "_attachments_q630z_86", x = "_preview_q630z_105", e = {
6
- "message-group": "_message-group_q630z_1",
7
- message: w,
8
- timestamp: z,
9
- attachments: N,
10
- preview: x
11
- }, I = ({
1
+ import { jsx as a, jsxs as r } from "react/jsx-runtime";
2
+ import { t as b } from "../../classix-DG18itHa.js";
3
+ import { Avatar as u } from "../avatar/index.js";
4
+ import { Icon as w } from "../icon/index.js";
5
+ import '../../assets/index15.css';const N = "_message_1bnsh_1", x = "_timestamp_1bnsh_91", S = "_attachments_1bnsh_96", j = "_preview_1bnsh_115", s = {
6
+ "message-group": "_message-group_1bnsh_1",
7
+ message: N,
8
+ timestamp: x,
9
+ attachments: S,
10
+ preview: j
11
+ }, D = ({
12
12
  appearance: c = "default",
13
- attachments: i,
14
- author: s,
15
- authorColor: n,
16
- authorImageUrl: l,
17
- authorRole: p,
18
- content: d,
19
- iconName: g = "info",
20
- id: _,
13
+ attachments: n,
14
+ author: t,
15
+ authorColor: l,
16
+ authorImageUrl: d,
17
+ authorRole: g,
18
+ content: p,
19
+ iconName: _ = "info",
20
+ id: h,
21
21
  preview: v,
22
- timestamp: r,
22
+ timestamp: i,
23
23
  timestampText: f,
24
- type: t = "default"
24
+ type: e = "default"
25
25
  }) => {
26
- const m = r ? new Date(r) : void 0;
27
- return /* @__PURE__ */ o("div", { className: e["message-group"], "data-message-type": t, "data-component": "message", children: [
28
- s && /* @__PURE__ */ a(q, { accessibleLabel: s, color: n, imageUrl: l, name: s, role: p }),
29
- /* @__PURE__ */ o("div", { className: h(e.message, v && e.preview), "data-appearance": c, "data-id": _, "data-type": t, children: [
30
- t == "system" && /* @__PURE__ */ a(u, { fill: !0, gap: "right", name: g }),
31
- d
26
+ const m = i ? new Date(i) : void 0, o = m ? /* @__PURE__ */ a("time", { className: s.timestamp, dateTime: m.toISOString(), children: f ?? m.toLocaleString() }) : null;
27
+ return /* @__PURE__ */ r("div", { className: s["message-group"], "data-message-type": e, "data-component": "message", children: [
28
+ t && /* @__PURE__ */ a(u, { accessibleLabel: t, color: l, imageUrl: d, name: t, role: g }),
29
+ e === "system" && o,
30
+ /* @__PURE__ */ r("div", { className: b(s.message, v && s.preview), "data-appearance": c, "data-id": h, "data-type": e, children: [
31
+ e == "system" && /* @__PURE__ */ a(w, { fill: !0, gap: "right", name: _ }),
32
+ p
32
33
  ] }),
33
- i && /* @__PURE__ */ a("div", { className: e.attachments, children: i }),
34
- m && /* @__PURE__ */ a("time", { className: e.timestamp, dateTime: m.toISOString(), children: f ?? m.toLocaleString() })
34
+ n && /* @__PURE__ */ a("div", { className: s.attachments, children: n }),
35
+ e !== "system" && o
35
36
  ] });
36
37
  };
37
38
  export {
38
- I as Message
39
+ D as Message
39
40
  };
40
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/message/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { IconName } from '@/components/icon/icons.ts';\n\nimport { Avatar, type AvatarColor } from '../avatar';\nimport { Icon } from '../icon';\nimport styles from './styles.module.css';\n\nexport type MessageOptions = {\n appearance?: 'default' | 'document' | 'file';\n attachments?: React.ReactNode;\n author?: string;\n authorColor?: AvatarColor;\n authorImageUrl?: string;\n authorRole?: string;\n content: React.ReactNode;\n iconName?: IconName;\n id: string;\n preview?: boolean;\n timestamp?: Date | string;\n timestampText?: React.ReactNode;\n type?: 'default' | 'minimal' | 'system' | 'user';\n};\n\nexport const Message = ({\n appearance = 'default',\n attachments,\n author,\n authorColor,\n authorImageUrl,\n authorRole,\n content,\n iconName = 'info',\n id,\n preview,\n timestamp,\n timestampText,\n type = 'default',\n}: MessageOptions) => {\n const date = timestamp ? new Date(timestamp) : undefined;\n\n return (\n <div\n className={styles['message-group']}\n data-message-type={type}\n >\n {author && (\n <Avatar\n accessibleLabel={author}\n color={authorColor}\n imageUrl={authorImageUrl}\n name={author}\n role={authorRole}\n />\n )}\n <div\n className={cx(styles.message, preview && styles.preview)}\n data-appearance={appearance}\n data-id={id}\n data-type={type}\n >\n {type == 'system' && (\n <Icon\n fill\n gap='right'\n name={iconName}\n />\n )}\n {content}\n </div>\n {attachments && <div className={styles.attachments}>{attachments}</div>}\n {date && (\n <time\n className={styles.timestamp}\n dateTime={date.toISOString()}\n >\n {timestampText ?? date.toLocaleString()}\n </time>\n )}\n </div>\n );\n};\n"],"names":["Message","appearance","attachments","author","authorColor","authorImageUrl","authorRole","content","iconName","id","preview","timestamp","timestampText","type","date","Date","undefined","jsxs","styles","jsx","Avatar","cx","message","Icon","toISOString","toLocaleString"],"mappings":";;;;;;;;;;GAwBaA,IAAUA,CAAC;AAAA,EACtBC,YAAAA,IAAa;AAAA,EACbC,aAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,UAAAA,IAAW;AAAA,EACXC,IAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,MAAAA,IAAO;AACO,MAAM;AACpB,QAAMC,IAAOH,IAAY,IAAII,KAAKJ,CAAS,IAAIK;AAE/C,SACE,gBAAAC,EAAC,SACC,WAAWC,EAAO,eAAe,GACjC,qBAAmBL,GAAK,kBAAA,WAEvBV,UAAAA;AAAAA,IAAAA,KACC,gBAAAgB,EAACC,GAAA,EACC,iBAAiBjB,GACjB,OAAOC,GACP,UAAUC,GACV,MAAMF,GACN,MAAMG,EAAAA,CAAW;AAAA,IAGrB,gBAAAW,EAAC,OAAA,EACC,WAAWI,EAAGH,EAAOI,SAASZ,KAAWQ,EAAOR,OAAO,GACvD,mBAAiBT,GACjB,WAASQ,GACT,aAAWI,GAEVA,UAAAA;AAAAA,MAAAA,KAAQ,8BACNU,GAAA,EACC,MAAI,IACJ,KAAI,SACJ,MAAMf,EAAAA,CAAS;AAAA,MAGlBD;AAAAA,IAAAA,GACH;AAAA,IACCL,KAAe,gBAAAiB,EAAC,OAAA,EAAI,WAAWD,EAAOhB,aAAcA,UAAAA,GAAY;AAAA,IAChEY,KACC,gBAAAK,EAAC,QAAA,EACC,WAAWD,EAAOP,WAClB,UAAUG,EAAKU,YAAAA,GAEdZ,UAAAA,KAAiBE,EAAKW,iBAAe,CACxC;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/message/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { IconName } from '@/components/icon/icons.ts';\n\nimport { Avatar, type AvatarColor } from '../avatar';\nimport { Icon } from '../icon';\nimport styles from './styles.module.css';\n\nexport type MessageOptions = {\n appearance?: 'default' | 'document' | 'file';\n attachments?: React.ReactNode;\n author?: string;\n authorColor?: AvatarColor;\n authorImageUrl?: string;\n authorRole?: string;\n content: React.ReactNode;\n iconName?: IconName;\n id: string;\n preview?: boolean;\n timestamp?: Date | string;\n timestampText?: React.ReactNode;\n type?: 'default' | 'minimal' | 'system' | 'user';\n};\n\nexport const Message = ({\n appearance = 'default',\n attachments,\n author,\n authorColor,\n authorImageUrl,\n authorRole,\n content,\n iconName = 'info',\n id,\n preview,\n timestamp,\n timestampText,\n type = 'default',\n}: MessageOptions) => {\n const date = timestamp ? new Date(timestamp) : undefined;\n const timestampElement = date ? (\n <time\n className={styles.timestamp}\n dateTime={date.toISOString()}\n >\n {timestampText ?? date.toLocaleString()}\n </time>\n ) : null;\n\n return (\n <div\n className={styles['message-group']}\n data-message-type={type}\n >\n {author && (\n <Avatar\n accessibleLabel={author}\n color={authorColor}\n imageUrl={authorImageUrl}\n name={author}\n role={authorRole}\n />\n )}\n {type === 'system' && timestampElement}\n <div\n className={cx(styles.message, preview && styles.preview)}\n data-appearance={appearance}\n data-id={id}\n data-type={type}\n >\n {type == 'system' && (\n <Icon\n fill\n gap='right'\n name={iconName}\n />\n )}\n {content}\n </div>\n {attachments && <div className={styles.attachments}>{attachments}</div>}\n {type !== 'system' && timestampElement}\n </div>\n );\n};\n"],"names":["Message","appearance","attachments","author","authorColor","authorImageUrl","authorRole","content","iconName","id","preview","timestamp","timestampText","type","date","Date","undefined","timestampElement","jsx","styles","toISOString","toLocaleString","jsxs","Avatar","cx","message","Icon"],"mappings":";;;;;;;;;;GAwBaA,IAAUA,CAAC;AAAA,EACtBC,YAAAA,IAAa;AAAA,EACbC,aAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,UAAAA,IAAW;AAAA,EACXC,IAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,MAAAA,IAAO;AACO,MAAM;AACpB,QAAMC,IAAOH,IAAY,IAAII,KAAKJ,CAAS,IAAIK,QACzCC,IAAmBH,IACvB,gBAAAI,EAAC,QAAA,EACC,WAAWC,EAAOR,WAClB,UAAUG,EAAKM,eAEdR,UAAAA,KAAiBE,EAAKO,eAAAA,GACzB,IACE;AAEJ,SACE,gBAAAC,EAAC,SACC,WAAWH,EAAO,eAAe,GACjC,qBAAmBN,GAAK,kBAAA,WAEvBV,UAAAA;AAAAA,IAAAA,KACC,gBAAAe,EAACK,GAAA,EACC,iBAAiBpB,GACjB,OAAOC,GACP,UAAUC,GACV,MAAMF,GACN,MAAMG,EAAAA,CAAW;AAAA,IAGpBO,MAAS,YAAYI;AAAAA,IACtB,gBAAAK,EAAC,OAAA,EACC,WAAWE,EAAGL,EAAOM,SAASf,KAAWS,EAAOT,OAAO,GACvD,mBAAiBT,GACjB,WAASQ,GACT,aAAWI,GAEVA,UAAAA;AAAAA,MAAAA,KAAQ,8BACNa,GAAA,EACC,MAAI,IACJ,KAAI,SACJ,MAAMlB,EAAAA,CAAS;AAAA,MAGlBD;AAAAA,IAAAA,GACH;AAAA,IACCL,KAAe,gBAAAgB,EAAC,OAAA,EAAI,WAAWC,EAAOjB,aAAcA,UAAAA,GAAY;AAAA,IAChEW,MAAS,YAAYI;AAAAA,EAAAA,GACxB;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index12.css');const i=require("react/jsx-runtime"),r=require("../../classix-5H4IWnMA.cjs"),p=require("react"),h=require("../../icons-BoBeAmLe.cjs"),v="_nav_mhwz8_3",m="_label_mhwz8_9",f="_horizontal_mhwz8_17",w="_sidebar_mhwz8_27",z="_tabs_mhwz8_73",N="_pills_mhwz8_93",t={nav:v,label:m,horizontal:f,sidebar:w,tabs:z,pills:N},g={default:t.default,pills:t.pills,sidebar:t.sidebar,tabs:t.tabs},x=({className:e,...n})=>i.jsx("span",{className:r.t(e,t.label),...n,"data-component":"navlabel"}),j=({animation:e,children:n,className:c,horizontal:l=!1,variant:s="default",...d})=>{const[b,o]=p.useState(!1),u={"--icon-svg":h.iconSVG("chevron")};return i.jsx("nav",{className:r.t(c,l&&t.horizontal,t.nav,g[s]),"data-animation":e,"data-open":b?"true":"false","data-orientation":l?"horizontal":"vertical",onBlurCapture:a=>{if(s!=="pills"||window.innerWidth>960)return;const _=a.relatedTarget;a.currentTarget.contains(_)||o(!1)},onClick:()=>{s!=="pills"||window.innerWidth>960||o(a=>!a)},style:u,...d,"data-component":"nav",children:n})};exports.Nav=j;exports.NavLabel=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index12.css');const i=require("react/jsx-runtime"),r=require("../../classix-5H4IWnMA.cjs"),p=require("react"),h=require("../../icons-Dx0NQYLH.cjs"),v="_nav_mhwz8_3",m="_label_mhwz8_9",f="_horizontal_mhwz8_17",w="_sidebar_mhwz8_27",z="_tabs_mhwz8_73",N="_pills_mhwz8_93",t={nav:v,label:m,horizontal:f,sidebar:w,tabs:z,pills:N},g={default:t.default,pills:t.pills,sidebar:t.sidebar,tabs:t.tabs},x=({className:e,...n})=>i.jsx("span",{className:r.t(e,t.label),...n,"data-component":"navlabel"}),j=({animation:e,children:n,className:c,horizontal:l=!1,variant:s="default",...d})=>{const[b,o]=p.useState(!1),u={"--icon-svg":h.iconSVG("chevron")};return i.jsx("nav",{className:r.t(c,l&&t.horizontal,t.nav,g[s]),"data-animation":e,"data-open":b?"true":"false","data-orientation":l?"horizontal":"vertical",onBlurCapture:a=>{if(s!=="pills"||window.innerWidth>960)return;const _=a.relatedTarget;a.currentTarget.contains(_)||o(!1)},onClick:()=>{s!=="pills"||window.innerWidth>960||o(a=>!a)},style:u,...d,"data-component":"nav",children:n})};exports.Nav=j;exports.NavLabel=x;
2
2
  //# sourceMappingURL=index.cjs.map