@ecopages/radiant-ui 0.2.4 → 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.
Files changed (189) hide show
  1. package/README.md +2 -0
  2. package/dist/components/ui/alert/alert.d.ts +1 -3
  3. package/dist/components/ui/alert/alert.script.d.ts +7 -0
  4. package/dist/components/ui/alert/index.js +1 -1
  5. package/dist/components/ui/alert/index.js.map +3 -3
  6. package/dist/components/ui/autocomplete/autocomplete.d.ts +1 -2
  7. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +7 -0
  8. package/dist/components/ui/autocomplete/index.js +1 -1
  9. package/dist/components/ui/autocomplete/index.js.map +3 -3
  10. package/dist/components/ui/breadcrumb/breadcrumb.d.ts +1 -2
  11. package/dist/components/ui/breadcrumb/breadcrumb.script.d.ts +7 -0
  12. package/dist/components/ui/breadcrumb/index.js +1 -1
  13. package/dist/components/ui/breadcrumb/index.js.map +3 -3
  14. package/dist/components/ui/calendar/calendar.script.d.ts +8 -0
  15. package/dist/components/ui/calendar/index.d.ts +1 -2
  16. package/dist/components/ui/calendar/index.js +1 -1
  17. package/dist/components/ui/calendar/index.js.map +4 -4
  18. package/dist/components/ui/carousel/carousel.d.ts +1 -2
  19. package/dist/components/ui/carousel/carousel.script.d.ts +7 -0
  20. package/dist/components/ui/carousel/index.js +1 -1
  21. package/dist/components/ui/carousel/index.js.map +3 -3
  22. package/dist/components/ui/checkbox/checkbox.d.ts +1 -2
  23. package/dist/components/ui/checkbox/checkbox.script.d.ts +7 -0
  24. package/dist/components/ui/checkbox/index.js +1 -1
  25. package/dist/components/ui/checkbox/index.js.map +3 -3
  26. package/dist/components/ui/checkbox-group/checkbox-group.d.ts +1 -2
  27. package/dist/components/ui/checkbox-group/checkbox-group.script.d.ts +7 -0
  28. package/dist/components/ui/checkbox-group/index.js +1 -1
  29. package/dist/components/ui/checkbox-group/index.js.map +3 -3
  30. package/dist/components/ui/combobox/combobox.d.ts +1 -2
  31. package/dist/components/ui/combobox/combobox.script.d.ts +7 -0
  32. package/dist/components/ui/combobox/index.js +1 -1
  33. package/dist/components/ui/combobox/index.js.map +3 -3
  34. package/dist/components/ui/cycle-toggle/cycle-toggle.d.ts +1 -2
  35. package/dist/components/ui/cycle-toggle/cycle-toggle.script.d.ts +7 -0
  36. package/dist/components/ui/cycle-toggle/index.js +1 -1
  37. package/dist/components/ui/cycle-toggle/index.js.map +3 -3
  38. package/dist/components/ui/date-field/date-field.d.ts +4 -5
  39. package/dist/components/ui/date-field/date-field.script.d.ts +7 -0
  40. package/dist/components/ui/date-field/index.js +1 -1
  41. package/dist/components/ui/date-field/index.js.map +4 -4
  42. package/dist/components/ui/date-input/date-input.d.ts +4 -4
  43. package/dist/components/ui/date-input/date-input.script.d.ts +8 -0
  44. package/dist/components/ui/date-input/index.js +1 -1
  45. package/dist/components/ui/date-input/index.js.map +3 -3
  46. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +5 -6
  47. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +7 -0
  48. package/dist/components/ui/date-range-picker/index.js +1 -1
  49. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  50. package/dist/components/ui/dialog/dialog-registry.d.ts +0 -1
  51. package/dist/components/ui/dialog/dialog.d.ts +1 -2
  52. package/dist/components/ui/dialog/dialog.script.d.ts +7 -0
  53. package/dist/components/ui/dialog/index.js +1 -1
  54. package/dist/components/ui/dialog/index.js.map +3 -3
  55. package/dist/components/ui/disclosure/disclosure-group.script.d.ts +7 -0
  56. package/dist/components/ui/disclosure/disclosure.d.ts +2 -4
  57. package/dist/components/ui/disclosure/disclosure.script.d.ts +7 -0
  58. package/dist/components/ui/disclosure/index.js +1 -1
  59. package/dist/components/ui/disclosure/index.js.map +3 -3
  60. package/dist/components/ui/field/field.d.ts +1 -2
  61. package/dist/components/ui/field/field.script.d.ts +7 -0
  62. package/dist/components/ui/field/index.js +1 -1
  63. package/dist/components/ui/field/index.js.map +3 -3
  64. package/dist/components/ui/form/form.d.ts +1 -2
  65. package/dist/components/ui/form/form.script.d.ts +7 -0
  66. package/dist/components/ui/form/index.js +1 -1
  67. package/dist/components/ui/form/index.js.map +3 -3
  68. package/dist/components/ui/grid/grid.d.ts +1 -2
  69. package/dist/components/ui/grid/grid.script.d.ts +7 -0
  70. package/dist/components/ui/grid/index.js +1 -1
  71. package/dist/components/ui/grid/index.js.map +3 -3
  72. package/dist/components/ui/hover-card/hover-card.d.ts +1 -2
  73. package/dist/components/ui/hover-card/hover-card.script.d.ts +7 -0
  74. package/dist/components/ui/hover-card/index.js +1 -1
  75. package/dist/components/ui/hover-card/index.js.map +3 -3
  76. package/dist/components/ui/knob/index.js +1 -1
  77. package/dist/components/ui/knob/index.js.map +3 -3
  78. package/dist/components/ui/knob/knob.d.ts +1 -2
  79. package/dist/components/ui/knob/knob.script.d.ts +7 -0
  80. package/dist/components/ui/listbox/index.js +1 -1
  81. package/dist/components/ui/listbox/index.js.map +3 -3
  82. package/dist/components/ui/listbox/listbox.d.ts +1 -2
  83. package/dist/components/ui/listbox/listbox.script.d.ts +7 -0
  84. package/dist/components/ui/menu-button/index.js +1 -1
  85. package/dist/components/ui/menu-button/index.js.map +3 -3
  86. package/dist/components/ui/menu-button/menu-button.d.ts +1 -2
  87. package/dist/components/ui/menu-button/menu-button.script.d.ts +7 -0
  88. package/dist/components/ui/menubar/index.js +1 -1
  89. package/dist/components/ui/menubar/index.js.map +3 -3
  90. package/dist/components/ui/menubar/menubar.d.ts +1 -2
  91. package/dist/components/ui/menubar/menubar.script.d.ts +7 -0
  92. package/dist/components/ui/meter/index.d.ts +1 -2
  93. package/dist/components/ui/meter/index.js +1 -1
  94. package/dist/components/ui/meter/index.js.map +4 -4
  95. package/dist/components/ui/meter/meter.script.d.ts +8 -0
  96. package/dist/components/ui/navigation-menu/index.js +1 -1
  97. package/dist/components/ui/navigation-menu/index.js.map +3 -3
  98. package/dist/components/ui/navigation-menu/navigation-menu.css +2 -1
  99. package/dist/components/ui/navigation-menu/navigation-menu.d.ts +1 -2
  100. package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +7 -0
  101. package/dist/components/ui/number-field/index.js +1 -1
  102. package/dist/components/ui/number-field/index.js.map +3 -3
  103. package/dist/components/ui/number-field/number-field.d.ts +1 -2
  104. package/dist/components/ui/number-field/number-field.script.d.ts +7 -0
  105. package/dist/components/ui/pagination/index.js +1 -1
  106. package/dist/components/ui/pagination/index.js.map +3 -3
  107. package/dist/components/ui/pagination/pagination.d.ts +1 -2
  108. package/dist/components/ui/pagination/pagination.script.d.ts +7 -0
  109. package/dist/components/ui/popover/index.js +1 -1
  110. package/dist/components/ui/popover/index.js.map +3 -3
  111. package/dist/components/ui/popover/popover.d.ts +1 -2
  112. package/dist/components/ui/popover/popover.script.d.ts +9 -0
  113. package/dist/components/ui/radio-group/index.js +1 -1
  114. package/dist/components/ui/radio-group/index.js.map +3 -3
  115. package/dist/components/ui/radio-group/radio-group.d.ts +1 -2
  116. package/dist/components/ui/radio-group/radio-group.script.d.ts +7 -0
  117. package/dist/components/ui/select/index.js +1 -1
  118. package/dist/components/ui/select/index.js.map +3 -3
  119. package/dist/components/ui/select/select.d.ts +1 -2
  120. package/dist/components/ui/select/select.script.d.ts +7 -0
  121. package/dist/components/ui/separator/separator.d.ts +2 -1
  122. package/dist/components/ui/sidebar/index.js +1 -1
  123. package/dist/components/ui/sidebar/index.js.map +3 -3
  124. package/dist/components/ui/sidebar/sidebar-trigger.d.ts +1 -2
  125. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +7 -0
  126. package/dist/components/ui/sidebar/sidebar.d.ts +1 -3
  127. package/dist/components/ui/sidebar/sidebar.script.d.ts +7 -0
  128. package/dist/components/ui/slider/index.js +1 -1
  129. package/dist/components/ui/slider/index.js.map +3 -3
  130. package/dist/components/ui/slider/slider.d.ts +1 -2
  131. package/dist/components/ui/slider/slider.script.d.ts +7 -0
  132. package/dist/components/ui/switch/index.js +1 -1
  133. package/dist/components/ui/switch/index.js.map +3 -3
  134. package/dist/components/ui/switch/switch.d.ts +1 -2
  135. package/dist/components/ui/switch/switch.script.d.ts +7 -0
  136. package/dist/components/ui/table/index.js +1 -1
  137. package/dist/components/ui/table/index.js.map +3 -3
  138. package/dist/components/ui/table/table.d.ts +1 -2
  139. package/dist/components/ui/table/table.script.d.ts +7 -0
  140. package/dist/components/ui/tabs/index.d.ts +2 -2
  141. package/dist/components/ui/tabs/index.js +1 -1
  142. package/dist/components/ui/tabs/index.js.map +3 -3
  143. package/dist/components/ui/tabs/tabs.d.ts +1 -4
  144. package/dist/components/ui/tabs/tabs.script.d.ts +7 -0
  145. package/dist/components/ui/tag-group/index.js +1 -1
  146. package/dist/components/ui/tag-group/index.js.map +3 -3
  147. package/dist/components/ui/tag-group/tag-group.d.ts +1 -2
  148. package/dist/components/ui/tag-group/tag-group.script.d.ts +7 -0
  149. package/dist/components/ui/toast/index.d.ts +2 -2
  150. package/dist/components/ui/toast/index.js +1 -1
  151. package/dist/components/ui/toast/index.js.map +3 -3
  152. package/dist/components/ui/toast/toast.d.ts +6 -10
  153. package/dist/components/ui/toast/toast.script.d.ts +8 -0
  154. package/dist/components/ui/toast/toaster.script.d.ts +8 -1
  155. package/dist/components/ui/toc/index.d.ts +6 -2
  156. package/dist/components/ui/toc/index.js +1 -1
  157. package/dist/components/ui/toc/index.js.map +4 -4
  158. package/dist/components/ui/toc/toc.script.d.ts +8 -0
  159. package/dist/components/ui/toolbar/index.js +1 -1
  160. package/dist/components/ui/toolbar/index.js.map +3 -3
  161. package/dist/components/ui/toolbar/toolbar.d.ts +1 -2
  162. package/dist/components/ui/toolbar/toolbar.script.d.ts +7 -0
  163. package/dist/components/ui/tooltip/index.js +1 -1
  164. package/dist/components/ui/tooltip/index.js.map +3 -3
  165. package/dist/components/ui/tooltip/tooltip.d.ts +1 -2
  166. package/dist/components/ui/tooltip/tooltip.script.d.ts +14 -14
  167. package/dist/components/ui/tree/index.js +1 -1
  168. package/dist/components/ui/tree/index.js.map +3 -3
  169. package/dist/components/ui/tree/tree.d.ts +1 -2
  170. package/dist/components/ui/tree/tree.script.d.ts +7 -0
  171. package/dist/components/ui/treegrid/index.js +1 -1
  172. package/dist/components/ui/treegrid/index.js.map +3 -3
  173. package/dist/components/ui/treegrid/treegrid.d.ts +1 -2
  174. package/dist/components/ui/treegrid/treegrid.script.d.ts +7 -0
  175. package/dist/components/ui/window-splitter/index.js +1 -1
  176. package/dist/components/ui/window-splitter/index.js.map +3 -3
  177. package/dist/components/ui/window-splitter/window-splitter.d.ts +1 -2
  178. package/dist/components/ui/window-splitter/window-splitter.script.d.ts +7 -0
  179. package/dist/index.js +1 -1
  180. package/dist/index.js.map +4 -4
  181. package/dist/lib/without-children.d.ts +10 -0
  182. package/dist/styles/radiant-ui-core.css +3 -0
  183. package/dist/styles/radiant-ui.css +3 -0
  184. package/dist/styles/styles.css +1 -1
  185. package/dist/styles/tailwind.css +3 -0
  186. package/package.json +10 -10
  187. package/dist/components/ui/calendar/calendar.d.ts +0 -4
  188. package/dist/components/ui/meter/meter.d.ts +0 -8
  189. package/dist/components/ui/toc/toc.d.ts +0 -5
