@ecopages/radiant-ui 0.2.5 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/components/ui/alert/alert.d.ts +1 -3
- package/dist/components/ui/alert/alert.script.d.ts +7 -0
- package/dist/components/ui/alert/index.js +1 -1
- package/dist/components/ui/alert/index.js.map +3 -3
- package/dist/components/ui/autocomplete/autocomplete.d.ts +1 -2
- package/dist/components/ui/autocomplete/autocomplete.script.d.ts +7 -0
- package/dist/components/ui/autocomplete/index.js +1 -1
- package/dist/components/ui/autocomplete/index.js.map +3 -3
- package/dist/components/ui/breadcrumb/breadcrumb.d.ts +1 -2
- package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +7 -0
- package/dist/components/ui/breadcrumb/index.js +1 -1
- package/dist/components/ui/breadcrumb/index.js.map +3 -3
- package/dist/components/ui/calendar/calendar.script.d.ts +8 -0
- package/dist/components/ui/calendar/index.d.ts +1 -2
- package/dist/components/ui/calendar/index.js +1 -1
- package/dist/components/ui/calendar/index.js.map +4 -4
- package/dist/components/ui/carousel/carousel.d.ts +1 -2
- package/dist/components/ui/carousel/carousel.script.d.ts +7 -0
- package/dist/components/ui/carousel/index.js +1 -1
- package/dist/components/ui/carousel/index.js.map +3 -3
- package/dist/components/ui/checkbox/checkbox.d.ts +1 -2
- package/dist/components/ui/checkbox/checkbox.script.d.ts +7 -0
- package/dist/components/ui/checkbox/index.js +1 -1
- package/dist/components/ui/checkbox/index.js.map +3 -3
- package/dist/components/ui/checkbox-group/checkbox-group.d.ts +1 -2
- package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +7 -0
- package/dist/components/ui/checkbox-group/index.js +1 -1
- package/dist/components/ui/checkbox-group/index.js.map +3 -3
- package/dist/components/ui/combobox/combobox.d.ts +1 -2
- package/dist/components/ui/combobox/combobox.script.d.ts +7 -0
- package/dist/components/ui/combobox/index.js +1 -1
- package/dist/components/ui/combobox/index.js.map +3 -3
- package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +1 -2
- package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +7 -0
- package/dist/components/ui/cycle-toggle/index.js +1 -1
- package/dist/components/ui/cycle-toggle/index.js.map +3 -3
- package/dist/components/ui/date-field/date-field.d.ts +1 -3
- package/dist/components/ui/date-field/date-field.script.d.ts +7 -0
- package/dist/components/ui/date-field/index.js +1 -1
- package/dist/components/ui/date-field/index.js.map +4 -4
- package/dist/components/ui/date-input/date-input.d.ts +1 -2
- package/dist/components/ui/date-input/date-input.script.d.ts +8 -0
- package/dist/components/ui/date-input/index.js +1 -1
- package/dist/components/ui/date-input/index.js.map +3 -3
- package/dist/components/ui/date-range-picker/date-range-picker.d.ts +1 -3
- package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +7 -0
- package/dist/components/ui/date-range-picker/index.js +1 -1
- package/dist/components/ui/date-range-picker/index.js.map +4 -4
- package/dist/components/ui/dialog/dialog-registry.d.ts +0 -1
- package/dist/components/ui/dialog/dialog.d.ts +1 -2
- package/dist/components/ui/dialog/dialog.script.d.ts +7 -0
- package/dist/components/ui/dialog/index.js +1 -1
- package/dist/components/ui/dialog/index.js.map +3 -3
- package/dist/components/ui/disclosure/disclosure-group.script.d.ts +7 -0
- package/dist/components/ui/disclosure/disclosure.d.ts +2 -4
- package/dist/components/ui/disclosure/disclosure.script.d.ts +7 -0
- package/dist/components/ui/disclosure/index.js +1 -1
- package/dist/components/ui/disclosure/index.js.map +3 -3
- package/dist/components/ui/field/field.d.ts +1 -2
- package/dist/components/ui/field/field.script.d.ts +7 -0
- package/dist/components/ui/field/index.js +1 -1
- package/dist/components/ui/field/index.js.map +3 -3
- package/dist/components/ui/form/form.d.ts +1 -2
- package/dist/components/ui/form/form.script.d.ts +7 -0
- package/dist/components/ui/form/index.js +1 -1
- package/dist/components/ui/form/index.js.map +3 -3
- package/dist/components/ui/grid/grid.d.ts +1 -2
- package/dist/components/ui/grid/grid.script.d.ts +7 -0
- package/dist/components/ui/grid/index.js +1 -1
- package/dist/components/ui/grid/index.js.map +3 -3
- package/dist/components/ui/hover-card/hover-card.d.ts +1 -2
- package/dist/components/ui/hover-card/hover-card.script.d.ts +7 -0
- package/dist/components/ui/hover-card/index.js +1 -1
- package/dist/components/ui/hover-card/index.js.map +3 -3
- package/dist/components/ui/knob/index.js +1 -1
- package/dist/components/ui/knob/index.js.map +3 -3
- package/dist/components/ui/knob/knob.d.ts +1 -2
- package/dist/components/ui/knob/knob.script.d.ts +7 -0
- package/dist/components/ui/listbox/index.js +1 -1
- package/dist/components/ui/listbox/index.js.map +3 -3
- package/dist/components/ui/listbox/listbox.d.ts +1 -2
- package/dist/components/ui/listbox/listbox.script.d.ts +7 -0
- package/dist/components/ui/menu-button/index.js +1 -1
- package/dist/components/ui/menu-button/index.js.map +3 -3
- package/dist/components/ui/menu-button/menu-button.d.ts +1 -2
- package/dist/components/ui/menu-button/menu-button.script.d.ts +7 -0
- package/dist/components/ui/menubar/index.js +1 -1
- package/dist/components/ui/menubar/index.js.map +3 -3
- package/dist/components/ui/menubar/menubar.d.ts +1 -2
- package/dist/components/ui/menubar/menubar.script.d.ts +7 -0
- package/dist/components/ui/meter/index.d.ts +1 -2
- package/dist/components/ui/meter/index.js +1 -1
- package/dist/components/ui/meter/index.js.map +4 -4
- package/dist/components/ui/meter/meter.script.d.ts +8 -0
- package/dist/components/ui/navigation-menu/index.js +1 -1
- package/dist/components/ui/navigation-menu/index.js.map +3 -3
- package/dist/components/ui/navigation-menu/navigation-menu.css +2 -1
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +1 -2
- package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +7 -0
- package/dist/components/ui/number-field/index.js +1 -1
- package/dist/components/ui/number-field/index.js.map +3 -3
- package/dist/components/ui/number-field/number-field.d.ts +1 -2
- package/dist/components/ui/number-field/number-field.script.d.ts +7 -0
- package/dist/components/ui/pagination/index.js +1 -1
- package/dist/components/ui/pagination/index.js.map +3 -3
- package/dist/components/ui/pagination/pagination.d.ts +1 -2
- package/dist/components/ui/pagination/pagination.script.d.ts +7 -0
- package/dist/components/ui/popover/index.js +1 -1
- package/dist/components/ui/popover/index.js.map +3 -3
- package/dist/components/ui/popover/popover.d.ts +1 -2
- package/dist/components/ui/popover/popover.script.d.ts +9 -0
- package/dist/components/ui/radio-group/index.js +1 -1
- package/dist/components/ui/radio-group/index.js.map +3 -3
- package/dist/components/ui/radio-group/radio-group.d.ts +1 -2
- package/dist/components/ui/radio-group/radio-group.script.d.ts +7 -0
- package/dist/components/ui/select/index.js +1 -1
- package/dist/components/ui/select/index.js.map +3 -3
- package/dist/components/ui/select/select.d.ts +1 -2
- package/dist/components/ui/select/select.script.d.ts +7 -0
- package/dist/components/ui/sidebar/index.js +1 -1
- package/dist/components/ui/sidebar/index.js.map +3 -3
- package/dist/components/ui/sidebar/sidebar-trigger.d.ts +1 -2
- package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +7 -0
- package/dist/components/ui/sidebar/sidebar.d.ts +1 -3
- package/dist/components/ui/sidebar/sidebar.script.d.ts +7 -0
- package/dist/components/ui/slider/index.js +1 -1
- package/dist/components/ui/slider/index.js.map +3 -3
- package/dist/components/ui/slider/slider.d.ts +1 -2
- package/dist/components/ui/slider/slider.script.d.ts +7 -0
- package/dist/components/ui/switch/index.js +1 -1
- package/dist/components/ui/switch/index.js.map +3 -3
- package/dist/components/ui/switch/switch.d.ts +1 -2
- package/dist/components/ui/switch/switch.script.d.ts +7 -0
- package/dist/components/ui/table/index.js +1 -1
- package/dist/components/ui/table/index.js.map +3 -3
- package/dist/components/ui/table/table.d.ts +1 -2
- package/dist/components/ui/table/table.script.d.ts +7 -0
- package/dist/components/ui/tabs/index.d.ts +2 -2
- package/dist/components/ui/tabs/index.js +1 -1
- package/dist/components/ui/tabs/index.js.map +3 -3
- package/dist/components/ui/tabs/tabs.d.ts +1 -4
- package/dist/components/ui/tabs/tabs.script.d.ts +7 -0
- package/dist/components/ui/tag-group/index.js +1 -1
- package/dist/components/ui/tag-group/index.js.map +3 -3
- package/dist/components/ui/tag-group/tag-group.d.ts +1 -2
- package/dist/components/ui/tag-group/tag-group.script.d.ts +7 -0
- package/dist/components/ui/toast/index.d.ts +2 -2
- package/dist/components/ui/toast/index.js +1 -1
- package/dist/components/ui/toast/index.js.map +3 -3
- package/dist/components/ui/toast/toast.d.ts +2 -9
- package/dist/components/ui/toast/toast.script.d.ts +8 -0
- package/dist/components/ui/toast/toaster.script.d.ts +8 -1
- package/dist/components/ui/toc/index.d.ts +6 -2
- package/dist/components/ui/toc/index.js +1 -1
- package/dist/components/ui/toc/index.js.map +4 -4
- package/dist/components/ui/toc/toc.script.d.ts +8 -0
- package/dist/components/ui/toolbar/index.js +1 -1
- package/dist/components/ui/toolbar/index.js.map +3 -3
- package/dist/components/ui/toolbar/toolbar.d.ts +1 -2
- package/dist/components/ui/toolbar/toolbar.script.d.ts +7 -0
- package/dist/components/ui/tooltip/index.js +1 -1
- package/dist/components/ui/tooltip/index.js.map +3 -3
- package/dist/components/ui/tooltip/tooltip.d.ts +1 -2
- package/dist/components/ui/tooltip/tooltip.script.d.ts +7 -0
- package/dist/components/ui/tree/index.js +1 -1
- package/dist/components/ui/tree/index.js.map +3 -3
- package/dist/components/ui/tree/tree.d.ts +1 -2
- package/dist/components/ui/tree/tree.script.d.ts +7 -0
- package/dist/components/ui/treegrid/index.js +1 -1
- package/dist/components/ui/treegrid/index.js.map +3 -3
- package/dist/components/ui/treegrid/treegrid.d.ts +1 -2
- package/dist/components/ui/treegrid/treegrid.script.d.ts +7 -0
- package/dist/components/ui/window-splitter/index.js +1 -1
- package/dist/components/ui/window-splitter/index.js.map +3 -3
- package/dist/components/ui/window-splitter/window-splitter.d.ts +1 -2
- package/dist/components/ui/window-splitter/window-splitter.script.d.ts +7 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +4 -4
- package/dist/styles/radiant-ui-core.css +3 -0
- package/dist/styles/radiant-ui.css +3 -0
- package/dist/styles/styles.css +1 -1
- package/dist/styles/tailwind.css +3 -0
- package/package.json +11 -11
- package/dist/components/ui/calendar/calendar.d.ts +0 -6
- package/dist/components/ui/meter/meter.d.ts +0 -10
- package/dist/components/ui/toc/toc.d.ts +0 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as O,jsxs as qt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Lt,bound as Dt,customElement as $t,onUpdated as Nt,prop as L,state as xt}from"@ecopages/radiant";import{isServer as Rt}from"@ecopages/radiant/is-server";function rt(i){return i.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function ot(i,t){try{return i.querySelector(t)}catch{return null}}function st(i,t){try{return Array.from(i.querySelectorAll(t))}catch{return[]}}function kt(i){return i.trim().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")}function lt(i,t,e=n=>document.getElementById(n)!==null){if(i.id)return t.add(i.id),i.id;let n=kt(i.textContent||"")||"section",s=n,h=2;for(;t.has(s)||e(s);)s=`${n}-${h}`,h+=1;return i.id=s,t.add(s),s}function at(i,t){return i instanceof HTMLElement?i.getBoundingClientRect().top+t:t}function ct(i,t,e,n){if(t instanceof HTMLElement){let s=t.getBoundingClientRect(),h=i.getBoundingClientRect();t.scrollTo({top:t.scrollTop+(h.top-s.top)-e,behavior:n});return}window.scrollTo({top:window.scrollY+i.getBoundingClientRect().top-e,behavior:n})}var ut,dt,ht,ft,gt,pt,mt,vt,bt,wt,St,_t,yt,Ct,It,Tt;function jt(i,t,e,n,s,h){var _,a,B,Y,x,q,I,M=Symbol.metadata||Symbol.for("Symbol.metadata"),P=Object.defineProperty,D=Object.create,z=[D(null),D(null)],G=t.length;function R(r,p,f){return function(o,l){p&&(l=o,o=i);for(var m=0;m<r.length;m++)l=r[m].apply(o,f?[l]:[]);return f?l:o}}function w(r,p,f,o){if(typeof r!="function"&&(o||r!==void 0))throw new TypeError(p+" must "+(f||"be")+" a function"+(o?"":" or undefined"));return r}function J(r,p,f,o,l,m,y,g,v,b,W){function $(u){if(!W(u))throw new TypeError("Attempted to access private element on non-instance")}var N=[].concat(p[0]),X=p[3],K=!y,T=l===1,Z=l===3,F=l===4,H=l===2;function A(u,C,it){return function(j,nt){return C&&(nt=j,j=r),it&&it(j),c[u].call(j,nt)}}if(!K){var c={},U=[],S=Z?"get":F||T?"set":"value";if(v?(b||T?c={get:Et(function(){return X(this)},o,"get"),set:function(u){p[4](this,u)}}:c[S]=X,b||Et(c[S],o,H?"":S)):b||(c=Object.getOwnPropertyDescriptor(r,o)),!b&&!v){if((a=z[+g][o])&&(a^l)!==7)throw Error("Decorating two elements with the same name ("+c[S].name+") is not supported yet");z[+g][o]=l<3?1:l}}for(var d=r,k=N.length-1;k>=0;k-=f?2:1){var tt=w(N[k],"A decorator","be",!0),et=f?N[k-1]:void 0,V={},E={kind:["field","accessor","method","getter","setter","class"][l],name:o,metadata:_,addInitializer:function(u,C){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");w(C,"An initializer","be",!0),m.push(C)}.bind(null,V)};if(K)a=tt.call(et,d,E),V.v=1,w(a,"class decorators","return")&&(d=a);else if(E.static=g,E.private=v,a=E.access={has:v?W.bind():function(u){return o in u}},F||(a.get=v?H?function(u){return $(u),c.value}:A("get",0,$):function(u){return u[o]}),H||Z||(a.set=v?A("set",0,$):function(u,C){u[o]=C}),d=tt.call(et,T?{get:c.get,set:c.set}:c[S],E),V.v=1,T){if(typeof d=="object"&&d)(a=w(d.get,"accessor.get"))&&(c.get=a),(a=w(d.set,"accessor.set"))&&(c.set=a),(a=w(d.init,"accessor.init"))&&U.unshift(a);else if(d!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else w(d,(b?"field":"method")+" decorators","return")&&(b?U.unshift(d):c[S]=d)}return l<2&&y.push(R(U,g,1),R(m,g,0)),b||K||(v?T?y.splice(-1,0,A("get",g),A("set",g)):y.push(H?c[S]:w.call.bind(c[S])):P(r,o,c)),d}function Q(r){return P(r,M,{configurable:!0,enumerable:!0,value:_})}return h!==void 0&&(_=h[M]),_=D(_??null),x=[],q=function(r){r&&x.push(R(r))},I=function(r,p){for(var f=0;f<e.length;f++){var o=e[f],l=o[1],m=7&l;if((8&l)==r&&!m==p){var y=o[2],g=!!o[3],v=16&l;J(r?i:i.prototype,o,v,g?"#"+y:Ot(y),m,m<2?[]:r?Y=Y||[]:B=B||[],x,!!r,g,p,r&&g?function(b){return Yt(b)===i}:s)}}},I(8,0),I(0,0),I(8,1),I(0,1),q(B),q(Y),a=x,G||Q(i),{e:a,get c(){var r=[];return G&&[Q(i=J(i,[t],n,i.name,5,r)),R(r,1)]}}}function Ot(i){var t=Bt(i,"string");return typeof t=="symbol"?t:t+""}function Bt(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var n=e.call(i,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function Et(i,t,e){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(i,"name",{configurable:!0,value:e?e+" "+t:t})}catch{}return i}function Yt(i){if(Object(i)!==i)throw TypeError("right-hand side of 'in' should be an object, got "+(i!==null?typeof i:"null"));return i}var At,Ht=class extends Lt{static{({e:[ht,ft,gt,pt,mt,vt,bt,wt,St,_t,yt,Ct,It,Tt,ut],c:[At,dt]}=jt(this,[$t("rui-toc")],[[L({type:String,attribute:"target",defaultValue:""}),0,"target"],[L({type:String,attribute:"heading-selector",defaultValue:"h2,h3"}),0,"headingSelector"],[L({type:String,defaultValue:"On this page"}),0,"label"],[L({type:Number,attribute:"scroll-offset",defaultValue:120}),0,"scrollOffset"],[L({type:String,attribute:"navigation-events",defaultValue:""}),0,"navigationEvents"],[xt,0,"entries"],[xt,0,"activeId"],[Nt(["target","headingSelector","scrollOffset","navigationEvents"]),2,"onScanSettingsUpdated"],[Dt,2,"onLinkClick"]],0,void 0,Lt))}target=(ut(this),ht(this,""));headingSelector=(ft(this),gt(this,"h2,h3"));label=(pt(this),mt(this,"On this page"));scrollOffset=(vt(this),bt(this,120));navigationEvents=(wt(this),St(this,""));entries=(_t(this),yt(this,[]));activeId=(Ct(this),It(this,null));headings=(Tt(this),[]);scrollRoot=null;scrollCleanup=null;navigationCleanups=[];pendingScrollTargetId=null;scrollRafPending=!1;scrollOffsetTolerance=4;readConfiguredProp(t,e){return t.trim()||this.getAttribute(e)?.trim()||""}readConfiguredNumber(t,e,n){if(Number.isFinite(t)&&t!==0)return t;let s=Number(this.getAttribute(e));return Number.isFinite(s)?s:n}connectedCallback(){super.connectedCallback(),this.attachNavigationListeners()}onConnected(){this.rebuild()}disconnectedCallback(){this.detachScrollListener(),this.detachNavigationListeners(),super.disconnectedCallback()}onScanSettingsUpdated(){this.detachNavigationListeners(),this.attachNavigationListeners(),this.rebuild()}rebuild(){this.detachScrollListener(),this.headings=[],this.entries=[],this.activeId=null,this.pendingScrollTargetId=null,this.scrollRoot=null;let t=this.resolveTarget();if(!t)return;let e=st(t,this.readConfiguredProp(this.headingSelector,"heading-selector")||"h2,h3");if(e.length===0)return;let n=new Set,s=e.map(h=>({id:lt(h,n),label:(h.textContent||"").trim(),depth:this.headingDepth(h)}));this.headings=e,this.entries=s,this.scrollRoot=this.resolveScrollRoot(t),this.attachScrollListener(),this.updateActiveHeading()}resolveTarget(){let t=this.readConfiguredProp(this.target,"target");return t?ot(document,t):this.parentElement}resolvedScrollOffset(){return this.readConfiguredNumber(this.scrollOffset,"scroll-offset",120)}resolveScrollRoot(t){let e=t;for(;e&&e!==document.documentElement&&e!==document.body;){let n=getComputedStyle(e).overflowY;if(n==="auto"||n==="scroll"||n==="overlay")return e;e=e.parentElement}return window}headingDepth(t){let e=Number.parseInt(t.tagName.slice(1),10);return Number.isFinite(e)?e:2}attachNavigationListeners(){if(Rt||!this.isConnected)return;let t=()=>this.rebuild();for(let e of rt(this.readConfiguredProp(this.navigationEvents,"navigation-events")))document.addEventListener(e,t),this.navigationCleanups.push(()=>document.removeEventListener(e,t))}detachNavigationListeners(){for(let t of this.navigationCleanups)t();this.navigationCleanups=[]}attachScrollListener(){if(Rt||!this.isConnected)return;let t=()=>{this.scrollRafPending||(this.scrollRafPending=!0,requestAnimationFrame(()=>{this.updateActiveHeading(),this.scrollRafPending=!1}))},e=this.scrollRoot??window;if(e===window){window.addEventListener("scroll",t,{passive:!0}),this.scrollCleanup=()=>window.removeEventListener("scroll",t);return}e.addEventListener("scroll",t,{passive:!0}),this.scrollCleanup=()=>e.removeEventListener("scroll",t)}detachScrollListener(){this.scrollCleanup?.(),this.scrollCleanup=null}isScrollAtBottom(){let t=this.scrollRoot??window;if(!(t instanceof HTMLElement)){let e=document.documentElement.scrollHeight,n=window.innerHeight;return e<=n+1?!1:window.scrollY+n>=e-10}return t.scrollHeight<=t.clientHeight+1?!1:t.scrollTop+t.clientHeight>=t.scrollHeight-10}activeLineY(){return at(this.scrollRoot??window,this.resolvedScrollOffset()+this.scrollOffsetTolerance)}updateActiveHeading(){if(this.headings.length===0)return;if(this.isScrollAtBottom()){this.pendingScrollTargetId=null;let n=this.headings[this.headings.length-1]?.id;n&&this.setActiveId(n);return}if(this.pendingScrollTargetId){let n=this.findHeadingById(this.pendingScrollTargetId);if(!n)this.pendingScrollTargetId=null;else if(this.hasPendingScrollReachedTarget(n))this.pendingScrollTargetId=null;else{this.setActiveId(this.pendingScrollTargetId);return}}let t=this.activeLineY(),e=null;for(let n of this.headings)if(n.getBoundingClientRect().top<=t)e=n.id;else break;this.setActiveId(e??this.headings[0].id)}setActiveId(t){this.activeId!==t&&(this.activeId=t)}findHeadingById(t){return this.headings.find(e=>e.id===t)??null}hasPendingScrollReachedTarget(t){return t.getBoundingClientRect().top<=this.activeLineY()}onLinkClick(t,e){let n=t;if(n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.button!==0)return;let s=this.findHeadingById(e);s&&(t.preventDefault(),this.pendingScrollTargetId=e,this.setActiveId(e),this.scrollToHeading(e,s))}scrollToHeading(t,e){let n=window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth";window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}#${t}`),ct(e,this.scrollRoot??window,this.resolvedScrollOffset(),n)}render(){return this.entries.length===0?null:qt("nav",{class:"rui-toc","aria-label":this.$.label,children:[this.label?O("p",{class:"rui-toc__label",children:this.$.label}):null,O("ul",{class:"rui-toc__list",children:this.entries.map(t=>O("li",{class:t.depth>=3?"rui-toc__item rui-toc__item--depth-3":"rui-toc__item",children:O("a",{href:`#${t.id}`,class:t.id===this.activeId?"rui-toc__link rui-toc__link--active":"rui-toc__link","on:click":e=>this.onLinkClick(e,t.id),children:t.label})}))})]})}static{dt()}};import{jsx as Kt}from"@ecopages/jsx/jsx-runtime";function Ut(i){return Kt("rui-toc",{...i})}export{Ut as RuiToc,At as RuiTocElement};
|
|
1
|
+
import{jsx as j,jsxs as qt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Rt,bound as Dt,customElement as $t,onUpdated as Nt,prop as L,state as xt}from"@ecopages/radiant";import{isServer as Ht}from"@ecopages/radiant/is-server";function ot(i){return i.split(",").map(t=>t.trim()).filter(t=>t.length>0)}function st(i,t){try{return i.querySelector(t)}catch{return null}}function lt(i,t){try{return Array.from(i.querySelectorAll(t))}catch{return[]}}function kt(i){return i.trim().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")}function at(i,t,e=n=>document.getElementById(n)!==null){if(i.id)return t.add(i.id),i.id;let n=kt(i.textContent||"")||"section",s=n,h=2;for(;t.has(s)||e(s);)s=`${n}-${h}`,h+=1;return i.id=s,t.add(s),s}function ct(i,t){return i instanceof HTMLElement?i.getBoundingClientRect().top+t:t}function ut(i,t,e,n){if(t instanceof HTMLElement){let s=t.getBoundingClientRect(),h=i.getBoundingClientRect();t.scrollTo({top:t.scrollTop+(h.top-s.top)-e,behavior:n});return}window.scrollTo({top:window.scrollY+i.getBoundingClientRect().top-e,behavior:n})}var dt,ht,ft,gt,pt,vt,mt,bt,wt,St,_t,yt,Ct,It,Tt,Et;function Ot(i,t,e,n,s,h){var _,a,B,Y,R,q,I,P=Symbol.metadata||Symbol.for("Symbol.metadata"),z=Object.defineProperty,D=Object.create,G=[D(null),D(null)],J=t.length;function x(r,p,f){return function(o,l){p&&(l=o,o=i);for(var v=0;v<r.length;v++)l=r[v].apply(o,f?[l]:[]);return f?l:o}}function w(r,p,f,o){if(typeof r!="function"&&(o||r!==void 0))throw new TypeError(p+" must "+(f||"be")+" a function"+(o?"":" or undefined"));return r}function Q(r,p,f,o,l,v,y,g,m,b,X){function $(u){if(!X(u))throw new TypeError("Attempted to access private element on non-instance")}var N=[].concat(p[0]),Z=p[3],K=!y,T=l===1,F=l===3,tt=l===4,H=l===2;function A(u,C,nt){return function(O,rt){return C&&(rt=O,O=r),nt&&nt(O),c[u].call(O,rt)}}if(!K){var c={},U=[],S=F?"get":tt||T?"set":"value";if(m?(b||T?c={get:Lt(function(){return Z(this)},o,"get"),set:function(u){p[4](this,u)}}:c[S]=Z,b||Lt(c[S],o,H?"":S)):b||(c=Object.getOwnPropertyDescriptor(r,o)),!b&&!m){if((a=G[+g][o])&&(a^l)!==7)throw Error("Decorating two elements with the same name ("+c[S].name+") is not supported yet");G[+g][o]=l<3?1:l}}for(var d=r,k=N.length-1;k>=0;k-=f?2:1){var et=w(N[k],"A decorator","be",!0),it=f?N[k-1]:void 0,V={},E={kind:["field","accessor","method","getter","setter","class"][l],name:o,metadata:_,addInitializer:function(u,C){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");w(C,"An initializer","be",!0),v.push(C)}.bind(null,V)};if(K)a=et.call(it,d,E),V.v=1,w(a,"class decorators","return")&&(d=a);else if(E.static=g,E.private=m,a=E.access={has:m?X.bind():function(u){return o in u}},tt||(a.get=m?H?function(u){return $(u),c.value}:A("get",0,$):function(u){return u[o]}),H||F||(a.set=m?A("set",0,$):function(u,C){u[o]=C}),d=et.call(it,T?{get:c.get,set:c.set}:c[S],E),V.v=1,T){if(typeof d=="object"&&d)(a=w(d.get,"accessor.get"))&&(c.get=a),(a=w(d.set,"accessor.set"))&&(c.set=a),(a=w(d.init,"accessor.init"))&&U.unshift(a);else if(d!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else w(d,(b?"field":"method")+" decorators","return")&&(b?U.unshift(d):c[S]=d)}return l<2&&y.push(x(U,g,1),x(v,g,0)),b||K||(m?T?y.splice(-1,0,A("get",g),A("set",g)):y.push(H?c[S]:w.call.bind(c[S])):z(r,o,c)),d}function W(r){return z(r,P,{configurable:!0,enumerable:!0,value:_})}return h!==void 0&&(_=h[P]),_=D(_??null),R=[],q=function(r){r&&R.push(x(r))},I=function(r,p){for(var f=0;f<e.length;f++){var o=e[f],l=o[1],v=7&l;if((8&l)==r&&!v==p){var y=o[2],g=!!o[3],m=16&l;Q(r?i:i.prototype,o,m,g?"#"+y:jt(y),v,v<2?[]:r?Y=Y||[]:B=B||[],R,!!r,g,p,r&&g?function(b){return Yt(b)===i}:s)}}},I(8,0),I(0,0),I(8,1),I(0,1),q(B),q(Y),a=R,J||W(i),{e:a,get c(){var r=[];return J&&[W(i=Q(i,[t],n,i.name,5,r)),x(r,1)]}}}function jt(i){var t=Bt(i,"string");return typeof t=="symbol"?t:t+""}function Bt(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var n=e.call(i,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function Lt(i,t,e){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(i,"name",{configurable:!0,value:e?e+" "+t:t})}catch{}return i}function Yt(i){if(Object(i)!==i)throw TypeError("right-hand side of 'in' should be an object, got "+(i!==null?typeof i:"null"));return i}var M,At=class extends Rt{static{({e:[ft,gt,pt,vt,mt,bt,wt,St,_t,yt,Ct,It,Tt,Et,dt],c:[M,ht]}=Ot(this,[$t("rui-toc")],[[L({type:String,attribute:"target",defaultValue:""}),0,"target"],[L({type:String,attribute:"heading-selector",defaultValue:"h2,h3"}),0,"headingSelector"],[L({type:String,defaultValue:"On this page"}),0,"label"],[L({type:Number,attribute:"scroll-offset",defaultValue:120}),0,"scrollOffset"],[L({type:String,attribute:"navigation-events",defaultValue:""}),0,"navigationEvents"],[xt,0,"entries"],[xt,0,"activeId"],[Nt(["target","headingSelector","scrollOffset","navigationEvents"]),2,"onScanSettingsUpdated"],[Dt,2,"onLinkClick"]],0,void 0,Rt))}target=(dt(this),ft(this,""));headingSelector=(gt(this),pt(this,"h2,h3"));label=(vt(this),mt(this,"On this page"));scrollOffset=(bt(this),wt(this,120));navigationEvents=(St(this),_t(this,""));entries=(yt(this),Ct(this,[]));activeId=(It(this),Tt(this,null));headings=(Et(this),[]);scrollRoot=null;scrollCleanup=null;navigationCleanups=[];pendingScrollTargetId=null;scrollRafPending=!1;scrollOffsetTolerance=4;readConfiguredProp(t,e){return t.trim()||this.getAttribute(e)?.trim()||""}readConfiguredNumber(t,e,n){if(Number.isFinite(t)&&t!==0)return t;let s=Number(this.getAttribute(e));return Number.isFinite(s)?s:n}connectedCallback(){super.connectedCallback(),this.attachNavigationListeners()}onConnected(){this.rebuild()}disconnectedCallback(){this.detachScrollListener(),this.detachNavigationListeners(),super.disconnectedCallback()}onScanSettingsUpdated(){this.detachNavigationListeners(),this.attachNavigationListeners(),this.rebuild()}rebuild(){this.detachScrollListener(),this.headings=[],this.entries=[],this.activeId=null,this.pendingScrollTargetId=null,this.scrollRoot=null;let t=this.resolveTarget();if(!t)return;let e=lt(t,this.readConfiguredProp(this.headingSelector,"heading-selector")||"h2,h3");if(e.length===0)return;let n=new Set,s=e.map(h=>({id:at(h,n),label:(h.textContent||"").trim(),depth:this.headingDepth(h)}));this.headings=e,this.entries=s,this.scrollRoot=this.resolveScrollRoot(t),this.attachScrollListener(),this.updateActiveHeading()}resolveTarget(){let t=this.readConfiguredProp(this.target,"target");return t?st(document,t):this.parentElement}resolvedScrollOffset(){return this.readConfiguredNumber(this.scrollOffset,"scroll-offset",120)}resolveScrollRoot(t){let e=t;for(;e&&e!==document.documentElement&&e!==document.body;){let n=getComputedStyle(e).overflowY;if(n==="auto"||n==="scroll"||n==="overlay")return e;e=e.parentElement}return window}headingDepth(t){let e=Number.parseInt(t.tagName.slice(1),10);return Number.isFinite(e)?e:2}attachNavigationListeners(){if(Ht||!this.isConnected)return;let t=()=>this.rebuild();for(let e of ot(this.readConfiguredProp(this.navigationEvents,"navigation-events")))document.addEventListener(e,t),this.navigationCleanups.push(()=>document.removeEventListener(e,t))}detachNavigationListeners(){for(let t of this.navigationCleanups)t();this.navigationCleanups=[]}attachScrollListener(){if(Ht||!this.isConnected)return;let t=()=>{this.scrollRafPending||(this.scrollRafPending=!0,requestAnimationFrame(()=>{this.updateActiveHeading(),this.scrollRafPending=!1}))},e=this.scrollRoot??window;if(e===window){window.addEventListener("scroll",t,{passive:!0}),this.scrollCleanup=()=>window.removeEventListener("scroll",t);return}e.addEventListener("scroll",t,{passive:!0}),this.scrollCleanup=()=>e.removeEventListener("scroll",t)}detachScrollListener(){this.scrollCleanup?.(),this.scrollCleanup=null}isScrollAtBottom(){let t=this.scrollRoot??window;if(!(t instanceof HTMLElement)){let e=document.documentElement.scrollHeight,n=window.innerHeight;return e<=n+1?!1:window.scrollY+n>=e-10}return t.scrollHeight<=t.clientHeight+1?!1:t.scrollTop+t.clientHeight>=t.scrollHeight-10}activeLineY(){return ct(this.scrollRoot??window,this.resolvedScrollOffset()+this.scrollOffsetTolerance)}updateActiveHeading(){if(this.headings.length===0)return;if(this.isScrollAtBottom()){this.pendingScrollTargetId=null;let n=this.headings[this.headings.length-1]?.id;n&&this.setActiveId(n);return}if(this.pendingScrollTargetId){let n=this.findHeadingById(this.pendingScrollTargetId);if(!n)this.pendingScrollTargetId=null;else if(this.hasPendingScrollReachedTarget(n))this.pendingScrollTargetId=null;else{this.setActiveId(this.pendingScrollTargetId);return}}let t=this.activeLineY(),e=null;for(let n of this.headings)if(n.getBoundingClientRect().top<=t)e=n.id;else break;this.setActiveId(e??this.headings[0].id)}setActiveId(t){this.activeId!==t&&(this.activeId=t)}findHeadingById(t){return this.headings.find(e=>e.id===t)??null}hasPendingScrollReachedTarget(t){return t.getBoundingClientRect().top<=this.activeLineY()}onLinkClick(t,e){let n=t;if(n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.button!==0)return;let s=this.findHeadingById(e);s&&(t.preventDefault(),this.pendingScrollTargetId=e,this.setActiveId(e),this.scrollToHeading(e,s))}scrollToHeading(t,e){let n=window.matchMedia("(prefers-reduced-motion: reduce)").matches?"auto":"smooth";window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}#${t}`),ut(e,this.scrollRoot??window,this.resolvedScrollOffset(),n)}render(){return this.entries.length===0?null:qt("nav",{class:"rui-toc","aria-label":this.$.label,children:[this.label?j("p",{class:"rui-toc__label",children:this.$.label}):null,j("ul",{class:"rui-toc__list",children:this.entries.map(t=>j("li",{class:t.depth>=3?"rui-toc__item rui-toc__item--depth-3":"rui-toc__item",children:j("a",{href:`#${t.id}`,class:t.id===this.activeId?"rui-toc__link rui-toc__link--active":"rui-toc__link","on:click":e=>this.onLinkClick(e,t.id),children:t.label})}))})]})}static{ht()}};export{M as RuiToc,M as RuiTocElement};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/ui/toc/toc.script.tsx", "../../../../src/lib/comma-separated.ts", "../../../../src/components/ui/toc/toc-helpers.ts"
|
|
4
|
-
"sourcesContent": ["let _initProto, _initClass, _init_target, _init_extra_target, _init_headingSelector, _init_extra_headingSelector, _init_label, _init_extra_label, _init_scrollOffset, _init_extra_scrollOffset, _init_navigationEvents, _init_extra_navigationEvents, _init_entries, _init_extra_entries, _init_activeId, _init_extra_activeId;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, bound, customElement, onUpdated, prop, state } from \"@ecopages/radiant\";\nimport { isServer } from \"@ecopages/radiant/is-server\";\nimport { parseCommaSeparated } from \"@/lib/comma-separated\";\nimport { ensureUniqueHeadingId, querySelectorAllSafe, querySelectorSafe, scrollHeadingIntoView, trackingLineY } from \"./toc-helpers\";\nlet _RuiToc;\nclass RuiToc extends RadiantElement {\n static {\n ({\n e: [_init_target, _init_extra_target, _init_headingSelector, _init_extra_headingSelector, _init_label, _init_extra_label, _init_scrollOffset, _init_extra_scrollOffset, _init_navigationEvents, _init_extra_navigationEvents, _init_entries, _init_extra_entries, _init_activeId, _init_extra_activeId, _initProto],\n c: [_RuiToc, _initClass]\n } = _applyDecs(this, [customElement(\"rui-toc\")], [[prop({\n type: String,\n attribute: \"target\",\n defaultValue: \"\"\n }), 0, \"target\"], [prop({\n type: String,\n attribute: \"heading-selector\",\n defaultValue: \"h2,h3\"\n }), 0, \"headingSelector\"], [prop({\n type: String,\n defaultValue: \"On this page\"\n }), 0, \"label\"], [prop({\n type: Number,\n attribute: \"scroll-offset\",\n defaultValue: 120\n }), 0, \"scrollOffset\"], [prop({\n type: String,\n attribute: \"navigation-events\",\n defaultValue: \"\"\n }), 0, \"navigationEvents\"], [state, 0, \"entries\"], [state, 0, \"activeId\"], [onUpdated([\"target\", \"headingSelector\", \"scrollOffset\", \"navigationEvents\"]), 2, \"onScanSettingsUpdated\"], [bound, 2, \"onLinkClick\"]], 0, void 0, RadiantElement));\n }\n target = (_initProto(this), _init_target(this, \"\"));\n headingSelector = (_init_extra_target(this), _init_headingSelector(this, \"h2,h3\"));\n label = (_init_extra_headingSelector(this), _init_label(this, \"On this page\"));\n scrollOffset = (_init_extra_label(this), _init_scrollOffset(this, 120));\n navigationEvents = (_init_extra_scrollOffset(this), _init_navigationEvents(this, \"\"));\n entries = (_init_extra_navigationEvents(this), _init_entries(this, []));\n activeId = (_init_extra_entries(this), _init_activeId(this, null));\n headings = (_init_extra_activeId(this), []);\n scrollRoot = null;\n scrollCleanup = null;\n navigationCleanups = [];\n pendingScrollTargetId = null;\n scrollRafPending = false;\n scrollOffsetTolerance = 4;\n readConfiguredProp(propValue, attributeName) {\n return propValue.trim() || this.getAttribute(attributeName)?.trim() || \"\";\n }\n readConfiguredNumber(propValue, attributeName, fallback) {\n if (Number.isFinite(propValue) && propValue !== 0) {\n return propValue;\n }\n const fromAttribute = Number(this.getAttribute(attributeName));\n return Number.isFinite(fromAttribute) ? fromAttribute : fallback;\n }\n connectedCallback() {\n super.connectedCallback();\n this.attachNavigationListeners();\n }\n onConnected() {\n this.rebuild();\n }\n disconnectedCallback() {\n this.detachScrollListener();\n this.detachNavigationListeners();\n super.disconnectedCallback();\n }\n onScanSettingsUpdated() {\n this.detachNavigationListeners();\n this.attachNavigationListeners();\n this.rebuild();\n }\n rebuild() {\n this.detachScrollListener();\n this.headings = [];\n this.entries = [];\n this.activeId = null;\n this.pendingScrollTargetId = null;\n this.scrollRoot = null;\n const root = this.resolveTarget();\n if (!root) {\n return;\n }\n const headings = querySelectorAllSafe(root, this.readConfiguredProp(this.headingSelector, \"heading-selector\") || \"h2,h3\");\n if (headings.length === 0) {\n return;\n }\n const usedIds = /* @__PURE__ */new Set();\n const entries = headings.map(heading => {\n const id = ensureUniqueHeadingId(heading, usedIds);\n return {\n id,\n label: (heading.textContent || \"\").trim(),\n depth: this.headingDepth(heading)\n };\n });\n this.headings = headings;\n this.entries = entries;\n this.scrollRoot = this.resolveScrollRoot(root);\n this.attachScrollListener();\n this.updateActiveHeading();\n }\n resolveTarget() {\n const selector = this.readConfiguredProp(this.target, \"target\");\n if (selector) {\n return querySelectorSafe(document, selector);\n }\n return this.parentElement;\n }\n resolvedScrollOffset() {\n return this.readConfiguredNumber(this.scrollOffset, \"scroll-offset\", 120);\n }\n /**\n * Nearest ancestor (including the target) that scrolls vertically, else `window`.\n */\n resolveScrollRoot(from) {\n let node = from;\n while (node && node !== document.documentElement && node !== document.body) {\n const overflowY = getComputedStyle(node).overflowY;\n if (overflowY === \"auto\" || overflowY === \"scroll\" || overflowY === \"overlay\") {\n return node;\n }\n node = node.parentElement;\n }\n return window;\n }\n headingDepth(heading) {\n const level = Number.parseInt(heading.tagName.slice(1), 10);\n return Number.isFinite(level) ? level : 2;\n }\n attachNavigationListeners() {\n if (isServer || !this.isConnected) {\n return;\n }\n const handler = () => this.rebuild();\n for (const eventName of parseCommaSeparated(this.readConfiguredProp(this.navigationEvents, \"navigation-events\"))) {\n document.addEventListener(eventName, handler);\n this.navigationCleanups.push(() => document.removeEventListener(eventName, handler));\n }\n }\n detachNavigationListeners() {\n for (const cleanup of this.navigationCleanups) {\n cleanup();\n }\n this.navigationCleanups = [];\n }\n attachScrollListener() {\n if (isServer || !this.isConnected) {\n return;\n }\n const onScroll = () => {\n if (this.scrollRafPending) {\n return;\n }\n this.scrollRafPending = true;\n requestAnimationFrame(() => {\n this.updateActiveHeading();\n this.scrollRafPending = false;\n });\n };\n const root = this.scrollRoot ?? window;\n if (root === window) {\n window.addEventListener(\"scroll\", onScroll, {\n passive: true\n });\n this.scrollCleanup = () => window.removeEventListener(\"scroll\", onScroll);\n return;\n }\n root.addEventListener(\"scroll\", onScroll, {\n passive: true\n });\n this.scrollCleanup = () => root.removeEventListener(\"scroll\", onScroll);\n }\n detachScrollListener() {\n this.scrollCleanup?.();\n this.scrollCleanup = null;\n }\n isScrollAtBottom() {\n const root = this.scrollRoot ?? window;\n if (!(root instanceof HTMLElement)) {\n const scrollHeight = document.documentElement.scrollHeight;\n const viewport = window.innerHeight;\n if (scrollHeight <= viewport + 1) {\n return false;\n }\n return window.scrollY + viewport >= scrollHeight - 10;\n }\n if (root.scrollHeight <= root.clientHeight + 1) {\n return false;\n }\n return root.scrollTop + root.clientHeight >= root.scrollHeight - 10;\n }\n activeLineY() {\n return trackingLineY(this.scrollRoot ?? window, this.resolvedScrollOffset() + this.scrollOffsetTolerance);\n }\n updateActiveHeading() {\n if (this.headings.length === 0) {\n return;\n }\n if (this.isScrollAtBottom()) {\n this.pendingScrollTargetId = null;\n const lastId = this.headings[this.headings.length - 1]?.id;\n if (lastId) {\n this.setActiveId(lastId);\n }\n return;\n }\n if (this.pendingScrollTargetId) {\n const pendingHeading = this.findHeadingById(this.pendingScrollTargetId);\n if (!pendingHeading) {\n this.pendingScrollTargetId = null;\n } else if (!this.hasPendingScrollReachedTarget(pendingHeading)) {\n this.setActiveId(this.pendingScrollTargetId);\n return;\n } else {\n this.pendingScrollTargetId = null;\n }\n }\n const lineY = this.activeLineY();\n let activeId = null;\n for (const heading of this.headings) {\n if (heading.getBoundingClientRect().top <= lineY) {\n activeId = heading.id;\n } else {\n break;\n }\n }\n this.setActiveId(activeId ?? this.headings[0].id);\n }\n setActiveId(id) {\n if (this.activeId === id) {\n return;\n }\n this.activeId = id;\n }\n findHeadingById(id) {\n return this.headings.find(heading => heading.id === id) ?? null;\n }\n hasPendingScrollReachedTarget(heading) {\n return heading.getBoundingClientRect().top <= this.activeLineY();\n }\n onLinkClick(event, id) {\n const mouseEvent = event;\n if (mouseEvent.metaKey || mouseEvent.ctrlKey || mouseEvent.shiftKey || mouseEvent.altKey || mouseEvent.button !== 0) {\n return;\n }\n const heading = this.findHeadingById(id);\n if (!heading) {\n return;\n }\n event.preventDefault();\n this.pendingScrollTargetId = id;\n this.setActiveId(id);\n this.scrollToHeading(id, heading);\n }\n scrollToHeading(id, heading) {\n const behavior = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches ? \"auto\" : \"smooth\";\n window.history.replaceState(window.history.state, \"\", `${window.location.pathname}${window.location.search}#${id}`);\n scrollHeadingIntoView(heading, this.scrollRoot ?? window, this.resolvedScrollOffset(), behavior);\n }\n render() {\n if (this.entries.length === 0) {\n return null;\n }\n return /* @__PURE__ */jsxs(\"nav\", {\n class: \"rui-toc\",\n \"aria-label\": this.$.label,\n children: [this.label ? /* @__PURE__ */jsx(\"p\", {\n class: \"rui-toc__label\",\n children: this.$.label\n }) : null, /* @__PURE__ */jsx(\"ul\", {\n class: \"rui-toc__list\",\n children: this.entries.map(entry => /* @__PURE__ */jsx(\"li\", {\n class: entry.depth >= 3 ? \"rui-toc__item rui-toc__item--depth-3\" : \"rui-toc__item\",\n children: /* @__PURE__ */jsx(\"a\", {\n href: `#${entry.id}`,\n class: entry.id === this.activeId ? \"rui-toc__link rui-toc__link--active\" : \"rui-toc__link\",\n \"on:click\": event => this.onLinkClick(event, entry.id),\n children: entry.label\n })\n }))\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiToc as RuiToc };", "export function parseCommaSeparated(value) {\n return value.split(\",\").map(name => name.trim()).filter(name => name.length > 0);\n}", "export function querySelectorSafe(root, selector) {\n try {\n return root.querySelector(selector);\n } catch {\n return null;\n }\n}\nexport function querySelectorAllSafe(root, selector) {\n try {\n return Array.from(root.querySelectorAll(selector));\n } catch {\n return [];\n }\n}\nexport function slugifyHeadingText(text) {\n return text.trim().toLowerCase().replace(/\\s+/g, \"-\").replace(/[^\\w-]/g, \"\");\n}\nexport function ensureUniqueHeadingId(heading, usedIds, isTaken = id => document.getElementById(id) !== null) {\n if (heading.id) {\n usedIds.add(heading.id);\n return heading.id;\n }\n const base = slugifyHeadingText(heading.textContent || \"\") || \"section\";\n let id = base;\n let suffix = 2;\n while (usedIds.has(id) || isTaken(id)) {\n id = `${base}-${suffix}`;\n suffix += 1;\n }\n heading.id = id;\n usedIds.add(id);\n return id;\n}\nexport function trackingLineY(scrollRoot, scrollOffset) {\n if (scrollRoot instanceof HTMLElement) {\n return scrollRoot.getBoundingClientRect().top + scrollOffset;\n }\n return scrollOffset;\n}\nexport function scrollHeadingIntoView(heading, scrollRoot, scrollOffset, behavior) {\n if (scrollRoot instanceof HTMLElement) {\n const rootRect = scrollRoot.getBoundingClientRect();\n const headingRect = heading.getBoundingClientRect();\n scrollRoot.scrollTo({\n top: scrollRoot.scrollTop + (headingRect.top - rootRect.top) - scrollOffset,\n behavior\n });\n return;\n }\n window.scrollTo({\n top: window.scrollY + heading.getBoundingClientRect().top - scrollOffset,\n behavior\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./toc.script\";\nexport function RuiToc(props) {\n return /* @__PURE__ */jsx(\"rui-toc\", {\n ...props\n });\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["jsx", "jsxs", "RadiantElement", "bound", "customElement", "onUpdated", "prop", "state", "isServer", "parseCommaSeparated", "value", "name", "querySelectorSafe", "root", "selector", "querySelectorAllSafe", "slugifyHeadingText", "text", "ensureUniqueHeadingId", "heading", "usedIds", "isTaken", "id", "base", "suffix", "trackingLineY", "scrollRoot", "scrollOffset", "scrollHeadingIntoView", "behavior", "rootRect", "headingRect", "_initProto", "_initClass", "_init_target", "_init_extra_target", "_init_headingSelector", "_init_extra_headingSelector", "_init_label", "_init_extra_label", "_init_scrollOffset", "_init_extra_scrollOffset", "_init_navigationEvents", "_init_extra_navigationEvents", "_init_entries", "_init_extra_entries", "_init_activeId", "_init_extra_activeId", "_applyDecs", "e", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiToc", "RuiToc", "RadiantElement", "customElement", "prop", "state", "onUpdated", "bound", "propValue", "attributeName", "fallback", "fromAttribute", "root", "headings", "querySelectorAllSafe", "usedIds", "entries", "heading", "ensureUniqueHeadingId", "selector", "querySelectorSafe", "from", "node", "overflowY", "level", "isServer", "handler", "eventName", "parseCommaSeparated", "cleanup", "onScroll", "scrollHeight", "viewport", "trackingLineY", "lastId", "pendingHeading", "lineY", "activeId", "id", "event", "mouseEvent", "behavior", "scrollHeadingIntoView", "jsxs", "jsx", "entry"
|
|
3
|
+
"sources": ["../../../../src/components/ui/toc/toc.script.tsx", "../../../../src/lib/comma-separated.ts", "../../../../src/components/ui/toc/toc-helpers.ts"],
|
|
4
|
+
"sourcesContent": ["let _initProto, _initClass, _init_target, _init_extra_target, _init_headingSelector, _init_extra_headingSelector, _init_label, _init_extra_label, _init_scrollOffset, _init_extra_scrollOffset, _init_navigationEvents, _init_extra_navigationEvents, _init_entries, _init_extra_entries, _init_activeId, _init_extra_activeId;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, bound, customElement, onUpdated, prop, state } from \"@ecopages/radiant\";\nimport { isServer } from \"@ecopages/radiant/is-server\";\nimport { parseCommaSeparated } from \"@/lib/comma-separated\";\nimport { ensureUniqueHeadingId, querySelectorAllSafe, querySelectorSafe, scrollHeadingIntoView, trackingLineY } from \"./toc-helpers\";\nlet _RuiToc;\nclass RuiToc extends RadiantElement {\n static {\n ({\n e: [_init_target, _init_extra_target, _init_headingSelector, _init_extra_headingSelector, _init_label, _init_extra_label, _init_scrollOffset, _init_extra_scrollOffset, _init_navigationEvents, _init_extra_navigationEvents, _init_entries, _init_extra_entries, _init_activeId, _init_extra_activeId, _initProto],\n c: [_RuiToc, _initClass]\n } = _applyDecs(this, [customElement(\"rui-toc\")], [[prop({\n type: String,\n attribute: \"target\",\n defaultValue: \"\"\n }), 0, \"target\"], [prop({\n type: String,\n attribute: \"heading-selector\",\n defaultValue: \"h2,h3\"\n }), 0, \"headingSelector\"], [prop({\n type: String,\n defaultValue: \"On this page\"\n }), 0, \"label\"], [prop({\n type: Number,\n attribute: \"scroll-offset\",\n defaultValue: 120\n }), 0, \"scrollOffset\"], [prop({\n type: String,\n attribute: \"navigation-events\",\n defaultValue: \"\"\n }), 0, \"navigationEvents\"], [state, 0, \"entries\"], [state, 0, \"activeId\"], [onUpdated([\"target\", \"headingSelector\", \"scrollOffset\", \"navigationEvents\"]), 2, \"onScanSettingsUpdated\"], [bound, 2, \"onLinkClick\"]], 0, void 0, RadiantElement));\n }\n target = (_initProto(this), _init_target(this, \"\"));\n headingSelector = (_init_extra_target(this), _init_headingSelector(this, \"h2,h3\"));\n label = (_init_extra_headingSelector(this), _init_label(this, \"On this page\"));\n scrollOffset = (_init_extra_label(this), _init_scrollOffset(this, 120));\n navigationEvents = (_init_extra_scrollOffset(this), _init_navigationEvents(this, \"\"));\n entries = (_init_extra_navigationEvents(this), _init_entries(this, []));\n activeId = (_init_extra_entries(this), _init_activeId(this, null));\n headings = (_init_extra_activeId(this), []);\n scrollRoot = null;\n scrollCleanup = null;\n navigationCleanups = [];\n pendingScrollTargetId = null;\n scrollRafPending = false;\n scrollOffsetTolerance = 4;\n readConfiguredProp(propValue, attributeName) {\n return propValue.trim() || this.getAttribute(attributeName)?.trim() || \"\";\n }\n readConfiguredNumber(propValue, attributeName, fallback) {\n if (Number.isFinite(propValue) && propValue !== 0) {\n return propValue;\n }\n const fromAttribute = Number(this.getAttribute(attributeName));\n return Number.isFinite(fromAttribute) ? fromAttribute : fallback;\n }\n connectedCallback() {\n super.connectedCallback();\n this.attachNavigationListeners();\n }\n onConnected() {\n this.rebuild();\n }\n disconnectedCallback() {\n this.detachScrollListener();\n this.detachNavigationListeners();\n super.disconnectedCallback();\n }\n onScanSettingsUpdated() {\n this.detachNavigationListeners();\n this.attachNavigationListeners();\n this.rebuild();\n }\n rebuild() {\n this.detachScrollListener();\n this.headings = [];\n this.entries = [];\n this.activeId = null;\n this.pendingScrollTargetId = null;\n this.scrollRoot = null;\n const root = this.resolveTarget();\n if (!root) {\n return;\n }\n const headings = querySelectorAllSafe(root, this.readConfiguredProp(this.headingSelector, \"heading-selector\") || \"h2,h3\");\n if (headings.length === 0) {\n return;\n }\n const usedIds = /* @__PURE__ */new Set();\n const entries = headings.map(heading => {\n const id = ensureUniqueHeadingId(heading, usedIds);\n return {\n id,\n label: (heading.textContent || \"\").trim(),\n depth: this.headingDepth(heading)\n };\n });\n this.headings = headings;\n this.entries = entries;\n this.scrollRoot = this.resolveScrollRoot(root);\n this.attachScrollListener();\n this.updateActiveHeading();\n }\n resolveTarget() {\n const selector = this.readConfiguredProp(this.target, \"target\");\n if (selector) {\n return querySelectorSafe(document, selector);\n }\n return this.parentElement;\n }\n resolvedScrollOffset() {\n return this.readConfiguredNumber(this.scrollOffset, \"scroll-offset\", 120);\n }\n /**\n * Nearest ancestor (including the target) that scrolls vertically, else `window`.\n */\n resolveScrollRoot(from) {\n let node = from;\n while (node && node !== document.documentElement && node !== document.body) {\n const overflowY = getComputedStyle(node).overflowY;\n if (overflowY === \"auto\" || overflowY === \"scroll\" || overflowY === \"overlay\") {\n return node;\n }\n node = node.parentElement;\n }\n return window;\n }\n headingDepth(heading) {\n const level = Number.parseInt(heading.tagName.slice(1), 10);\n return Number.isFinite(level) ? level : 2;\n }\n attachNavigationListeners() {\n if (isServer || !this.isConnected) {\n return;\n }\n const handler = () => this.rebuild();\n for (const eventName of parseCommaSeparated(this.readConfiguredProp(this.navigationEvents, \"navigation-events\"))) {\n document.addEventListener(eventName, handler);\n this.navigationCleanups.push(() => document.removeEventListener(eventName, handler));\n }\n }\n detachNavigationListeners() {\n for (const cleanup of this.navigationCleanups) {\n cleanup();\n }\n this.navigationCleanups = [];\n }\n attachScrollListener() {\n if (isServer || !this.isConnected) {\n return;\n }\n const onScroll = () => {\n if (this.scrollRafPending) {\n return;\n }\n this.scrollRafPending = true;\n requestAnimationFrame(() => {\n this.updateActiveHeading();\n this.scrollRafPending = false;\n });\n };\n const root = this.scrollRoot ?? window;\n if (root === window) {\n window.addEventListener(\"scroll\", onScroll, {\n passive: true\n });\n this.scrollCleanup = () => window.removeEventListener(\"scroll\", onScroll);\n return;\n }\n root.addEventListener(\"scroll\", onScroll, {\n passive: true\n });\n this.scrollCleanup = () => root.removeEventListener(\"scroll\", onScroll);\n }\n detachScrollListener() {\n this.scrollCleanup?.();\n this.scrollCleanup = null;\n }\n isScrollAtBottom() {\n const root = this.scrollRoot ?? window;\n if (!(root instanceof HTMLElement)) {\n const scrollHeight = document.documentElement.scrollHeight;\n const viewport = window.innerHeight;\n if (scrollHeight <= viewport + 1) {\n return false;\n }\n return window.scrollY + viewport >= scrollHeight - 10;\n }\n if (root.scrollHeight <= root.clientHeight + 1) {\n return false;\n }\n return root.scrollTop + root.clientHeight >= root.scrollHeight - 10;\n }\n activeLineY() {\n return trackingLineY(this.scrollRoot ?? window, this.resolvedScrollOffset() + this.scrollOffsetTolerance);\n }\n updateActiveHeading() {\n if (this.headings.length === 0) {\n return;\n }\n if (this.isScrollAtBottom()) {\n this.pendingScrollTargetId = null;\n const lastId = this.headings[this.headings.length - 1]?.id;\n if (lastId) {\n this.setActiveId(lastId);\n }\n return;\n }\n if (this.pendingScrollTargetId) {\n const pendingHeading = this.findHeadingById(this.pendingScrollTargetId);\n if (!pendingHeading) {\n this.pendingScrollTargetId = null;\n } else if (!this.hasPendingScrollReachedTarget(pendingHeading)) {\n this.setActiveId(this.pendingScrollTargetId);\n return;\n } else {\n this.pendingScrollTargetId = null;\n }\n }\n const lineY = this.activeLineY();\n let activeId = null;\n for (const heading of this.headings) {\n if (heading.getBoundingClientRect().top <= lineY) {\n activeId = heading.id;\n } else {\n break;\n }\n }\n this.setActiveId(activeId ?? this.headings[0].id);\n }\n setActiveId(id) {\n if (this.activeId === id) {\n return;\n }\n this.activeId = id;\n }\n findHeadingById(id) {\n return this.headings.find(heading => heading.id === id) ?? null;\n }\n hasPendingScrollReachedTarget(heading) {\n return heading.getBoundingClientRect().top <= this.activeLineY();\n }\n onLinkClick(event, id) {\n const mouseEvent = event;\n if (mouseEvent.metaKey || mouseEvent.ctrlKey || mouseEvent.shiftKey || mouseEvent.altKey || mouseEvent.button !== 0) {\n return;\n }\n const heading = this.findHeadingById(id);\n if (!heading) {\n return;\n }\n event.preventDefault();\n this.pendingScrollTargetId = id;\n this.setActiveId(id);\n this.scrollToHeading(id, heading);\n }\n scrollToHeading(id, heading) {\n const behavior = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches ? \"auto\" : \"smooth\";\n window.history.replaceState(window.history.state, \"\", `${window.location.pathname}${window.location.search}#${id}`);\n scrollHeadingIntoView(heading, this.scrollRoot ?? window, this.resolvedScrollOffset(), behavior);\n }\n render() {\n if (this.entries.length === 0) {\n return null;\n }\n return /* @__PURE__ */jsxs(\"nav\", {\n class: \"rui-toc\",\n \"aria-label\": this.$.label,\n children: [this.label ? /* @__PURE__ */jsx(\"p\", {\n class: \"rui-toc__label\",\n children: this.$.label\n }) : null, /* @__PURE__ */jsx(\"ul\", {\n class: \"rui-toc__list\",\n children: this.entries.map(entry => /* @__PURE__ */jsx(\"li\", {\n class: entry.depth >= 3 ? \"rui-toc__item rui-toc__item--depth-3\" : \"rui-toc__item\",\n children: /* @__PURE__ */jsx(\"a\", {\n href: `#${entry.id}`,\n class: entry.id === this.activeId ? \"rui-toc__link rui-toc__link--active\" : \"rui-toc__link\",\n \"on:click\": event => this.onLinkClick(event, entry.id),\n children: entry.label\n })\n }))\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiToc as RuiToc };", "export function parseCommaSeparated(value) {\n return value.split(\",\").map(name => name.trim()).filter(name => name.length > 0);\n}", "export function querySelectorSafe(root, selector) {\n try {\n return root.querySelector(selector);\n } catch {\n return null;\n }\n}\nexport function querySelectorAllSafe(root, selector) {\n try {\n return Array.from(root.querySelectorAll(selector));\n } catch {\n return [];\n }\n}\nexport function slugifyHeadingText(text) {\n return text.trim().toLowerCase().replace(/\\s+/g, \"-\").replace(/[^\\w-]/g, \"\");\n}\nexport function ensureUniqueHeadingId(heading, usedIds, isTaken = id => document.getElementById(id) !== null) {\n if (heading.id) {\n usedIds.add(heading.id);\n return heading.id;\n }\n const base = slugifyHeadingText(heading.textContent || \"\") || \"section\";\n let id = base;\n let suffix = 2;\n while (usedIds.has(id) || isTaken(id)) {\n id = `${base}-${suffix}`;\n suffix += 1;\n }\n heading.id = id;\n usedIds.add(id);\n return id;\n}\nexport function trackingLineY(scrollRoot, scrollOffset) {\n if (scrollRoot instanceof HTMLElement) {\n return scrollRoot.getBoundingClientRect().top + scrollOffset;\n }\n return scrollOffset;\n}\nexport function scrollHeadingIntoView(heading, scrollRoot, scrollOffset, behavior) {\n if (scrollRoot instanceof HTMLElement) {\n const rootRect = scrollRoot.getBoundingClientRect();\n const headingRect = heading.getBoundingClientRect();\n scrollRoot.scrollTo({\n top: scrollRoot.scrollTop + (headingRect.top - rootRect.top) - scrollOffset,\n behavior\n });\n return;\n }\n window.scrollTo({\n top: window.scrollY + heading.getBoundingClientRect().top - scrollOffset,\n behavior\n });\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "jsxs", "RadiantElement", "bound", "customElement", "onUpdated", "prop", "state", "isServer", "parseCommaSeparated", "value", "name", "querySelectorSafe", "root", "selector", "querySelectorAllSafe", "slugifyHeadingText", "text", "ensureUniqueHeadingId", "heading", "usedIds", "isTaken", "id", "base", "suffix", "trackingLineY", "scrollRoot", "scrollOffset", "scrollHeadingIntoView", "behavior", "rootRect", "headingRect", "_initProto", "_initClass", "_init_target", "_init_extra_target", "_init_headingSelector", "_init_extra_headingSelector", "_init_label", "_init_extra_label", "_init_scrollOffset", "_init_extra_scrollOffset", "_init_navigationEvents", "_init_extra_navigationEvents", "_init_entries", "_init_extra_entries", "_init_activeId", "_init_extra_activeId", "_applyDecs", "e", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiToc", "RuiToc", "RadiantElement", "customElement", "prop", "state", "onUpdated", "bound", "propValue", "attributeName", "fallback", "fromAttribute", "root", "headings", "querySelectorAllSafe", "usedIds", "entries", "heading", "ensureUniqueHeadingId", "selector", "querySelectorSafe", "from", "node", "overflowY", "level", "isServer", "handler", "eventName", "parseCommaSeparated", "cleanup", "onScroll", "scrollHeight", "viewport", "trackingLineY", "lastId", "pendingHeading", "lineY", "activeId", "id", "event", "mouseEvent", "behavior", "scrollHeadingIntoView", "jsxs", "jsx", "entry"]
|
|
7
7
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { WithoutChildren } from '../../../lib/without-children';
|
|
2
|
+
import type { JSX_PROPS } from '@ecopages/jsx';
|
|
1
3
|
import { RadiantElement } from '@ecopages/radiant';
|
|
2
4
|
export type RuiTocProps = {
|
|
3
5
|
/** CSS selector for the content root that contains headings. */
|
|
@@ -52,6 +54,7 @@ type RuiTocBindings = {
|
|
|
52
54
|
* @cssclass rui-toc__link--active - Link for the section currently in view.
|
|
53
55
|
*/
|
|
54
56
|
export declare class RuiToc extends RadiantElement<RuiTocBindings> {
|
|
57
|
+
readonly [JSX_PROPS]?: WithoutChildren<RuiTocProps>;
|
|
55
58
|
target: string;
|
|
56
59
|
headingSelector: string;
|
|
57
60
|
label: string;
|
|
@@ -94,4 +97,9 @@ export declare class RuiToc extends RadiantElement<RuiTocBindings> {
|
|
|
94
97
|
private scrollToHeading;
|
|
95
98
|
render(): import("@ecopages/jsx").JsxRenderable;
|
|
96
99
|
}
|
|
100
|
+
declare global {
|
|
101
|
+
interface HTMLElementTagNameMap {
|
|
102
|
+
'rui-toc': RuiToc;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
97
105
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{RadiantElement as
|
|
1
|
+
import{RadiantElement as gt,customElement as _t,onEvent as pt,prop as bt}from"@ecopages/radiant";var vt="a[href], button, input, select, textarea, [tabindex]";function it(t){return Array.from(t.querySelectorAll(vt)).filter(e=>!e.hasAttribute("disabled"))}function G(t,e){t.forEach((r,u)=>{let m=u===e?0:-1;r.tabIndex!==m&&(r.tabIndex=m)})}function yt(t,e){if(!t.length)return null;let r=Math.max(0,Math.min(t.length-1,e));return G(t,r),t[r]?.focus(),t[r]??null}function xt(t,e){return t==="Home"?"first":t==="End"?"last":e==="horizontal"?t==="ArrowRight"?"next":t==="ArrowLeft"?"prev":null:t==="ArrowDown"?"next":t==="ArrowUp"?"prev":null}function ot(t){let{items:e,current:r,key:u,orientation:m="horizontal",wrap:_=!0}=t;if(!e.length||!r)return{handled:!1};let c=e.indexOf(r);if(c<0)return{handled:!1};let o=xt(u,m);if(!o)return{handled:!1};let p=c;o==="first"?p=0:o==="last"?p=e.length-1:o==="next"?p=_?(c+1)%e.length:Math.min(e.length-1,c+1):p=_?(c-1+e.length)%e.length:Math.max(0,c-1);let A=yt(e,p);return A?{handled:!0,index:p,item:A}:{handled:!1}}var at,lt,st,ut,ct,ft;function wt(t,e,r,u,m,_){var c,o,p,A,j,K,R,J=Symbol.metadata||Symbol.for("Symbol.metadata"),Q=Object.defineProperty,M=Object.create,W=[M(null),M(null)],X=e.length;function C(n,b,d){return function(i,a){b&&(a=i,i=t);for(var h=0;h<n.length;h++)a=n[h].apply(i,d?[a]:[]);return d?a:i}}function x(n,b,d,i){if(typeof n!="function"&&(i||n!==void 0))throw new TypeError(b+" must "+(d||"be")+" a function"+(i?"":" or undefined"));return n}function Y(n,b,d,i,a,h,T,g,v,y,$){function L(s){if(!$(s))throw new TypeError("Attempted to access private element on non-instance")}var V=[].concat(b[0]),H=b[3],k=!T,I=a===1,P=a===3,N=a===4,D=a===2;function q(s,E,rt){return function(O,nt){return E&&(nt=O,O=n),rt&&rt(O),l[s].call(O,nt)}}if(!k){var l={},U=[],w=P?"get":N||I?"set":"value";if(v?(y||I?l={get:dt(function(){return H(this)},i,"get"),set:function(s){b[4](this,s)}}:l[w]=H,y||dt(l[w],i,D?"":w)):y||(l=Object.getOwnPropertyDescriptor(n,i)),!y&&!v){if((o=W[+g][i])&&(o^a)!==7)throw Error("Decorating two elements with the same name ("+l[w].name+") is not supported yet");W[+g][i]=a<3?1:a}}for(var f=n,B=V.length-1;B>=0;B-=d?2:1){var tt=x(V[B],"A decorator","be",!0),et=d?V[B-1]:void 0,F={},S={kind:["field","accessor","method","getter","setter","class"][a],name:i,metadata:c,addInitializer:function(s,E){if(s.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(E,"An initializer","be",!0),h.push(E)}.bind(null,F)};if(k)o=tt.call(et,f,S),F.v=1,x(o,"class decorators","return")&&(f=o);else if(S.static=g,S.private=v,o=S.access={has:v?$.bind():function(s){return i in s}},N||(o.get=v?D?function(s){return L(s),l.value}:q("get",0,L):function(s){return s[i]}),D||P||(o.set=v?q("set",0,L):function(s,E){s[i]=E}),f=tt.call(et,I?{get:l.get,set:l.set}:l[w],S),F.v=1,I){if(typeof f=="object"&&f)(o=x(f.get,"accessor.get"))&&(l.get=o),(o=x(f.set,"accessor.set"))&&(l.set=o),(o=x(f.init,"accessor.init"))&&U.unshift(o);else if(f!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else x(f,(y?"field":"method")+" decorators","return")&&(y?U.unshift(f):l[w]=f)}return a<2&&T.push(C(U,g,1),C(h,g,0)),y||k||(v?I?T.splice(-1,0,q("get",g),q("set",g)):T.push(D?l[w]:x.call.bind(l[w])):Q(n,i,l)),f}function Z(n){return Q(n,J,{configurable:!0,enumerable:!0,value:c})}return _!==void 0&&(c=_[J]),c=M(c??null),j=[],K=function(n){n&&j.push(C(n))},R=function(n,b){for(var d=0;d<r.length;d++){var i=r[d],a=i[1],h=7&a;if((8&a)==n&&!h==b){var T=i[2],g=!!i[3],v=16&a;Y(n?t:t.prototype,i,v,g?"#"+T:Tt(T),h,h<2?[]:n?A=A||[]:p=p||[],j,!!n,g,b,n&&g?function(y){return Et(y)===t}:m)}}},R(8,0),R(0,0),R(8,1),R(0,1),K(p),K(A),o=j,X||Z(t),{e:o,get c(){var n=[];return X&&[Z(t=Y(t,[e],u,t.name,5,n)),C(n,1)]}}}function Tt(t){var e=At(t,"string");return typeof e=="symbol"?e:e+""}function At(t,e){if(typeof t!="object"||!t)return t;var r=t[Symbol.toPrimitive];if(r!==void 0){var u=r.call(t,e||"default");if(typeof u!="object")return u;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function dt(t,e,r){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:r?r+" "+e:e})}catch{}return t}function Et(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var z,ht=class extends gt{static{({e:[st,ut,ct,ft,at],c:[z,lt]}=wt(this,[_t("rui-toolbar")],[[bt({type:String,defaultValue:""}),0,"label"],[bt({type:Boolean,reflect:!0,defaultValue:!1}),0,"exclusiveToggles"],[pt({type:"keydown",selector:"button, a[href], input, select, [tabindex]"}),2,"onKeydown"],[pt({type:"click",selector:"button[data-toggle][aria-pressed]",options:{capture:!0}}),2,"onToggleButtonClick"]],0,void 0,gt))}constructor(...e){super(...e),ft(this)}label=(at(this),st(this));exclusiveToggles=(ut(this),ct(this));getItems(){return it(this)}onConnected(){G(this.getItems(),0)}onKeydown(e){let r=this.getItems(),u=e.target.closest("button, a[href], input, select, [tabindex]");ot({items:r,current:u,key:e.key,orientation:"horizontal"}).handled&&e.preventDefault()}getToggleButtons(){return Array.from(this.querySelectorAll("button[data-toggle][aria-pressed]")).filter(e=>!e.disabled)}onToggleButtonClick(e){let r=e.target.closest("button[data-toggle][aria-pressed]");if(!r||r.disabled)return;e.stopImmediatePropagation();let u=r.getAttribute("aria-pressed")==="true";if(this.exclusiveToggles){for(let m of this.getToggleButtons())m.setAttribute("aria-pressed","false");u||r.setAttribute("aria-pressed","true");return}r.setAttribute("aria-pressed",String(!u))}static{lt()}};import{jsx as mt}from"@ecopages/jsx/jsx-runtime";function Rt({children:t,label:e,...r}){return mt(z,{...r,label:e,children:mt("div",{class:"rui-toolbar","data-ref":"root",role:"toolbar","aria-label":e||void 0,children:t})})}export{Rt as RuiToolbar,z as RuiToolbarElement};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/ui/toolbar/toolbar.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/toolbar/toolbar.tsx"],
|
|
4
|
-
"sourcesContent": ["let _initProto, _initClass, _init_label, _init_extra_label, _init_exclusiveToggles, _init_extra_exclusiveToggles;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, onEvent, prop } from \"@ecopages/radiant\";\nimport { queryRovingTabindexItems } from \"@/lib/focusable-elements\";\nimport { applyRovingTabindex, navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiToolbar;\nclass RuiToolbar extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _init_exclusiveToggles, _init_extra_exclusiveToggles, _initProto],\n c: [_RuiToolbar, _initClass]\n } = _applyDecs(this, [customElement(\"rui-toolbar\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"exclusiveToggles\"], [onEvent({\n type: \"keydown\",\n selector: \"button, a[href], input, select, [tabindex]\"\n }), 2, \"onKeydown\"], [onEvent({\n type: \"click\",\n selector: \"button[data-toggle][aria-pressed]\",\n options: {\n capture: true\n }\n }), 2, \"onToggleButtonClick\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_exclusiveToggles(this);\n }\n label = (_initProto(this), _init_label(this));\n exclusiveToggles = (_init_extra_label(this), _init_exclusiveToggles(this));\n getItems() {\n return queryRovingTabindexItems(this);\n }\n onConnected() {\n applyRovingTabindex(this.getItems(), 0);\n }\n onKeydown(event) {\n const items = this.getItems();\n const current = event.target.closest(\"button, a[href], input, select, [tabindex]\");\n const result = navigateRovingTabindex({\n items,\n current,\n key: event.key,\n orientation: \"horizontal\"\n });\n if (!result.handled) return;\n event.preventDefault();\n }\n getToggleButtons() {\n return Array.from(this.querySelectorAll(\"button[data-toggle][aria-pressed]\")).filter(button => !button.disabled);\n }\n onToggleButtonClick(event) {\n const button = event.target.closest(\"button[data-toggle][aria-pressed]\");\n if (!button || button.disabled) {\n return;\n }\n event.stopImmediatePropagation();\n const wasPressed = button.getAttribute(\"aria-pressed\") === \"true\";\n if (this.exclusiveToggles) {\n for (const toggle of this.getToggleButtons()) {\n toggle.setAttribute(\"aria-pressed\", \"false\");\n }\n if (!wasPressed) {\n button.setAttribute(\"aria-pressed\", \"true\");\n }\n return;\n }\n button.setAttribute(\"aria-pressed\", String(!wasPressed));\n }\n static {\n _initClass();\n }\n}\nexport { _RuiToolbar as RuiToolbar };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./toolbar.script\";\nexport function RuiToolbar({\n children,\n label,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-toolbar\", {\n ...props,\n label,\n children: /* @__PURE__ */jsx(\"div\", {\n class: \"rui-toolbar\",\n \"data-ref\": \"root\",\n role: \"toolbar\",\n \"aria-label\": label || void 0,\n children\n })\n });\n}"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["RadiantElement", "customElement", "onEvent", "prop", "FOCUSABLE_CANDIDATE_SELECTOR", "queryRovingTabindexItems", "root", "FOCUSABLE_CANDIDATE_SELECTOR", "element", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "focusRovingItem", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_init_exclusiveToggles", "_init_extra_exclusiveToggles", "_applyDecs", "e", "t", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiToolbar", "RuiToolbar", "RadiantElement", "customElement", "prop", "onEvent", "args", "queryRovingTabindexItems", "applyRovingTabindex", "event", "items", "current", "navigateRovingTabindex", "button", "wasPressed", "toggle", "jsx", "RuiToolbar", "children", "label", "props", "jsx"]
|
|
4
|
+
"sourcesContent": ["let _initProto, _initClass, _init_label, _init_extra_label, _init_exclusiveToggles, _init_extra_exclusiveToggles;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, onEvent, prop } from \"@ecopages/radiant\";\nimport { queryRovingTabindexItems } from \"@/lib/focusable-elements\";\nimport { applyRovingTabindex, navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiToolbar;\nclass RuiToolbar extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _init_exclusiveToggles, _init_extra_exclusiveToggles, _initProto],\n c: [_RuiToolbar, _initClass]\n } = _applyDecs(this, [customElement(\"rui-toolbar\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"exclusiveToggles\"], [onEvent({\n type: \"keydown\",\n selector: \"button, a[href], input, select, [tabindex]\"\n }), 2, \"onKeydown\"], [onEvent({\n type: \"click\",\n selector: \"button[data-toggle][aria-pressed]\",\n options: {\n capture: true\n }\n }), 2, \"onToggleButtonClick\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_exclusiveToggles(this);\n }\n label = (_initProto(this), _init_label(this));\n exclusiveToggles = (_init_extra_label(this), _init_exclusiveToggles(this));\n getItems() {\n return queryRovingTabindexItems(this);\n }\n onConnected() {\n applyRovingTabindex(this.getItems(), 0);\n }\n onKeydown(event) {\n const items = this.getItems();\n const current = event.target.closest(\"button, a[href], input, select, [tabindex]\");\n const result = navigateRovingTabindex({\n items,\n current,\n key: event.key,\n orientation: \"horizontal\"\n });\n if (!result.handled) return;\n event.preventDefault();\n }\n getToggleButtons() {\n return Array.from(this.querySelectorAll(\"button[data-toggle][aria-pressed]\")).filter(button => !button.disabled);\n }\n onToggleButtonClick(event) {\n const button = event.target.closest(\"button[data-toggle][aria-pressed]\");\n if (!button || button.disabled) {\n return;\n }\n event.stopImmediatePropagation();\n const wasPressed = button.getAttribute(\"aria-pressed\") === \"true\";\n if (this.exclusiveToggles) {\n for (const toggle of this.getToggleButtons()) {\n toggle.setAttribute(\"aria-pressed\", \"false\");\n }\n if (!wasPressed) {\n button.setAttribute(\"aria-pressed\", \"true\");\n }\n return;\n }\n button.setAttribute(\"aria-pressed\", String(!wasPressed));\n }\n static {\n _initClass();\n }\n}\nexport { _RuiToolbar as RuiToolbar };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RuiToolbar as RuiToolbarElement } from \"./toolbar.script\";\nexport function RuiToolbar({\n children,\n label,\n ...props\n}) {\n return /* @__PURE__ */jsx(RuiToolbarElement, {\n ...props,\n label,\n children: /* @__PURE__ */jsx(\"div\", {\n class: \"rui-toolbar\",\n \"data-ref\": \"root\",\n role: \"toolbar\",\n \"aria-label\": label || void 0,\n children\n })\n });\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["RadiantElement", "customElement", "onEvent", "prop", "FOCUSABLE_CANDIDATE_SELECTOR", "queryRovingTabindexItems", "root", "FOCUSABLE_CANDIDATE_SELECTOR", "element", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "focusRovingItem", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_init_exclusiveToggles", "_init_extra_exclusiveToggles", "_applyDecs", "e", "t", "n", "r", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiToolbar", "RuiToolbar", "RadiantElement", "customElement", "prop", "onEvent", "args", "queryRovingTabindexItems", "applyRovingTabindex", "event", "items", "current", "navigateRovingTabindex", "button", "wasPressed", "toggle", "jsx", "RuiToolbar", "children", "label", "props", "jsx", "_RuiToolbar"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { JsxCustomElementAttributes } from '@ecopages/jsx';
|
|
2
|
-
import
|
|
3
|
-
import './toolbar.script';
|
|
2
|
+
import { RuiToolbar as RuiToolbarElement, type RuiToolbarProps } from './toolbar.script';
|
|
4
3
|
/**
|
|
5
4
|
* Toolbar landmark wrapper. Stamps `[role="toolbar"]` with `data-ref="root"`.
|
|
6
5
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { JSX_PROPS } from '@ecopages/jsx';
|
|
1
2
|
import { RadiantElement } from '@ecopages/radiant';
|
|
2
3
|
export type RuiToolbarProps = {
|
|
3
4
|
label?: string;
|
|
@@ -37,6 +38,7 @@ export type RuiToolbarProps = {
|
|
|
37
38
|
* among focusable descendants anywhere under `<rui-toolbar>`.
|
|
38
39
|
*/
|
|
39
40
|
export declare class RuiToolbar extends RadiantElement {
|
|
41
|
+
readonly [JSX_PROPS]?: RuiToolbarProps;
|
|
40
42
|
label: string;
|
|
41
43
|
exclusiveToggles: boolean;
|
|
42
44
|
private getItems;
|
|
@@ -49,3 +51,8 @@ export declare class RuiToolbar extends RadiantElement {
|
|
|
49
51
|
*/
|
|
50
52
|
onToggleButtonClick(event: Event): void;
|
|
51
53
|
}
|
|
54
|
+
declare global {
|
|
55
|
+
interface HTMLElementTagNameMap {
|
|
56
|
+
'rui-toolbar': RuiToolbar;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{RadiantElement as
|
|
1
|
+
import{RadiantElement as St,bindTo as Zt,bound as Ft,customElement as Xt,onEvent as Z,onUpdated as Yt,prop as X,query as zt}from"@ecopages/radiant";var Ct="a[href], button, input, select, textarea, [tabindex]";function Dt(t){return!t.hasAttribute("disabled")&&t.getAttribute("tabindex")!=="-1"}function Pt(t){return Array.from(t.querySelectorAll(Ct)).filter(Dt)}function lt(t){return Pt(t)[0]}var Lt=/^[A-Za-z][A-Za-z0-9_-]*$/;function ct(t){return Lt.test(t)}function Rt(t){let e=t.trim();if(ct(e))return e;let i=`rui-${e}`;return e&&ct(i)?i:"rui"}function ut(t){let e=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),i=>i.toString(16).padStart(2,"0")).join("");return`${Rt(t)}-${e}`}var jt={top:"bottom",bottom:"top",left:"right",right:"left"},Mt=8,B=new WeakMap;function Wt(t){B.has(t)&&(t.style.width="",t.style.minWidth="",t.style.maxWidth="",t.style.boxSizing="",B.delete(t))}function kt(t){let e=t.indexOf("-");if(e===-1)return{side:t,align:"center"};let i=t.slice(0,e),a=t.slice(e+1);return{side:i,align:a==="start"||a==="end"?a:"center"}}function pt(t){return t==="top"||t==="bottom"?"y":"x"}function dt(t,e,i,a,r){let{width:s,height:o}=e,n=0,d=0;switch(i){case"top":d=t.top-o-r;break;case"bottom":d=t.bottom+r;break;case"left":n=t.left-s-r;break;case"right":n=t.right+r;break}return pt(i)==="y"?a==="start"?n=t.left:a==="end"?n=t.right-s:n=t.left+(t.width-s)/2:a==="start"?d=t.top:a==="end"?d=t.bottom-o:d=t.top+(t.height-o)/2,{x:n,y:d}}function $t(t,e,i,a){let{padding:r,width:s,height:o}=a;return i==="top"?Math.max(0,r-t.y):i==="bottom"?Math.max(0,t.y+e.height-(o-r)):i==="left"?Math.max(0,r-t.x):Math.max(0,t.x+e.width-(s-r))}function ht(t,e,i,a){let{padding:r,width:s,height:o}=a;return i==="top"?t.top-r-e.height:i==="bottom"?o-r-e.height-t.bottom:i==="left"?t.left-r-e.width:s-r-e.width-t.right}function Ut(t,e){return e==="center"?t:`${t}-${e}`}function qt(t,e,i,a){let{padding:r,width:s,height:o}=a;if(pt(i)==="y"){let d=Math.max(r,s-r-e.width);return{x:Math.min(Math.max(t.x,r),d),y:Math.max(r,t.y)}}let n=Math.max(r,o-r-e.height);return{x:Math.max(r,t.x),y:Math.min(Math.max(t.y,r),n)}}function Vt(t,e,i,a,r={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Mt}){let{side:s,align:o}=kt(i),n=dt(t,e,s,o,a),d=$t(n,e,s,r),y=s,_=n;if(d>0){let A=jt[s],S=dt(t,e,A,o,a),D=ht(t,e,s,r);ht(t,e,A,r)>D&&(y=A,_=S)}return{coords:qt(_,e,y,r),placement:Ut(y,o)}}function G(t,e,i,a,r={}){let s=r.matchAnchorWidth===!0,o=t.offsetWidth,n=s?{width:o,height:e.offsetHeight}:{width:e.offsetWidth,height:e.offsetHeight};s?(e.style.width=`${o}px`,e.style.minWidth=`${o}px`,e.style.maxWidth=`${o}px`,e.style.boxSizing="border-box",B.set(e,!0)):Wt(e);let{coords:d,placement:y}=Vt(t.getBoundingClientRect(),n,i,a);return Object.assign(e.style,{position:"fixed",left:`${d.x}px`,top:`${d.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),e.setAttribute("data-placement",y),y}function ft({anchor:t,floating:e,getPlacement:i,gap:a,matchAnchorWidth:r}){let s=()=>{e.hidden||G(t,e,i(),a,{matchAnchorWidth:r})};s(),window.addEventListener("resize",s),window.addEventListener("scroll",s,!0);let o=new ResizeObserver(s);return o.observe(t),o.observe(e),()=>{window.removeEventListener("resize",s),window.removeEventListener("scroll",s,!0),o.disconnect()}}var mt,gt,yt,bt,wt,vt,xt,Tt,Et,_t;function Ht(t,e,i,a,r,s){var o,n,d,y,_,A,S,D=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,$=Object.create,z=[$(null),$(null)],J=e.length;function P(l,b,m){return function(c,u){b&&(u=c,c=t);for(var w=0;w<l.length;w++)u=l[w].apply(c,m?[u]:[]);return m?u:c}}function T(l,b,m,c){if(typeof l!="function"&&(c||l!==void 0))throw new TypeError(b+" must "+(m||"be")+" a function"+(c?"":" or undefined"));return l}function Q(l,b,m,c,u,w,F,g,v,x,tt){function U(p){if(!tt(p))throw new TypeError("Attempted to access private element on non-instance")}var q=[].concat(b[0]),et=b[3],V=!F,I=u===1,it=u===3,rt=u===4,L=u===2;function R(p,O,st){return function(M,at){return O&&(at=M,M=l),st&&st(M),h[p].call(M,at)}}if(!V){var h={},H=[],E=it?"get":rt||I?"set":"value";if(v?(x||I?h={get:At(function(){return et(this)},c,"get"),set:function(p){b[4](this,p)}}:h[E]=et,x||At(h[E],c,L?"":E)):x||(h=Object.getOwnPropertyDescriptor(l,c)),!x&&!v){if((n=z[+g][c])&&(n^u)!==7)throw Error("Decorating two elements with the same name ("+h[E].name+") is not supported yet");z[+g][c]=u<3?1:u}}for(var f=l,j=q.length-1;j>=0;j-=m?2:1){var nt=T(q[j],"A decorator","be",!0),ot=m?q[j-1]:void 0,K={},C={kind:["field","accessor","method","getter","setter","class"][u],name:c,metadata:o,addInitializer:function(p,O){if(p.v)throw new TypeError("attempted to call addInitializer after decoration was finished");T(O,"An initializer","be",!0),w.push(O)}.bind(null,K)};if(V)n=nt.call(ot,f,C),K.v=1,T(n,"class decorators","return")&&(f=n);else if(C.static=g,C.private=v,n=C.access={has:v?tt.bind():function(p){return c in p}},rt||(n.get=v?L?function(p){return U(p),h.value}:R("get",0,U):function(p){return p[c]}),L||it||(n.set=v?R("set",0,U):function(p,O){p[c]=O}),f=nt.call(ot,I?{get:h.get,set:h.set}:h[E],C),K.v=1,I){if(typeof f=="object"&&f)(n=T(f.get,"accessor.get"))&&(h.get=n),(n=T(f.set,"accessor.set"))&&(h.set=n),(n=T(f.init,"accessor.init"))&&H.unshift(n);else if(f!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else T(f,(x?"field":"method")+" decorators","return")&&(x?H.unshift(f):h[E]=f)}return u<2&&F.push(P(H,g,1),P(w,g,0)),x||V||(v?I?F.splice(-1,0,R("get",g),R("set",g)):F.push(L?h[E]:T.call.bind(h[E])):k(l,c,h)),f}function N(l){return k(l,D,{configurable:!0,enumerable:!0,value:o})}return s!==void 0&&(o=s[D]),o=$(o??null),_=[],A=function(l){l&&_.push(P(l))},S=function(l,b){for(var m=0;m<i.length;m++){var c=i[m],u=c[1],w=7&u;if((8&u)==l&&!w==b){var F=c[2],g=!!c[3],v=16&u;Q(l?t:t.prototype,c,v,g?"#"+F:Kt(F),w,w<2?[]:l?y=y||[]:d=d||[],_,!!l,g,b,l&&g?function(x){return Gt(x)===t}:r)}}},S(8,0),S(0,0),S(8,1),S(0,1),A(d),A(y),n=_,J||N(t),{e:n,get c(){var l=[];return J&&[N(t=Q(t,[e],a,t.name,5,l)),P(l,1)]}}}function Kt(t){var e=Bt(t,"string");return typeof e=="symbol"?e:e+""}function Bt(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var a=i.call(t,e||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function At(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function Gt(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var Ot=8,W,It=class extends St{static{({e:[yt,bt,wt,vt,xt,Tt,Et,_t,mt],c:[W,gt]}=Ht(this,[Xt("rui-tooltip")],[[[Zt({ref:"tooltip",text:!0}),X({type:String,defaultValue:""})],0,"content"],[X({type:String,defaultValue:"top"}),0,"placement"],[X({type:Number,defaultValue:200}),0,"delay"],[zt({ref:"tooltip"}),0,"tooltipTarget"],[Yt(["content","placement"]),2,"onDescribedPropsUpdated"],[Z({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[Z({type:"focusin",ref:"trigger"}),2,"onFocusIn"],[Z({type:"focusout",ref:"trigger"}),2,"onFocusOut"],[Ft,2,"onPointerEnter"],[Ft,2,"onPointerLeave"]],0,void 0,St))}content=(mt(this),yt(this));placement=(bt(this),wt(this));delay=(vt(this),xt(this));tooltipTarget=(Tt(this),Et(this));open=(_t(this),!1);showTimer=null;hideTimer=null;tooltipId=ut("rui-tooltip");describedEl=null;cleanupFloating=null;connectedCallback(){super.connectedCallback(),this.addEventListener("pointerenter",this.onPointerEnter),this.addEventListener("pointerleave",this.onPointerLeave),queueMicrotask(()=>this.wireTrigger())}disconnectedCallback(){this.clearTimers(),this.teardownFloating(),this.removeEventListener("pointerenter",this.onPointerEnter),this.removeEventListener("pointerleave",this.onPointerLeave),this.describedEl?.removeAttribute("aria-describedby"),super.disconnectedCallback()}clearTimers(){this.showTimer&&clearTimeout(this.showTimer),this.hideTimer&&clearTimeout(this.hideTimer),this.showTimer=null,this.hideTimer=null}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}getAnchor(){return lt(this)??this}wireTrigger(){this.describedEl?.removeAttribute("aria-describedby"),this.describedEl=this.getAnchor(),this.tooltipTarget&&(this.tooltipTarget.id=this.tooltipId),this.describedEl.setAttribute("aria-describedby",this.tooltipId)}attachFloating(){this.tooltipTarget&&(this.teardownFloating(),this.cleanupFloating=ft({anchor:this.getAnchor(),floating:this.tooltipTarget,getPlacement:()=>this.placement,gap:Ot}))}onDescribedPropsUpdated(){this.wireTrigger(),this.open&&this.tooltipTarget&&G(this.getAnchor(),this.tooltipTarget,this.placement,Ot)}setOpen(e){this.clearTimers(),this.open=e,this.tooltipTarget&&(this.tooltipTarget.hidden=!e,e?this.attachFloating():this.teardownFloating())}scheduleShow(){if(this.clearTimers(),this.delay<=0){this.setOpen(!0);return}this.showTimer=setTimeout(()=>this.setOpen(!0),this.delay)}scheduleHide(){this.clearTimers(),this.hideTimer=setTimeout(()=>this.setOpen(!1),80)}onDocumentKeydown(e){!this.open||e.key!=="Escape"||this.setOpen(!1)}onFocusIn(){this.scheduleShow()}onFocusOut(e){let i=e.relatedTarget;i&&this.contains(i)||this.scheduleHide()}onPointerEnter(){this.scheduleShow()}onPointerLeave(){this.scheduleHide()}static{gt()}};import{jsx as Y,jsxs as Jt}from"@ecopages/jsx/jsx-runtime";function Qt({children:t,content:e="",...i}){return Y(W,{content:e,...i,children:Jt("span",{class:"rui-tooltip",children:[Y("span",{class:"rui-tooltip__trigger","data-ref":"trigger",children:t}),Y("span",{class:"rui-tooltip__content rui-floating","data-ref":"tooltip",role:"tooltip",hidden:!0,children:e})]})})}export{Qt as RuiTooltip,W as RuiTooltipElement};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|