@hazem3500/komo 0.9.32 → 0.9.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-MU3NFN44.js → chunk-VF4VW5JQ.js} +1 -1
- package/dist/chunk-ZJWJEB5S.js +1 -0
- package/dist/design-comment-NXUBOTV3.js +1 -0
- package/dist/design-mode.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{inline-text-editor-VIICPLUY.js → inline-text-editor-WCVLLHZQ.js} +1 -1
- package/dist/node.mjs +1 -1
- package/dist/react.js +1 -1
- package/dist/server.js +1 -1
- package/dist/setup.js +1 -1
- package/package.json +1 -1
- package/server/setup-client.txt +39 -38
- package/dist/chunk-LDZL6B65.js +0 -1
- package/dist/design-comment-SBTYFBOV.js +0 -1
package/dist/chunk-LDZL6B65.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e="script,style,svg,input,textarea,select,[data-private],[data-sensitive]";function t(e){let t=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=[];for(;t.nextNode();){let e=t.currentNode;n.push([e,e.data])}return n}function n(t,n){for(let[r,l]of t)(!r.isConnected||n.contains(r))&&!r.parentElement?.closest(e)&&r.data!==l&&(r.data=l)}function r(e,t,r){n(t,e);let l=new MutationObserver(()=>{!e.isConnected||t.some(([t])=>!e.contains(t))?(l.disconnect(),r?.()):n(t,e)});return l.observe(e,{childList:!0,characterData:!0,subtree:!0}),()=>l.disconnect()}function l(l,s,o,a){if(!l.isConnected)return;let i=t(l);if(i.map(([,e])=>e).join("")!==s)return;let c=0,f=s.length;for(;c<s.length&&c<o.length&&s[c]===o[c];)c++;for(;f>c&&o.length-(s.length-f)>c&&s[f-1]===o[o.length-(s.length-f)-1];)f--;let d=o.slice(c,o.length-(s.length-f)),u=[],h=0,m=!1;for(let[t,n]of i){let r=h+n.length;if(c===f?!m&&c>=h&&c<=r&&!t.parentElement?.closest(e):c<r&&f>h){if(t.parentElement?.closest(e))return;let r=Math.max(0,c-h),l=Math.min(n.length,Math.max(r,f-h));u.push([t,n.slice(0,r)+(m?"":d)+n.slice(l)]),m=!0}else u.push([t,n]);h=r}if(!m)return;let g=r(l,u,a);return()=>{g(),n(i,l)}}function s(){let e=new Map,l=[],s=new Map,o=new Map,a=e=>{s.get(e)?.(),s.delete(e)},i=(e,t)=>{a(e),s.set(e,r(e,t))},c=t=>{a(t),e.delete(t),o.delete(t)};return{pause:a,resume(e){let t=o.get(e);t&&i(e,t)},record(n){if(n.reactProp||n.before===n.after)return;e.has(n.element)||e.set(n.element,{text:n.before,nodes:n.nodes??t(n.element)}),l.push(n);let r=t(n.element);o.set(n.element,r),i(n.element,r)},remember(n,r){e.has(n)||e.set(n,{text:r,nodes:t(n)})},original:t=>e.get(t)?.text,reconcile(t,n){e.get(t)?.text===n&&c(t)},reset(t){a(t),n(e.get(t)?.nodes??[],t),c(t);for(let e=l.length-1;e>=0;e--)l[e].element===t&&l.splice(e,1)},proposal(t){let n=e.get(t)?.text,r=o.get(t)?.map(([,e])=>e).join("")??t.textContent??"";return void 0!==n&&n!==r?`Proposed inline text change (preview only)\n- Text: ${JSON.stringify(n)} → ${JSON.stringify(r)}\n- Source markup is unchanged; refresh resets this preview.`:void 0},restoreAll(){for(let e of s.keys())a(e);for(let[t,{nodes:r}]of e)n(r,t);e.clear(),o.clear(),l.length=0},showBefore(t,r=!0){for(let[l,s]of e)t&&!r?(a(l),n(s.nodes,l)):i(l,t?s.nodes:o.get(l)??s.nodes)},undo(){let r=l.pop();if(!r)return null;if(a(r.element),n(r.nodes??[],r.element),e.get(r.element)?.text===r.before)c(r.element);else{let e=t(r.element);o.set(r.element,e),i(r.element,e)}return r.element}}}export{e as a,t as b,n as c,r as d,l as e,s as f};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"./chunk-LDZL6B65.js";import{f as t}from"./chunk-5BPQP3VG.js";import{a as n}from"./chunk-RPY7OOOR.js";var r=/^Proposed (.+?) changes? \(preview only\)$/,a={style:"Style changes","inline text":"Text change","design-token":"Token changes","React prop":"Prop changes"};function o(e){return e.split("\n").some(e=>r.test(e))}function i(e){try{return e.startsWith('"')?JSON.parse(e):e}catch{return e}}function s(e,t){let n=/^Shared theme (\S+) \((--[\w-]+)\): (.*?) → (.*?)(?:; preview scope .*)?$/.exec(e);if(n)return{label:n[1],token:n[1],before:n[3],after:n[4],apply:{kind:"variable",property:n[2]}};if(n=/^Element ([\w-]+): (.*?) → (.*?)(?: \[([^\]]+)\])*$/.exec(e),n){let t=/\[([\w.-]+)\]/.exec(e.slice(e.indexOf("→")))?.[1];return{label:n[1],before:n[2],after:n[3],...t&&!t.includes(" ")?{token:t}:{},apply:{kind:"style",property:n[1]}}}if(n=/^- (.+?): (.*) → (.*?)(?: \[([^\]]+)\])?$/.exec(e),!n)return null;let[,r,a,o,s]=n;return"inline text"===t?{label:"Text",before:i(a),after:i(o),apply:{kind:"text",property:"text"}}:"React prop"===t?{label:r,before:i(a),after:i(o),...s&&"custom value"!==s?{token:s}:{}}:{label:r,before:a,after:o,apply:{kind:"style",property:r}}}function l(e){let t=[];for(let n of e.split(/\n{2,}/)){let e=n.split("\n"),o=r.exec(e[0]??"");if(!o){n.trim()&&t.push({text:n.trim()});continue}let i=o[1],l={title:a[i]??`${i[0].toUpperCase()}${i.slice(1)} changes`,changes:[]};for(let t of e.slice(1))if(t.startsWith("Target: "))l.target=t.slice(8);else if(t.startsWith("Component: ")){let[,e,n]=/^(.*?)(?: \((.+)\))?$/.exec(t.slice(11));l.component=e,n&&(l.source=n)}else if(t.startsWith("Source: "))l.source=t.slice(8);else{let e=t.includes("→")?s(t,i):null;e&&e.before!==e.after&&l.changes.push(e)}l.changes.length?t.push(l):t.push({text:n.trim()})}return t}function d(e){let t=l(e),n=t.filter(e=>"changes"in e),r=t.find(e=>"text"in e)?.text,a=n.reduce((e,t)=>e+t.changes.length,0),o=n.find(e=>e.target)?.target,i=`Design change · ${a} ${1===a?"edit":"edits"}${o?` on ${p(o)}`:""}`;return r?`${r}\n${i}`:i}function p(e){return(e.split(">").at(-1)??e).trim().replace(/:nth-of-type\(\d+\)/g,"")||e}var c=/^(#[0-9a-f]{3,8}|rgba?\([^)]*\)|hsla?\([^)]*\)|oklch\([^)]*\))$/i,f=new Map,g=new Set,m="Preview unavailable: the target or its text has changed.";function u(e){E(e);for(let t of g){if(t.dataset.previewKey!==e||!t.isConnected)continue;t.querySelectorAll("button").forEach((e,t)=>e.setAttribute("aria-pressed",String(0===t)));let n=t.closest(".design-comment")?.querySelector('[role="status"]');n&&(n.textContent=m,n.hidden=!1)}}var h=new Map;function y(e){let t=h.get(e);t&&(clearTimeout(t.timer),h.delete(e),t.finish())}function x(r,a,o,i=!1){y(r);let s=[],l=[],d=[],p=!1;for(let c of a){let a=o(c.target);for(let o of c.changes)if(o.apply&&"(unset)"!==o.after)if("variable"===o.apply.kind){let e=document.documentElement,t=e.style.getPropertyValue(o.apply.property);e.style.setProperty(o.apply.property,o.after),s.push(()=>t?e.style.setProperty(o.apply.property,t):e.style.removeProperty(o.apply.property))}else if(n(a)&&"style"===o.apply.kind){let e=a.style.getPropertyValue(o.apply.property),n=a.style.getPropertyPriority(o.apply.property),r=!a.hasAttribute("style"),s=o.apply.property,p=()=>"(unset)"!==o.before&&(a.style.setProperty(s,o.before,"important"),!0);i&&p()&&getComputedStyle(a).getPropertyValue(s),a.style.setProperty(s,o.after,"important"),d.push(p),l.push(()=>{e?a.style.setProperty(o.apply.property,e,n):a.style.removeProperty(o.apply.property),r&&t(a)})}else if("text"===o.apply.kind){let t=a instanceof HTMLElement?e(a,o.before,o.after,()=>u(r)):void 0;t?s.push(t):p=!0}}if(p){for(let e of[...s,...l].reverse())e();return!1}return s.length+l.length&&f.set(r,{restore:s,restoreStyles:l,pinBefore:d}),s.length+l.length>0}var b,w=["color","background-color","border-color","outline-color","fill","stroke","box-shadow","text-decoration-color"],v="cubic-bezier(.22, 1, .36, 1)";function k(e,t){let n=new Set;for(let r of e)for(let e of r.changes)if("style"===e.apply?.kind)n.add(e.apply.property);else if("variable"===e.apply?.kind)w.forEach(e=>n.add(e));else if("text"===e.apply?.kind){let e=t(r.target);e instanceof HTMLElement&&e.animate?.([{opacity:1},{opacity:.25,offset:.4},{opacity:1}],{duration:360,easing:v})}if(!n.size)return;b&&(clearTimeout(b.timer),b.style.remove());let r=document.createElement("style");r.textContent=`*, *::before, *::after { transition-property: ${[...n].join(", ")} !important; transition-duration: 420ms !important; transition-timing-function: ${v} !important; transition-delay: 0s !important; }`,document.head.append(r),b={style:r,timer:setTimeout(()=>{r.remove(),b=void 0},480)}}function E(e,t=!1){y(e);let n=f.get(e);if(!n)return;f.delete(e);for(let e of n.restore.reverse())e();let r=()=>{for(let e of n.restoreStyles.reverse())e()};if(!t||!n.pinBefore.length)return r();for(let e of n.pinBefore)e();h.set(e,{finish:r,timer:setTimeout(()=>y(e),480)})}function C(e){return f.has(e)||h.has(e)}function S(e=new Set){e.has("draft")||(j=void 0);for(let t of[...h.keys()])e.has(t)||y(t);for(let t of[...f.keys()])e.has(t)||E(t)}function P(e){return"text"===e.apply?.kind||!(e.apply||e.token||c.test(e.before)||c.test(e.after))&&(/\s/.test(e.before+e.after)||e.before.length+e.after.length>32)}function $(e,t){let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n++;let r=0;for(;r<e.length-n&&r<t.length-n&&e[e.length-1-r]===t[t.length-1-r];)r++;for(;n>0&&!/\s/.test(e[n-1]);)n--;for(;r>0&&!/\s/.test(e[e.length-r]);)r--;let a=e.slice(0,n),o=e.slice(e.length-r),i=document.createElement("p");i.className="design-diff",i.append(a.length>48?`…${a.slice(-40)}`:a);let s=e.slice(n,e.length-r),l=t.slice(n,t.length-r);return s&&i.append(Object.assign(document.createElement("del"),{textContent:s})),l&&i.append(Object.assign(document.createElement("ins"),{textContent:l})),i.append(o.length>48?`${o.slice(0,40)}…`:o),i}function N(e,t){let n=document.createElement("span");n.className="design-value";let r=/^var\((--[\w-]+)\)$/.exec(e);if(t&&r)return n.append(Object.assign(document.createElement("span"),{className:"design-token",textContent:t})),n;if(c.test(e)){let t=document.createElement("span");t.className="design-swatch",t.style.background=e,n.append(t)}return n.append(e),n}function O(e,t,n){let r=l(t),a=r.filter(e=>"changes"in e),o=document.createElement("div");o.className="design-comment",o.append(Object.assign(document.createElement("style"),{textContent:'\n.design-comment { display: grid; gap: 8px; margin: 2px 0 6px; }\n.design-note { margin: 0; white-space: pre-wrap; }\n.design-card { border-radius: 10px; background: #ffffff08; box-shadow: inset 0 0 0 1px #ffffff0d; overflow: hidden; font-size: 12px; }\n.design-card-head { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 7px 8px 7px 12px; }\n.design-card-label { display: grid; min-width: 0; gap: 1px; }\n.design-card-title { font-weight: 600; color: #eee; white-space: nowrap; }\n.design-card-target { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #8a8a8a; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10.5px; }\n.design-toggle { margin-left: auto; display: inline-flex; padding: 2px; border-radius: 7px; background: #ffffff0a; flex: none; }\n.design-toggle button { border: 0; padding: 0 8px; height: 22px; border-radius: 5px; font: inherit; font-size: 11px; color: #9a9a9a; background: none; cursor: pointer; }\n.design-toggle button[aria-pressed="true"] { color: #fff; background: #ffffff1a; }\n.design-rows { display: grid; border-top: 1px solid #ffffff0a; }\n.design-row { display: grid; grid-template-columns: minmax(64px, 30%) minmax(0, 1fr); gap: 10px; align-items: center; padding: 6px 12px; }\n.design-row + .design-row { border-top: 1px solid #ffffff06; }\n.design-row[hidden] { display: none; }\n.design-row-prose { grid-template-columns: 1fr; gap: 3px; }\n.design-diff { margin: 0; line-height: 1.5; color: #ddd; overflow-wrap: anywhere; }\n.design-diff del, .design-diff ins { border-radius: 3px; padding: 0 2px; }\n.design-diff del { color: #f6a19a; background: #f28b8224; text-decoration-color: #f6a19a99; }\n.design-diff ins { color: #b9e6ad; background: #8fd69424; text-decoration: none; }\n.design-prop { color: #9a9a9a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.design-values { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; min-width: 0; color: #eee; }\n.design-before { color: #858585; text-decoration: line-through; text-decoration-color: #85858599; }\n.design-arrow { color: #666; }\n.design-value { display: inline-flex; align-items: center; gap: 5px; min-width: 0; overflow-wrap: anywhere; }\n.design-swatch { width: 12px; height: 12px; flex: none; border-radius: 3px; box-shadow: inset 0 0 0 1px #ffffff26; }\n.design-token { padding: 1px 6px; border-radius: 5px; color: var(--accent, #bda6ef); background: color-mix(in srgb, var(--accent, #bda6ef) 14%, transparent); }\n.design-more { border: 0; width: 100%; padding: 7px 12px; text-align: left; font: inherit; font-size: 11px; color: #9a9a9a; background: none; border-top: 1px solid #ffffff06; cursor: pointer; }\n.design-more:hover, .design-toggle button:hover { color: #fff; }\n.design-source { padding: 0 12px 8px; color: #777; font-size: 11px; }\n[data-compact] { gap: 6px; margin: 11px 0 0; }\n[data-compact] .design-card-head, [data-compact] .design-row, [data-compact] > .design-source { min-height: 0; padding: 4px 10px; }\n[data-compact]:hover > .design-source { color: #eee; text-decoration: underline; }\n'}));let i=document.createElement("p");i.className="design-source",i.setAttribute("role","status"),i.hidden=!0;let s=!!n.compact;s&&(o.dataset.compact="");let d=s?3:1/0,c=0,u=a.some(e=>e.changes.some(e=>e.apply)),h=[],y=()=>{let e=f.has(n.key);for(let t of h)t.querySelectorAll("button").forEach((t,n)=>t.setAttribute("aria-pressed",String(1===n?e:!e)))};for(let e of r){if("text"in e){let t=document.createElement("p");t.className="design-note",n.note(t,e.text),o.append(t);continue}if(d<=0){c+=e.changes.length;continue}let t=document.createElement("section");t.className="design-card";let r=document.createElement("div");r.className="design-card-head";let l=document.createElement("div");l.className="design-card-label",l.append(Object.assign(document.createElement("span"),{className:"design-card-title",textContent:e.title}));let b=e.target?p(e.target):e.component;if(b){let t=Object.assign(document.createElement("span"),{className:"design-card-target",textContent:b});e.target&&(t.title=e.target),l.append(t)}if(r.append(l),u&&!h.length&&e.changes.some(e=>e.apply)){let e=document.createElement("div");e.dataset.previewKey=n.key,e.className="design-toggle",e.setAttribute("role","group"),e.setAttribute("aria-label","Preview on page");for(let[t,r]of["Before","After"].entries()){let o=Object.assign(document.createElement("button"),{type:"button",textContent:r,title:`${r} · ${t?"→":"←"} or B`});o.addEventListener("click",()=>{let e=1===t;if(e===f.has(n.key))return;let r=n.resolve(a.find(e=>e.target)?.target);e&&r?.scrollIntoView({block:"center",behavior:"smooth"});let o="function"==typeof matchMedia&&matchMedia("(prefers-reduced-motion: reduce)").matches;o||k(a,n.resolve),e?(i.hidden=x(n.key,a,n.resolve,!o),i.textContent=m):E(n.key,!o),n.onSwitch&&setTimeout(n.onSwitch,o?0:480),y()}),e.append(o)}h.push(e);for(let e of g)e.isConnected||g.delete(e);g.add(e),r.append(e)}t.append(r);let w=document.createElement("div");w.className="design-rows";let v=4;e.changes.forEach((t,n)=>{if(d<=0)return void c++;s&&d--;let r=document.createElement("div");r.className="design-row",r.hidden=!s&&n>=v&&e.changes.length>v+1;let a=Object.assign(document.createElement("span"),{className:"design-prop",textContent:t.label});if(a.title=t.label,P(t))return r.classList.add("design-row-prose"),r.append(a,$(t.before,t.after)),void w.append(r);let o=document.createElement("span");o.className="design-values";let i=N(t.before);i.classList.add("design-before"),o.append(i,Object.assign(document.createElement("span"),{className:"design-arrow",textContent:"→"}),N(t.after,t.token)),r.append(a,o),w.append(r)}),t.append(w);let C=w.querySelectorAll("[hidden]").length;if(C){let e=Object.assign(document.createElement("button"),{type:"button",className:"design-more",textContent:`Show ${C} more`});e.addEventListener("click",()=>{w.querySelectorAll("[hidden]").forEach(e=>e.hidden=!1),e.remove()}),t.append(e)}e.source&&!s&&t.append(Object.assign(document.createElement("div"),{className:"design-source",textContent:e.source})),o.append(t)}c&&o.append(Object.assign(document.createElement("span"),{className:"design-source",textContent:`+${c} more`})),o.append(i),y(),e.replaceChildren(o),h.length&&(A||(A=!0,document.addEventListener("keydown",e=>{let t="ArrowLeft"===e.key?0:"ArrowRight"===e.key?1:"b"===e.key.toLowerCase()?-1:null;if(null===t||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.isComposing)return;let n=e.composedPath()[0];if(n instanceof HTMLElement&&(n.isContentEditable||n.matches("input, textarea, select")))return;let r=[...g].reverse().find(e=>e.isConnected),a=r?.querySelectorAll("button"),o=-1===t?r?.querySelector('button[aria-pressed="false"]'):a?.[t];o&&(e.preventDefault(),o.click())})))}var j,A=!1;function T(e,t,n){j!==t&&(E("draft"),j=t,x("draft",l(t).filter(e=>"changes"in e),n)),O(e,t,{key:"draft",resolve:n,note:(e,t)=>e.append(t)})}export{o as isDesignComment,C as isPreviewing,l as parseDesignComment,O as renderDesignComment,T as renderDraftProposal,S as resetDesignPreviews,p as shortTarget,d as summarizeDesignComment};
|