@@ -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", "../../../../src/components/ui/toc/toc.tsx"],
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", "jsx", "RuiToc", "props", "jsx"]
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 dt,customElement as Et,onEvent as gt,prop as pt}from"@ecopages/radiant";var vt="a[href], button, input, select, textarea, [tabindex]";function nt(t){return Array.from(t.querySelectorAll(vt)).filter(e=>!e.hasAttribute("disabled"))}function F(t,e){t.forEach((r,l)=>{let m=l===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 F(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 it(t){let{items:e,current:r,key:l,orientation:m="horizontal",wrap:E=!0}=t;if(!e.length||!r)return{handled:!1};let c=e.indexOf(r);if(c<0)return{handled:!1};let o=xt(l,m);if(!o)return{handled:!1};let p=c;o==="first"?p=0:o==="last"?p=e.length-1:o==="next"?p=E?(c+1)%e.length:Math.min(e.length-1,c+1):p=E?(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 ot,at,st,ut,lt,ct;function wt(t,e,r,l,m,E){var c,o,p,A,j,z,R,G=Symbol.metadata||Symbol.for("Symbol.metadata"),J=Object.defineProperty,K=Object.create,Q=[K(null),K(null)],W=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 X(n,b,d,i,a,h,T,g,v,y,Z){function M(u){if(!Z(u))throw new TypeError("Attempted to access private element on non-instance")}var L=[].concat(b[0]),$=b[3],V=!T,I=a===1,H=a===3,P=a===4,D=a===2;function q(u,_,et){return function(O,rt){return _&&(rt=O,O=n),et&&et(O),s[u].call(O,rt)}}if(!V){var s={},k=[],w=H?"get":P||I?"set":"value";if(v?(y||I?s={get:ft(function(){return $(this)},i,"get"),set:function(u){b[4](this,u)}}:s[w]=$,y||ft(s[w],i,D?"":w)):y||(s=Object.getOwnPropertyDescriptor(n,i)),!y&&!v){if((o=Q[+g][i])&&(o^a)!==7)throw Error("Decorating two elements with the same name ("+s[w].name+") is not supported yet");Q[+g][i]=a<3?1:a}}for(var f=n,B=L.length-1;B>=0;B-=d?2:1){var N=x(L[B],"A decorator","be",!0),tt=d?L[B-1]:void 0,U={},S={kind:["field","accessor","method","getter","setter","class"][a],name:i,metadata:c,addInitializer:function(u,_){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");x(_,"An initializer","be",!0),h.push(_)}.bind(null,U)};if(V)o=N.call(tt,f,S),U.v=1,x(o,"class decorators","return")&&(f=o);else if(S.static=g,S.private=v,o=S.access={has:v?Z.bind():function(u){return i in u}},P||(o.get=v?D?function(u){return M(u),s.value}:q("get",0,M):function(u){return u[i]}),D||H||(o.set=v?q("set",0,M):function(u,_){u[i]=_}),f=N.call(tt,I?{get:s.get,set:s.set}:s[w],S),U.v=1,I){if(typeof f=="object"&&f)(o=x(f.get,"accessor.get"))&&(s.get=o),(o=x(f.set,"accessor.set"))&&(s.set=o),(o=x(f.init,"accessor.init"))&&k.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?k.unshift(f):s[w]=f)}return a<2&&T.push(C(k,g,1),C(h,g,0)),y||V||(v?I?T.splice(-1,0,q("get",g),q("set",g)):T.push(D?s[w]:x.call.bind(s[w])):J(n,i,s)),f}function Y(n){return J(n,G,{configurable:!0,enumerable:!0,value:c})}return E!==void 0&&(c=E[G]),c=K(c??null),j=[],z=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;X(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 _t(y)===t}:m)}}},R(8,0),R(0,0),R(8,1),R(0,1),z(p),z(A),o=j,W||Y(t),{e:o,get c(){var n=[];return W&&[Y(t=X(t,[e],l,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 l=r.call(t,e||"default");if(typeof l!="object")return l;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ft(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 _t(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 ht,bt=class extends dt{static{({e:[st,ut,lt,ct,ot],c:[ht,at]}=wt(this,[Et("rui-toolbar")],[[pt({type:String,defaultValue:""}),0,"label"],[pt({type:Boolean,reflect:!0,defaultValue:!1}),0,"exclusiveToggles"],[gt({type:"keydown",selector:"button, a[href], input, select, [tabindex]"}),2,"onKeydown"],[gt({type:"click",selector:"button[data-toggle][aria-pressed]",options:{capture:!0}}),2,"onToggleButtonClick"]],0,void 0,dt))}constructor(...e){super(...e),ct(this)}label=(ot(this),st(this));exclusiveToggles=(ut(this),lt(this));getItems(){return nt(this)}onConnected(){F(this.getItems(),0)}onKeydown(e){let r=this.getItems(),l=e.target.closest("button, a[href], input, select, [tabindex]");it({items:r,current:l,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 l=r.getAttribute("aria-pressed")==="true";if(this.exclusiveToggles){for(let m of this.getToggleButtons())m.setAttribute("aria-pressed","false");l||r.setAttribute("aria-pressed","true");return}r.setAttribute("aria-pressed",String(!l))}static{at()}};import{jsx as mt}from"@ecopages/jsx/jsx-runtime";function Rt({children:t,label:e,...r}){return mt("rui-toolbar",{...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,ht as RuiToolbarElement};
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 type { RuiToolbar as RuiToolbarElement, RuiToolbarProps } from './toolbar.script';
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{jsx as G,jsxs as Xt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as St,bound as Ft,customElement as Yt,onEvent as Z,onUpdated as zt,prop as X,query as Jt}from"@ecopages/radiant";var jt="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(jt)).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 Mt(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`${Mt(t)}-${e}`}var Wt={top:"bottom",bottom:"top",left:"right",right:"left"},Rt=8,K=new WeakMap;function kt(t){K.has(t)&&(t.style.width="",t.style.minWidth="",t.style.maxWidth="",t.style.boxSizing="",K.delete(t))}function $t(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 Ut(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 qt(t,e){return e==="center"?t:`${t}-${e}`}function Vt(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 Ht(t,e,i,a,r={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Rt}){let{side:s,align:o}=$t(i),n=dt(t,e,s,o,a),d=Ut(n,e,s,r),y=s,E=n;if(d>0){let A=Wt[s],S=dt(t,e,A,o,a),j=ht(t,e,s,r);ht(t,e,A,r)>j&&(y=A,E=S)}return{coords:Vt(E,e,y,r),placement:qt(y,o)}}function B(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",K.set(e,!0)):kt(e);let{coords:d,placement:y}=Ht(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||B(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,_t,Et;function Kt(t,e,i,a,r,s){var o,n,d,y,E,A,S,j=Symbol.metadata||Symbol.for("Symbol.metadata"),R=Object.defineProperty,k=Object.create,z=[k(null),k(null)],J=e.length;function D(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 $(p){if(!tt(p))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(b[0]),et=b[3],q=!F,I=u===1,it=u===3,rt=u===4,P=u===2;function L(p,O,st){return function(W,at){return O&&(at=W,W=l),st&&st(W),h[p].call(W,at)}}if(!q){var h={},V=[],_=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[_]=et,x||At(h[_],c,P?"":_)):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[_].name+") is not supported yet");z[+g][c]=u<3?1:u}}for(var f=l,M=U.length-1;M>=0;M-=m?2:1){var nt=T(U[M],"A decorator","be",!0),ot=m?U[M-1]:void 0,H={},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,H)};if(q)n=nt.call(ot,f,C),H.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?P?function(p){return $(p),h.value}:L("get",0,$):function(p){return p[c]}),P||it||(n.set=v?L("set",0,$):function(p,O){p[c]=O}),f=nt.call(ot,I?{get:h.get,set:h.set}:h[_],C),H.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"))&&V.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?V.unshift(f):h[_]=f)}return u<2&&F.push(D(V,g,1),D(w,g,0)),x||q||(v?I?F.splice(-1,0,L("get",g),L("set",g)):F.push(P?h[_]:T.call.bind(h[_])):R(l,c,h)),f}function N(l){return R(l,j,{configurable:!0,enumerable:!0,value:o})}return s!==void 0&&(o=s[j]),o=k(o??null),E=[],A=function(l){l&&E.push(D(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:Bt(F),w,w<2?[]:l?y=y||[]:d=d||[],E,!!l,g,b,l&&g?function(x){return Zt(x)===t}:r)}}},S(8,0),S(0,0),S(8,1),S(0,1),A(d),A(y),n=E,J||N(t),{e:n,get c(){var l=[];return J&&[N(t=Q(t,[e],a,t.name,5,l)),D(l,1)]}}}function Bt(t){var e=Gt(t,"string");return typeof e=="symbol"?e:e+""}function Gt(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 Zt(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,Ct,It=class extends St{static{({e:[yt,bt,wt,vt,xt,Tt,_t,Et,mt],c:[Ct,gt]}=Kt(this,[Yt("rui-tooltip")],[[X({type:String,defaultValue:""}),0,"content"],[X({type:String,defaultValue:"top"}),0,"placement"],[X({type:Number,defaultValue:200}),0,"delay"],[Jt({ref:"tooltip"}),0,"tooltipTarget"],[zt(["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),_t(this));open=(Et(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&&B(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()}render(){return Xt("span",{class:"rui-tooltip",children:[G("span",{class:"rui-tooltip__trigger","data-ref":"trigger",children:G("slot",{})}),G("span",{"data-ref":"tooltip",id:this.tooltipId,class:"rui-tooltip__content rui-floating",role:"tooltip",hidden:!0,children:this.$.content})]})}static{gt()}};import{jsx as Y,jsxs as Qt}from"@ecopages/jsx/jsx-runtime";function Nt({children:t,content:e="",...i}){return Y("rui-tooltip",{content:e,...i,children:Qt("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{Nt as RuiTooltip,Ct as RuiTooltipElement};
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