@ecopages/radiant-ui 0.1.0-rc.6 → 0.1.0-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/combobox/index.js +1 -1
- package/dist/components/ui/combobox/index.js.map +3 -3
- package/dist/components/ui/field/field.script.d.ts +5 -0
- package/dist/components/ui/field/index.js +1 -1
- package/dist/components/ui/field/index.js.map +3 -3
- package/dist/components/ui/form/index.js +1 -1
- package/dist/components/ui/form/index.js.map +3 -3
- package/dist/components/ui/input/index.js +1 -1
- package/dist/components/ui/input/index.js.map +1 -1
- package/dist/components/ui/knob/index.js +1 -1
- package/dist/components/ui/knob/index.js.map +3 -3
- package/dist/components/ui/knob/knob.script.d.ts +5 -0
- package/dist/components/ui/label/index.js +1 -1
- package/dist/components/ui/label/index.js.map +1 -1
- package/dist/components/ui/menu-button/index.js +1 -1
- package/dist/components/ui/menu-button/index.js.map +3 -3
- package/dist/components/ui/menu-button/menu-button.css +18 -4
- package/dist/components/ui/menu-button/menu-button.script.d.ts +1 -0
- package/dist/components/ui/menubar/index.js +1 -1
- package/dist/components/ui/menubar/index.js.map +3 -3
- package/dist/components/ui/menubar/menubar.css +13 -22
- package/dist/components/ui/menubar/menubar.script.d.ts +1 -0
- package/dist/components/ui/navigation-menu/index.js +1 -1
- package/dist/components/ui/navigation-menu/index.js.map +3 -3
- package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +2 -0
- package/dist/components/ui/select/index.js +1 -1
- package/dist/components/ui/select/index.js.map +3 -3
- package/dist/components/ui/shared/listbox-popover-behavior.d.ts +7 -0
- package/dist/components/ui/shared/menu-tree.d.ts +11 -0
- package/dist/components/ui/slider/index.js +1 -1
- package/dist/components/ui/slider/index.js.map +3 -3
- package/dist/components/ui/slider/slider.script.d.ts +4 -0
- package/dist/components/ui/textarea/index.js +1 -1
- package/dist/components/ui/textarea/index.js.map +1 -1
- package/dist/components/ui/toast/index.js +1 -1
- package/dist/components/ui/toast/index.js.map +3 -3
- package/dist/components/ui/toast/toast.script.d.ts +10 -0
- package/dist/components/ui/tree/index.js +1 -1
- package/dist/components/ui/tree/index.js.map +3 -3
- package/dist/components/ui/tree/tree.script.d.ts +9 -0
- package/dist/components/ui/treegrid/index.js +1 -1
- package/dist/components/ui/treegrid/index.js.map +3 -3
- package/dist/components/ui/treegrid/treegrid.script.d.ts +14 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/dist/styles/styles.css +25 -24
- package/package.json +9 -9
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{RadiantElement as Yt,customElement as xe,event as ve,onEvent as w,onUpdated as ye,prop as V,query as Oe}from"@ecopages/radiant";function yt(i,t,e="base"){if(!t)return!0;if(e==="case")return i.includes(t);let o=new Intl.Collator(void 0,{sensitivity:e==="accent"?"accent":"base",usage:"search"});for(let n=0;n<=i.length-t.length;n+=1){let r=i.slice(n,n+t.length);if(o.compare(r,t)===0)return!0}return!1}function z(i){let t=i.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:i.parentElement?.querySelector("[data-rui-field-label], label.rui-label")??null}function Ot(i,t,e){if(!t||t.hasAttribute("data-rui-field-managed"))return;let o=z(i);if(o){o.id||(o.id=e.labelId),o.htmlFor||(o.htmlFor=e.controlId),t.setAttribute("aria-labelledby",o.id),t.removeAttribute("aria-label");return}if(e.label){t.setAttribute("aria-label",e.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var se={top:"bottom",bottom:"top",left:"right",right:"left"},le=8;function ue(i){let t=i.indexOf("-");if(t===-1)return{side:i,align:"center"};let e=i.slice(0,t),o=i.slice(t+1);return{side:e,align:o==="start"||o==="end"?o:"center"}}function Ct(i){return i==="top"||i==="bottom"?"y":"x"}function At(i,t,e,o,n){let{width:r,height:s}=t,l=0,c=0;switch(e){case"top":c=i.top-s-n;break;case"bottom":c=i.bottom+n;break;case"left":l=i.left-r-n;break;case"right":l=i.right+n;break}return Ct(e)==="y"?o==="start"?l=i.left:o==="end"?l=i.right-r:l=i.left+(i.width-r)/2:o==="start"?c=i.top:o==="end"?c=i.bottom-s:c=i.top+(i.height-s)/2,{x:l,y:c}}function ae(i,t,e,o){let{padding:n,width:r,height:s}=o;return e==="top"?Math.max(0,n-i.y):e==="bottom"?Math.max(0,i.y+t.height-(s-n)):e==="left"?Math.max(0,n-i.x):Math.max(0,i.x+t.width-(r-n))}function wt(i,t,e,o){let{padding:n,width:r,height:s}=o;return e==="top"?i.top-n-t.height:e==="bottom"?s-n-t.height-i.bottom:e==="left"?i.left-n-t.width:r-n-t.width-i.right}function ce(i,t){return t==="center"?i:`${i}-${t}`}function pe(i,t,e,o){let{padding:n,width:r,height:s}=o;if(Ct(e)==="y"){let c=Math.max(n,r-n-t.width);return{x:Math.min(Math.max(i.x,n),c),y:i.y}}let l=Math.max(n,s-n-t.height);return{x:i.x,y:Math.min(Math.max(i.y,n),l)}}function he(i,t,e,o,n={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:le}){let{side:r,align:s}=ue(e),l=At(i,t,r,s,o),c=ae(l,t,r,n),F=r,_=l;if(c>0){let R=se[r],E=At(i,t,R,s,o),T=wt(i,t,r,n);wt(i,t,R,n)>T&&(F=R,_=E)}return{coords:pe(_,t,F,n),placement:ce(F,s)}}function de(i,t,e,o,n={}){let{coords:r,placement:s}=he(i.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},e,o);return Object.assign(t.style,{position:"fixed",left:`${r.x}px`,top:`${r.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),n.matchAnchorWidth&&(t.style.width=`${i.offsetWidth}px`),t.setAttribute("data-placement",s),s}function It({anchor:i,floating:t,getPlacement:e,gap:o,matchAnchorWidth:n}){let r=()=>{t.hidden||de(i,t,e(),o,{matchAnchorWidth:n})};r(),window.addEventListener("resize",r),window.addEventListener("scroll",r,!0);let s=new ResizeObserver(r);return s.observe(i),s.observe(t),()=>{window.removeEventListener("resize",r),window.removeEventListener("scroll",r,!0),s.disconnect()}}function Ft(i,t=document.body){let e=i.parentNode;if(!e)return{unmount:()=>{}};let o=document.createComment("rui-portal");return e.insertBefore(o,i),t.appendChild(i),{unmount:()=>{let n=o.parentNode;n&&(n.insertBefore(i,o),o.remove())}}}function tt(i,t,e){return e?!!(i?.contains(e)||t?.contains(e)):!1}function _t(i,t,e){return e instanceof Node?!tt(i,t,e):!0}function Rt(i,t,e){return!tt(i,t,e)}var K=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.toggleAttribute("hidden",!0);return}let o=this.config.getAnchor();if(!o)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=Ft(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=It({anchor:o,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return tt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};function Et(i){return i.filter(t=>!t.hidden&&t.getAttribute("aria-disabled")!=="true")}function Lt(i,t,e){return e===0?-1:t===1?i>=e-1?0:i+1:i<=0?e-1:i-1}function et(i,t){t?.removeAttribute("aria-activedescendant");for(let e of i)e.removeAttribute("data-active")}function St(i,t,e,o,n){et(i,o);let r=t[e];return!r||!o?null:(r.id||(r.id=`${n}-${e}`),r.setAttribute("data-active","true"),o.setAttribute("aria-activedescendant",r.id),r.scrollIntoView({block:"nearest"}),r)}var U=class{config;popoverController;activeIndex=-1;visualFocus=!1;constructor(t){this.config=t,this.popoverController=new K({getAnchor:t.getAnchor,getFloating:t.getFloating,getOpen:t.getOpen,getPlacement:()=>"bottom-start",gap:4,portal:!1,matchAnchorWidth:!0})}get activeOptionIndex(){return this.activeIndex}get hasVisualFocus(){return this.visualFocus}ensureOptionIds(){this.config.getOptions().forEach((t,e)=>{t.id||(t.id=`${this.config.getOptionIdPrefix()}-${e}`)})}getVisibleOptions(){return Et(this.config.getOptions())}clearActiveOption(){this.activeIndex=-1,this.visualFocus=!1,et(this.config.getOptions(),this.config.getActiveDescendantHost())}setActiveOption(t){let e=this.getVisibleOptions();if(t<0||t>=e.length){this.clearActiveOption();return}this.activeIndex=t,this.visualFocus=!0,St(this.config.getOptions(),e,t,this.config.getActiveDescendantHost(),this.config.getOptionIdPrefix())}moveActive(t,e){let o=this.getVisibleOptions();if(o.length){if(!this.config.getOpen()){e(t===1?"first":"last");return}if(this.visualFocus){this.setActiveOption(Lt(this.activeIndex,t,o.length));return}this.setActiveOption(t===1?0:o.length-1)}}handleKeydown(t,e){if(!(t.ctrlKey||t.shiftKey||t.metaKey)){if(t.key==="ArrowDown"||t.key==="ArrowUp"){t.preventDefault(),t.stopPropagation();let o=t.key==="ArrowDown"?1:-1;if(t.altKey){o===1&&!e.isOpen?e.onOpen():o===-1&&e.isOpen&&e.onClose("arrow");return}this.moveActive(o,n=>e.onOpen(n));return}if(t.key==="Escape"){t.preventDefault(),e.isOpen?e.onClose("escape"):e.onEscapeWhenClosed?.();return}if(t.key==="Enter"||t.key===" "&&e.canUseSpace){if(!e.isOpen&&e.enterWhenClosed==="open"){t.preventDefault(),e.onOpen();return}let o=this.getVisibleOptions();e.isOpen&&this.visualFocus&&o[this.activeIndex]?(t.preventDefault(),e.onSelectActive()):t.key==="Enter"&&e.isOpen&&e.enterWithoutActive==="close"&&(t.preventDefault(),e.onClose("enter"));return}if(t.key==="Tab"&&e.isOpen){let o=this.getVisibleOptions();if(this.visualFocus&&o[this.activeIndex]&&e.closesOnTab){e.onSelectActive();return}e.onClose("tab")}}}syncPopoverPosition(){this.popoverController.sync()}shouldDismissFocus(t){return _t(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}shouldDismissPointer(t){return Rt(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}destroy(){this.popoverController.destroy()}};var Dt,Pt,kt,Vt,Bt,Tt,jt,Ht,Mt,Wt,$t,Kt,Ut,qt,Nt,Gt;function fe(i,t,e,o,n,r){var s,l,c,F,_,R,E,T=Symbol.metadata||Symbol.for("Symbol.metadata"),N=Object.defineProperty,G=Object.create,ut=[G(null),G(null)],at=t.length;function j(u,v,g){return function(a,p){v&&(p=a,a=i);for(var y=0;y<u.length;y++)p=u[y].apply(a,g?[p]:[]);return g?p:a}}function C(u,v,g,a){if(typeof u!="function"&&(a||u!==void 0))throw new TypeError(v+" must "+(g||"be")+" a function"+(a?"":" or undefined"));return u}function ct(u,v,g,a,p,y,L,x,O,A,ht){function X(d){if(!ht(d))throw new TypeError("Attempted to access private element on non-instance")}var Y=[].concat(v[0]),dt=v[3],J=!L,P=p===1,ft=p===3,bt=p===4,H=p===2;function M(d,D,xt){return function($,vt){return D&&(vt=$,$=u),xt&&xt($),h[d].call($,vt)}}if(!J){var h={},Q=[],I=ft?"get":bt||P?"set":"value";if(O?(A||P?h={get:Xt(function(){return dt(this)},a,"get"),set:function(d){v[4](this,d)}}:h[I]=dt,A||Xt(h[I],a,H?"":I)):A||(h=Object.getOwnPropertyDescriptor(u,a)),!A&&!O){if((l=ut[+x][a])&&(l^p)!==7)throw Error("Decorating two elements with the same name ("+h[I].name+") is not supported yet");ut[+x][a]=p<3?1:p}}for(var b=u,W=Y.length-1;W>=0;W-=g?2:1){var mt=C(Y[W],"A decorator","be",!0),gt=g?Y[W-1]:void 0,Z={},k={kind:["field","accessor","method","getter","setter","class"][p],name:a,metadata:s,addInitializer:function(d,D){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");C(D,"An initializer","be",!0),y.push(D)}.bind(null,Z)};if(J)l=mt.call(gt,b,k),Z.v=1,C(l,"class decorators","return")&&(b=l);else if(k.static=x,k.private=O,l=k.access={has:O?ht.bind():function(d){return a in d}},bt||(l.get=O?H?function(d){return X(d),h.value}:M("get",0,X):function(d){return d[a]}),H||ft||(l.set=O?M("set",0,X):function(d,D){d[a]=D}),b=mt.call(gt,P?{get:h.get,set:h.set}:h[I],k),Z.v=1,P){if(typeof b=="object"&&b)(l=C(b.get,"accessor.get"))&&(h.get=l),(l=C(b.set,"accessor.set"))&&(h.set=l),(l=C(b.init,"accessor.init"))&&Q.unshift(l);else if(b!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else C(b,(A?"field":"method")+" decorators","return")&&(A?Q.unshift(b):h[I]=b)}return p<2&&L.push(j(Q,x,1),j(y,x,0)),A||J||(O?P?L.splice(-1,0,M("get",x),M("set",x)):L.push(H?h[I]:C.call.bind(h[I])):N(u,a,h)),b}function pt(u){return N(u,T,{configurable:!0,enumerable:!0,value:s})}return r!==void 0&&(s=r[T]),s=G(s??null),_=[],R=function(u){u&&_.push(j(u))},E=function(u,v){for(var g=0;g<e.length;g++){var a=e[g],p=a[1],y=7&p;if((8&p)==u&&!y==v){var L=a[2],x=!!a[3],O=16&p;ct(u?i:i.prototype,a,O,x?"#"+L:be(L),y,y<2?[]:u?F=F||[]:c=c||[],_,!!u,x,v,u&&x?function(A){return ge(A)===i}:n)}}},E(8,0),E(0,0),E(8,1),E(0,1),R(c),R(F),l=_,at||pt(i),{e:l,get c(){var u=[];return at&&[pt(i=ct(i,[t],o,i.name,5,u)),j(u,1)]}}}function be(i){var t=me(i,"string");return typeof t=="symbol"?t:t+""}function me(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var o=e.call(i,t||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function Xt(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 ge(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 Qt,Jt=class extends Yt{static{({e:[kt,Vt,Bt,Tt,jt,Ht,Mt,Wt,$t,Kt,Ut,qt,Nt,Gt,Dt],c:[Qt,Pt]}=fe(this,[xe("rui-combobox")],[[V({type:String,reflect:!0,defaultValue:""}),0,"value"],[V({type:String,defaultValue:""}),0,"label"],[V({type:String,defaultValue:""}),0,"placeholder"],[V({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[V({type:Boolean,reflect:!0,defaultValue:!1}),0,"openOnFocus"],[ve({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[Oe({ref:"root"}),0,"rootTarget"],[ye(["value","label","placeholder","disabled","openOnFocus"]),2,"onPropsUpdated"],[w({ref:"root",type:"focusin"}),2,"onRootFocusIn"],[w({ref:"root",type:"input"}),2,"onRootInput"],[w({ref:"root",type:"keydown",options:{capture:!0}}),2,"onRootKeydown"],[w({selector:"[data-combobox-trigger]",type:"click"}),2,"onTriggerClick"],[w({selector:'[data-combobox-listbox] [role="option"]',type:"pointerover"}),2,"onOptionPointerOver"],[w({selector:'[data-combobox-listbox] [role="option"]',type:"mousedown"}),2,"onOptionMouseDown"],[w({selector:'[data-combobox-listbox] [role="option"]',type:"click"}),2,"onOptionClick"],[w({ref:"root",type:"focusout"}),2,"onFocusOut"],[w({document:!0,type:"pointerdown"}),2,"onDocumentPointerDown"]],0,void 0,Yt))}constructor(...t){super(...t),Gt(this)}value=(Dt(this),kt(this));label=(Vt(this),Bt(this));placeholder=(Tt(this),jt(this));disabled=(Ht(this),Mt(this));openOnFocus=(Wt(this),$t(this));changeEvent=(Kt(this),Ut(this));open=(qt(this),!1);skipNextFocusOpen=!1;uid=Math.random().toString(36).slice(2,9);listboxBehavior=new U({getAnchor:()=>this.rootTarget,getFloating:()=>this.getListboxPopup(),getOpen:()=>this.open,getOptions:()=>this.getOptions(),getActiveDescendantHost:()=>this.getInput(),getOptionIdPrefix:()=>`rui-combobox-option-${this.uid}`});rootTarget=Nt(this);get listboxId(){return`rui-combobox-list-${this.uid}`}get inputId(){return`rui-combobox-input-${this.uid}`}getInput(){return this.querySelector("[data-combobox-input]")}getTrigger(){return this.querySelector("[data-combobox-trigger]")}getListboxPopup(){return this.querySelector("[data-combobox-listbox]")}getListbox(){let t=this.querySelector("rui-listbox");return t instanceof HTMLElement?t.querySelector('[role="listbox"]')??t:this.getListboxPopup()}getListboxHost(){return this.querySelector("rui-listbox")}getOptions(){let t=this.getListbox();return t?Array.from(t.querySelectorAll('[role="option"]')):[]}getOptionLabel(t){return t.getAttribute("data-label")||t.textContent?.trim()||""}ensureOptionIds(){this.listboxBehavior.ensureOptionIds()}getAccessibleName(){return z(this)?.textContent?.trim()||this.label||"Suggestions"}isComboboxInput(t){return t instanceof HTMLElement&&t.localName==="input"&&t.hasAttribute("data-combobox-input")}syncLabel(){let t=this.getInput();Ot(this,t,{controlId:this.inputId,label:this.label,labelId:`rui-combobox-label-${this.uid}`})}syncTrigger(){let t=this.getTrigger(),e=this.getListbox();!t||!e||(t.setAttribute("aria-expanded",String(this.open)),t.setAttribute("aria-controls",e.id||this.listboxId),t.tabIndex=-1,this.disabled&&(t.disabled=!0))}syncInput(){let t=this.getInput(),e=this.getListbox(),o=this.getListboxPopup();!t||!e||(t.id||(t.id=this.inputId),e.id||(e.id=this.listboxId),t.setAttribute("role","combobox"),t.setAttribute("aria-haspopup","listbox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-expanded",String(this.open)),t.setAttribute("aria-controls",this.listboxId),e.setAttribute("aria-label",this.getAccessibleName()),o&&(o.removeAttribute("role"),o.removeAttribute("aria-label")),this.placeholder&&!t.placeholder&&(t.placeholder=this.placeholder),this.disabled&&(t.disabled=!0),this.syncTrigger())}syncListboxHost(){let t=this.getListboxHost();t&&(t.embedded=!0,t.value=this.value)}syncOptionSelection(){for(let t of this.getOptions()){let o=(t.getAttribute("data-value")||this.getOptionLabel(t))===this.value&&this.value!=="";t.setAttribute("aria-selected",String(o))}}setVisualFocusCombobox(){this.listboxBehavior.clearActiveOption(),this.syncOptionSelection()}setOpen(t,e={}){let o=e.activate??"none";this.open=t;let n=this.getInput(),r=this.getListboxPopup();if(!(!n||!r)){if(n.setAttribute("aria-expanded",String(t)),r.toggleAttribute("hidden",!t),this.syncTrigger(),!t){this.listboxBehavior.clearActiveOption(),this.listboxBehavior.syncPopoverPosition();return}if(this.ensureOptionIds(),this.listboxBehavior.syncPopoverPosition(),o==="first"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?0:-1);return}if(o==="last"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?s.length-1:-1);return}this.listboxBehavior.clearActiveOption()}}getAutocomplete(){return this.querySelector("rui-autocomplete")}syncAutocompleteFilter(){let t=this.getAutocomplete();if(t){t.syncFilter();return}let e=this.getInput()?.value??"";for(let o of this.getOptions()){let n=yt(this.getOptionLabel(o),e,"base");o.hidden=e.trim()!==""&&!n}}showAllOptions(){for(let t of this.getOptions())t.hidden=!1}syncFilter(){this.syncAutocompleteFilter()}select(t){if(t.getAttribute("aria-disabled")==="true")return;let e=t.getAttribute("data-value")||this.getOptionLabel(t),o=this.getOptionLabel(t)||e;this.value=e;let n=this.getInput();n&&(n.value=o),this.changeEvent.emit({value:e}),this.syncOptionSelection(),this.skipNextFocusOpen=!0,this.setOpen(!1),n?.focus()}syncFromValue(){let t=this.getInput();if(!t)return;let e=this.getOptions().find(n=>n.getAttribute("data-value")===this.value),o=e?this.getOptionLabel(e):this.value||"";t.value=o}initialize(){this.ensureOptionIds(),this.syncLabel(),this.syncInput(),this.syncListboxHost(),this.syncFromValue(),this.syncOptionSelection(),this.setOpen(!1)}onConnected(){this.initialize()}disconnectedCallback(){this.listboxBehavior.destroy(),super.disconnectedCallback()}onPropsUpdated(){this.syncLabel(),this.syncInput(),this.syncListboxHost(),this.syncFromValue(),this.syncOptionSelection()}onRootFocusIn(t){if(this.isComboboxInput(t.target)){if(this.skipNextFocusOpen){this.skipNextFocusOpen=!1;return}this.openOnFocus&&(this.syncFilter(),this.setOpen(!0),this.setVisualFocusCombobox())}}onRootInput(t){if(!this.isComboboxInput(t.target))return;let e=t.target;this.syncFilter(),e.value.trim()!==""&&this.listboxBehavior.getVisibleOptions().length?this.setOpen(!0):e.value.trim()===""&&this.openOnFocus?this.setOpen(!0):(e.value.trim()===""||!this.listboxBehavior.getVisibleOptions().length)&&this.setOpen(!1),this.setVisualFocusCombobox()}onRootKeydown(t){this.isComboboxInput(t.target)&&this.handleInputKeydown(t)}handleInputKeydown(t){if(t.key==="Home"){let e=this.getInput();if(!e)return;t.preventDefault(),e.setSelectionRange(0,0),this.setVisualFocusCombobox();return}if(t.key==="End"){let e=this.getInput();if(!e)return;t.preventDefault();let o=e.value.length;e.setSelectionRange(o,o),this.setVisualFocusCombobox();return}(t.key==="ArrowDown"||t.key==="ArrowUp")&&(this.syncFilter(),this.listboxBehavior.getVisibleOptions().length||this.showAllOptions()),this.listboxBehavior.handleKeydown(t,{isOpen:this.open,canUseSpace:!1,closesOnTab:!0,enterWhenClosed:"ignore",enterWithoutActive:"close",onOpen:(e="none")=>{this.syncFilter(),this.setOpen(!0,{activate:e})},onClose:()=>this.setOpen(!1),onSelectActive:()=>{let e=this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];e&&this.select(e)},onEscapeWhenClosed:()=>{let e=this.getInput();e&&e.value&&(e.value="",this.value="",this.changeEvent.emit({value:""}),this.syncFilter())}})}onTriggerClick(t){t.preventDefault();let e=this.getInput();!e||e.disabled||(this.open?(this.skipNextFocusOpen=!0,this.setOpen(!1)):(this.syncFilter(),this.setOpen(!0),this.setVisualFocusCombobox()),e.focus())}onOptionPointerOver(t){if(!this.open)return;let e=t.target.closest('[role="option"]');if(!e||e.getAttribute("aria-disabled")==="true"||e.hidden)return;let n=this.listboxBehavior.getVisibleOptions().indexOf(e);n>=0&&this.listboxBehavior.setActiveOption(n)}onOptionMouseDown(t){t.preventDefault()}onOptionClick(t){let e=t.target.closest('[role="option"]');e&&this.select(e)}onFocusOut(t){this.listboxBehavior.shouldDismissFocus(t.relatedTarget)&&this.setOpen(!1)}onDocumentPointerDown(t){this.open&&this.listboxBehavior.shouldDismissPointer(t.target)&&this.setOpen(!1)}static{Pt()}};import{jsx as f,jsxs as lt}from"@ecopages/jsx/jsx-runtime";function Zt(i,t){return t===void 0||i?.label!==void 0?i:{...i,label:t}}function m(...i){return i.filter(Boolean).join(" ")}import{jsx as zt}from"@ecopages/jsx/jsx-runtime";function it({class:i,size:t="sm",...e}){return zt("svg",{...e,class:m("rui-icon",t==="md"&&"rui-icon--md",i),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:zt("path",{d:"m6 9 6 6 6-6"})})}import{jsx as B}from"@ecopages/jsx/jsx-runtime";function ot({children:i,class:t,...e}){return B("div",{...e,"data-autocomplete-collection":!0,class:m("rui-autocomplete__collection",t),children:i})}function nt({children:i,class:t,...e}){return B("div",{...e,"data-autocomplete-empty":!0,class:m("rui-autocomplete__empty",t),children:i})}function Ae({children:i}){return B("div",{class:"rui-autocomplete","data-ref":"root",children:i})}function rt({children:i,...t}){return B("rui-autocomplete",{...t,children:B(Ae,{children:i})})}import{jsx as S}from"@ecopages/jsx/jsx-runtime";function st({value:i,label:t,children:e,class:o,disabled:n,...r}){return S("div",{...r,class:m("rui-listbox__option",o),role:"option","data-value":i,"data-label":t,"aria-disabled":n?"true":void 0,tabindex:-1,children:e})}function we(i,t){return t??!i}function te({bordered:i,children:t,disabled:e,label:o}){return S("div",{class:m("rui-listbox",i&&"rui-listbox--bordered"),role:"listbox","data-rui-control":!0,"data-rui-control-type":"text","aria-label":o||void 0,"aria-disabled":e?"true":void 0,children:t})}function q({options:i,children:t,embedded:e,bordered:o,label:n,disabled:r,...s}){let l=we(e,o);return i!=null?S("rui-listbox",{...s,embedded:e,bordered:o,label:n,disabled:r,children:S(te,{bordered:l,disabled:r,label:n,children:i.map(c=>S(st,{value:c.value,label:typeof c.label=="string"?c.label:void 0,disabled:c.disabled,children:c.label}))})}):S("rui-listbox",{...s,embedded:e,bordered:o,label:n,disabled:r,children:S(te,{bordered:l,disabled:r,label:n,children:t})})}function ie({children:i,class:t,...e}){return f("div",{...e,class:m("rui-combobox__control",t),children:i})}function oe({placeholder:i,disabled:t,class:e,...o}){return f("input",{...o,type:"text","data-combobox-input":!0,"data-autocomplete-input":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:m("rui-combobox__input",e),placeholder:i,disabled:t,autocomplete:"off"})}function ne({children:i,class:t,aria:e,disabled:o,...n}){return f("button",{...n,aria:Zt(e,"Show suggestions"),type:"button","data-combobox-trigger":!0,class:m("rui-control-toggle",t),disabled:o,tabIndex:-1,children:i??f(it,{})})}function re({children:i,class:t,...e}){return f("div",{...e,"data-combobox-listbox":!0,class:m("rui-combobox__listbox rui-popover rui-popover--listbox rui-floating",t),children:i})}function ee({children:i}){return f("div",{class:"rui-combobox","data-ref":"root",children:i})}function Ce({options:i,children:t,...e}){return i!=null?f("rui-combobox",{...e,children:lt(ee,{children:[lt(ie,{children:[f(oe,{placeholder:e.placeholder,disabled:e.disabled}),f(ne,{})]}),f(re,{children:f(rt,{children:lt(ot,{children:[f(q,{embedded:!0,options:i}),f(nt,{children:"No results found."})]})})})]})}):f("rui-combobox",{...e,children:f(ee,{children:t})})}export{Ce as RuiCombobox,ie as RuiComboboxControl,Qt as RuiComboboxElement,oe as RuiComboboxInput,re as RuiComboboxListbox,ne as RuiComboboxTrigger,q as RuiListbox,st as RuiListboxOption};
|
|
1
|
+
import{RadiantElement as Yt,customElement as xe,event as ve,onEvent as w,onUpdated as ye,prop as k,query as Oe}from"@ecopages/radiant";function yt(i,t,e="base"){if(!t)return!0;if(e==="case")return i.includes(t);let o=new Intl.Collator(void 0,{sensitivity:e==="accent"?"accent":"base",usage:"search"});for(let n=0;n<=i.length-t.length;n+=1){let r=i.slice(n,n+t.length);if(o.compare(r,t)===0)return!0}return!1}function z(i){let t=i.previousElementSibling;return t?.tagName.toLowerCase()==="label"?t:i.parentElement?.querySelector("[data-rui-field-label], label.rui-label")??null}function Ot(i,t,e){if(!t||t.hasAttribute("data-rui-field-managed"))return;let o=z(i);if(o){o.id||(o.id=e.labelId),o.htmlFor||(o.htmlFor=e.controlId),t.setAttribute("aria-labelledby",o.id),t.removeAttribute("aria-label");return}if(e.label){t.setAttribute("aria-label",e.label),t.removeAttribute("aria-labelledby");return}t.removeAttribute("aria-label"),t.removeAttribute("aria-labelledby")}var se={top:"bottom",bottom:"top",left:"right",right:"left"},le=8;function ae(i){let t=i.indexOf("-");if(t===-1)return{side:i,align:"center"};let e=i.slice(0,t),o=i.slice(t+1);return{side:e,align:o==="start"||o==="end"?o:"center"}}function Ct(i){return i==="top"||i==="bottom"?"y":"x"}function At(i,t,e,o,n){let{width:r,height:s}=t,l=0,c=0;switch(e){case"top":c=i.top-s-n;break;case"bottom":c=i.bottom+n;break;case"left":l=i.left-r-n;break;case"right":l=i.right+n;break}return Ct(e)==="y"?o==="start"?l=i.left:o==="end"?l=i.right-r:l=i.left+(i.width-r)/2:o==="start"?c=i.top:o==="end"?c=i.bottom-s:c=i.top+(i.height-s)/2,{x:l,y:c}}function ue(i,t,e,o){let{padding:n,width:r,height:s}=o;return e==="top"?Math.max(0,n-i.y):e==="bottom"?Math.max(0,i.y+t.height-(s-n)):e==="left"?Math.max(0,n-i.x):Math.max(0,i.x+t.width-(r-n))}function wt(i,t,e,o){let{padding:n,width:r,height:s}=o;return e==="top"?i.top-n-t.height:e==="bottom"?s-n-t.height-i.bottom:e==="left"?i.left-n-t.width:r-n-t.width-i.right}function ce(i,t){return t==="center"?i:`${i}-${t}`}function he(i,t,e,o){let{padding:n,width:r,height:s}=o;if(Ct(e)==="y"){let c=Math.max(n,r-n-t.width);return{x:Math.min(Math.max(i.x,n),c),y:i.y}}let l=Math.max(n,s-n-t.height);return{x:i.x,y:Math.min(Math.max(i.y,n),l)}}function pe(i,t,e,o,n={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:le}){let{side:r,align:s}=ae(e),l=At(i,t,r,s,o),c=ue(l,t,r,n),F=r,_=l;if(c>0){let R=se[r],E=At(i,t,R,s,o),T=wt(i,t,r,n);wt(i,t,R,n)>T&&(F=R,_=E)}return{coords:he(_,t,F,n),placement:ce(F,s)}}function de(i,t,e,o,n={}){let{coords:r,placement:s}=pe(i.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},e,o);return Object.assign(t.style,{position:"fixed",left:`${r.x}px`,top:`${r.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),n.matchAnchorWidth&&(t.style.width=`${i.offsetWidth}px`),t.setAttribute("data-placement",s),s}function It({anchor:i,floating:t,getPlacement:e,gap:o,matchAnchorWidth:n}){let r=()=>{t.hidden||de(i,t,e(),o,{matchAnchorWidth:n})};r(),window.addEventListener("resize",r),window.addEventListener("scroll",r,!0);let s=new ResizeObserver(r);return s.observe(i),s.observe(t),()=>{window.removeEventListener("resize",r),window.removeEventListener("scroll",r,!0),s.disconnect()}}function Ft(i,t=document.body){let e=i.parentNode;if(!e)return{unmount:()=>{}};let o=document.createComment("rui-portal");return e.insertBefore(o,i),t.appendChild(i),{unmount:()=>{let n=o.parentNode;n&&(n.insertBefore(i,o),o.remove())}}}function tt(i,t,e){return e?!!(i?.contains(e)||t?.contains(e)):!1}function _t(i,t,e){return e instanceof Node?!tt(i,t,e):!0}function Rt(i,t,e){return!tt(i,t,e)}var $=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.toggleAttribute("hidden",!0);return}let o=this.config.getAnchor();if(!o)return;t.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=Ft(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=It({anchor:o,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return tt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};function Et(i){return i.filter(t=>!t.hidden&&t.getAttribute("aria-disabled")!=="true")}function Lt(i,t,e){return e===0?-1:t===1?i>=e-1?0:i+1:i<=0?e-1:i-1}function et(i,t){t?.removeAttribute("aria-activedescendant");for(let e of i)e.removeAttribute("data-active")}function St(i,t,e,o,n){et(i,o);let r=t[e];return!r||!o?null:(r.id||(r.id=`${n}-${e}`),r.setAttribute("data-active","true"),o.setAttribute("aria-activedescendant",r.id),r.scrollIntoView({block:"nearest"}),r)}var U=class{config;popoverController;activeIndex=-1;visualFocus=!1;constructor(t){this.config=t,this.popoverController=new $({getAnchor:t.getAnchor,getFloating:t.getFloating,getOpen:t.getOpen,getPlacement:()=>"bottom-start",gap:4,portal:!1,matchAnchorWidth:!0})}get activeOptionIndex(){return this.activeIndex}get hasVisualFocus(){return this.visualFocus}ensureOptionIds(){this.config.getOptions().forEach((t,e)=>{t.id||(t.id=`${this.config.getOptionIdPrefix()}-${e}`)})}getVisibleOptions(){return Et(this.config.getOptions())}clearActiveOption(){this.activeIndex=-1,this.visualFocus=!1,et(this.config.getOptions(),this.config.getActiveDescendantHost())}setActiveOption(t){let e=this.getVisibleOptions();if(t<0||t>=e.length){this.clearActiveOption();return}this.activeIndex=t,this.visualFocus=!0,St(this.config.getOptions(),e,t,this.config.getActiveDescendantHost(),this.config.getOptionIdPrefix())}moveActive(t,e){let o=this.getVisibleOptions();if(o.length){if(!this.config.getOpen()){e(t===1?"first":"last");return}if(this.visualFocus){this.setActiveOption(Lt(this.activeIndex,t,o.length));return}this.setActiveOption(t===1?0:o.length-1)}}handleKeydown(t,e){if(t.ctrlKey||t.shiftKey||t.metaKey)return;this.keydownHandlers[t.key]?.call(this,t,e)}keydownHandlers={ArrowDown:this.handleArrowKey,ArrowUp:this.handleArrowKey,Escape:this.handleEscapeKey,Enter:this.handleActivationKey," ":this.handleActivationKey,Tab:this.handleTabKey};handleArrowKey(t,e){t.preventDefault(),t.stopPropagation();let o=t.key==="ArrowDown"?1:-1;if(t.altKey){this.handleModifiedArrow(o,e);return}this.moveActive(o,n=>e.onOpen(n))}handleModifiedArrow(t,e){t===1&&!e.isOpen&&e.onOpen(),t===-1&&e.isOpen&&e.onClose("arrow")}handleEscapeKey(t,e){t.preventDefault(),e.isOpen?e.onClose("escape"):e.onEscapeWhenClosed?.()}handleActivationKey(t,e){if(!(t.key===" "&&!e.canUseSpace)){if(!e.isOpen&&e.enterWhenClosed==="open"){t.preventDefault(),e.onOpen();return}if(e.isOpen){if(this.hasActiveOption()){t.preventDefault(),e.onSelectActive();return}t.key==="Enter"&&e.enterWithoutActive==="close"&&(t.preventDefault(),e.onClose("enter"))}}}handleTabKey(t,e){e.isOpen&&(this.hasActiveOption()&&e.closesOnTab?e.onSelectActive():e.onClose("tab"))}hasActiveOption(){return this.visualFocus&&!!this.getVisibleOptions()[this.activeIndex]}syncPopoverPosition(){this.popoverController.sync()}shouldDismissFocus(t){return _t(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}shouldDismissPointer(t){return Rt(this.config.getAnchor(),this.popoverController.getFloatingElement(),t)}destroy(){this.popoverController.destroy()}};var Dt,Pt,Bt,kt,Vt,Tt,Kt,Ht,jt,Mt,Wt,$t,Ut,qt,Nt,Gt;function fe(i,t,e,o,n,r){var s,l,c,F,_,R,E,T=Symbol.metadata||Symbol.for("Symbol.metadata"),N=Object.defineProperty,G=Object.create,at=[G(null),G(null)],ut=t.length;function K(a,v,g){return function(u,h){v&&(h=u,u=i);for(var y=0;y<a.length;y++)h=a[y].apply(u,g?[h]:[]);return g?h:u}}function C(a,v,g,u){if(typeof a!="function"&&(u||a!==void 0))throw new TypeError(v+" must "+(g||"be")+" a function"+(u?"":" or undefined"));return a}function ct(a,v,g,u,h,y,L,x,O,A,pt){function X(d){if(!pt(d))throw new TypeError("Attempted to access private element on non-instance")}var Y=[].concat(v[0]),dt=v[3],J=!L,P=h===1,ft=h===3,bt=h===4,H=h===2;function j(d,D,xt){return function(W,vt){return D&&(vt=W,W=a),xt&&xt(W),p[d].call(W,vt)}}if(!J){var p={},Q=[],I=ft?"get":bt||P?"set":"value";if(O?(A||P?p={get:Xt(function(){return dt(this)},u,"get"),set:function(d){v[4](this,d)}}:p[I]=dt,A||Xt(p[I],u,H?"":I)):A||(p=Object.getOwnPropertyDescriptor(a,u)),!A&&!O){if((l=at[+x][u])&&(l^h)!==7)throw Error("Decorating two elements with the same name ("+p[I].name+") is not supported yet");at[+x][u]=h<3?1:h}}for(var b=a,M=Y.length-1;M>=0;M-=g?2:1){var mt=C(Y[M],"A decorator","be",!0),gt=g?Y[M-1]:void 0,Z={},B={kind:["field","accessor","method","getter","setter","class"][h],name:u,metadata:s,addInitializer:function(d,D){if(d.v)throw new TypeError("attempted to call addInitializer after decoration was finished");C(D,"An initializer","be",!0),y.push(D)}.bind(null,Z)};if(J)l=mt.call(gt,b,B),Z.v=1,C(l,"class decorators","return")&&(b=l);else if(B.static=x,B.private=O,l=B.access={has:O?pt.bind():function(d){return u in d}},bt||(l.get=O?H?function(d){return X(d),p.value}:j("get",0,X):function(d){return d[u]}),H||ft||(l.set=O?j("set",0,X):function(d,D){d[u]=D}),b=mt.call(gt,P?{get:p.get,set:p.set}:p[I],B),Z.v=1,P){if(typeof b=="object"&&b)(l=C(b.get,"accessor.get"))&&(p.get=l),(l=C(b.set,"accessor.set"))&&(p.set=l),(l=C(b.init,"accessor.init"))&&Q.unshift(l);else if(b!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else C(b,(A?"field":"method")+" decorators","return")&&(A?Q.unshift(b):p[I]=b)}return h<2&&L.push(K(Q,x,1),K(y,x,0)),A||J||(O?P?L.splice(-1,0,j("get",x),j("set",x)):L.push(H?p[I]:C.call.bind(p[I])):N(a,u,p)),b}function ht(a){return N(a,T,{configurable:!0,enumerable:!0,value:s})}return r!==void 0&&(s=r[T]),s=G(s??null),_=[],R=function(a){a&&_.push(K(a))},E=function(a,v){for(var g=0;g<e.length;g++){var u=e[g],h=u[1],y=7&h;if((8&h)==a&&!y==v){var L=u[2],x=!!u[3],O=16&h;ct(a?i:i.prototype,u,O,x?"#"+L:be(L),y,y<2?[]:a?F=F||[]:c=c||[],_,!!a,x,v,a&&x?function(A){return ge(A)===i}:n)}}},E(8,0),E(0,0),E(8,1),E(0,1),R(c),R(F),l=_,ut||ht(i),{e:l,get c(){var a=[];return ut&&[ht(i=ct(i,[t],o,i.name,5,a)),K(a,1)]}}}function be(i){var t=me(i,"string");return typeof t=="symbol"?t:t+""}function me(i,t){if(typeof i!="object"||!i)return i;var e=i[Symbol.toPrimitive];if(e!==void 0){var o=e.call(i,t||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(i)}function Xt(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 ge(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 Qt,Jt=class extends Yt{static{({e:[Bt,kt,Vt,Tt,Kt,Ht,jt,Mt,Wt,$t,Ut,qt,Nt,Gt,Dt],c:[Qt,Pt]}=fe(this,[xe("rui-combobox")],[[k({type:String,reflect:!0,defaultValue:""}),0,"value"],[k({type:String,defaultValue:""}),0,"label"],[k({type:String,defaultValue:""}),0,"placeholder"],[k({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[k({type:Boolean,reflect:!0,defaultValue:!1}),0,"openOnFocus"],[ve({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[Oe({ref:"root"}),0,"rootTarget"],[ye(["value","label","placeholder","disabled","openOnFocus"]),2,"onPropsUpdated"],[w({ref:"root",type:"focusin"}),2,"onRootFocusIn"],[w({ref:"root",type:"input"}),2,"onRootInput"],[w({ref:"root",type:"keydown",options:{capture:!0}}),2,"onRootKeydown"],[w({selector:"[data-combobox-trigger]",type:"click"}),2,"onTriggerClick"],[w({selector:'[data-combobox-listbox] [role="option"]',type:"pointerover"}),2,"onOptionPointerOver"],[w({selector:'[data-combobox-listbox] [role="option"]',type:"mousedown"}),2,"onOptionMouseDown"],[w({selector:'[data-combobox-listbox] [role="option"]',type:"click"}),2,"onOptionClick"],[w({ref:"root",type:"focusout"}),2,"onFocusOut"],[w({document:!0,type:"pointerdown"}),2,"onDocumentPointerDown"]],0,void 0,Yt))}constructor(...t){super(...t),Gt(this)}value=(Dt(this),Bt(this));label=(kt(this),Vt(this));placeholder=(Tt(this),Kt(this));disabled=(Ht(this),jt(this));openOnFocus=(Mt(this),Wt(this));changeEvent=($t(this),Ut(this));open=(qt(this),!1);skipNextFocusOpen=!1;uid=Math.random().toString(36).slice(2,9);listboxBehavior=new U({getAnchor:()=>this.rootTarget,getFloating:()=>this.getListboxPopup(),getOpen:()=>this.open,getOptions:()=>this.getOptions(),getActiveDescendantHost:()=>this.getInput(),getOptionIdPrefix:()=>`rui-combobox-option-${this.uid}`});rootTarget=Nt(this);get listboxId(){return`rui-combobox-list-${this.uid}`}get inputId(){return`rui-combobox-input-${this.uid}`}getInput(){return this.querySelector("[data-combobox-input]")}getTrigger(){return this.querySelector("[data-combobox-trigger]")}getListboxPopup(){return this.querySelector("[data-combobox-listbox]")}getListbox(){let t=this.querySelector("rui-listbox");return t instanceof HTMLElement?t.querySelector('[role="listbox"]')??t:this.getListboxPopup()}getListboxHost(){return this.querySelector("rui-listbox")}getOptions(){let t=this.getListbox();return t?Array.from(t.querySelectorAll('[role="option"]')):[]}getOptionLabel(t){return t.getAttribute("data-label")||t.textContent?.trim()||""}ensureOptionIds(){this.listboxBehavior.ensureOptionIds()}getAccessibleName(){return z(this)?.textContent?.trim()||this.label||"Suggestions"}isComboboxInput(t){return t instanceof HTMLElement&&t.localName==="input"&&t.hasAttribute("data-combobox-input")}syncLabel(){let t=this.getInput();Ot(this,t,{controlId:this.inputId,label:this.label,labelId:`rui-combobox-label-${this.uid}`})}syncTrigger(){let t=this.getTrigger(),e=this.getListbox();!t||!e||(t.setAttribute("aria-expanded",String(this.open)),t.setAttribute("aria-controls",e.id||this.listboxId),t.tabIndex=-1,this.disabled&&(t.disabled=!0))}syncInput(){let t=this.getInput(),e=this.getListbox(),o=this.getListboxPopup();!t||!e||(t.id||(t.id=this.inputId),e.id||(e.id=this.listboxId),t.setAttribute("role","combobox"),t.setAttribute("aria-haspopup","listbox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-expanded",String(this.open)),t.setAttribute("aria-controls",this.listboxId),e.setAttribute("aria-label",this.getAccessibleName()),o&&(o.removeAttribute("role"),o.removeAttribute("aria-label")),this.placeholder&&!t.placeholder&&(t.placeholder=this.placeholder),this.disabled&&(t.disabled=!0),this.syncTrigger())}syncListboxHost(){let t=this.getListboxHost();t&&(t.embedded=!0,t.value=this.value)}syncOptionSelection(){for(let t of this.getOptions()){let o=(t.getAttribute("data-value")||this.getOptionLabel(t))===this.value&&this.value!=="";t.setAttribute("aria-selected",String(o))}}setVisualFocusCombobox(){this.listboxBehavior.clearActiveOption(),this.syncOptionSelection()}setOpen(t,e={}){let o=e.activate??"none";this.open=t;let n=this.getInput(),r=this.getListboxPopup();if(!(!n||!r)){if(n.setAttribute("aria-expanded",String(t)),r.toggleAttribute("hidden",!t),this.syncTrigger(),!t){this.listboxBehavior.clearActiveOption(),this.listboxBehavior.syncPopoverPosition();return}if(this.ensureOptionIds(),this.listboxBehavior.syncPopoverPosition(),o==="first"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?0:-1);return}if(o==="last"){let s=this.listboxBehavior.getVisibleOptions();this.listboxBehavior.setActiveOption(s.length?s.length-1:-1);return}this.listboxBehavior.clearActiveOption()}}getAutocomplete(){return this.querySelector("rui-autocomplete")}syncAutocompleteFilter(){let t=this.getAutocomplete();if(t){t.syncFilter();return}let e=this.getInput()?.value??"";for(let o of this.getOptions()){let n=yt(this.getOptionLabel(o),e,"base");o.hidden=e.trim()!==""&&!n}}showAllOptions(){for(let t of this.getOptions())t.hidden=!1}syncFilter(){this.syncAutocompleteFilter()}select(t){if(t.getAttribute("aria-disabled")==="true")return;let e=t.getAttribute("data-value")||this.getOptionLabel(t),o=this.getOptionLabel(t)||e;this.value=e;let n=this.getInput();n&&(n.value=o),this.changeEvent.emit({value:e}),this.syncOptionSelection(),this.skipNextFocusOpen=!0,this.setOpen(!1),n?.focus()}syncFromValue(){let t=this.getInput();if(!t)return;let e=this.getOptions().find(n=>n.getAttribute("data-value")===this.value),o=e?this.getOptionLabel(e):this.value||"";t.value=o}initialize(){this.ensureOptionIds(),this.syncLabel(),this.syncInput(),this.syncListboxHost(),this.syncFromValue(),this.syncOptionSelection(),this.setOpen(!1)}onConnected(){this.initialize()}disconnectedCallback(){this.listboxBehavior.destroy(),super.disconnectedCallback()}onPropsUpdated(){this.syncLabel(),this.syncInput(),this.syncListboxHost(),this.syncFromValue(),this.syncOptionSelection()}onRootFocusIn(t){if(this.isComboboxInput(t.target)){if(this.skipNextFocusOpen){this.skipNextFocusOpen=!1;return}this.openOnFocus&&(this.syncFilter(),this.setOpen(!0),this.setVisualFocusCombobox())}}onRootInput(t){if(!this.isComboboxInput(t.target))return;let e=t.target;this.syncFilter(),e.value.trim()!==""&&this.listboxBehavior.getVisibleOptions().length?this.setOpen(!0):e.value.trim()===""&&this.openOnFocus?this.setOpen(!0):(e.value.trim()===""||!this.listboxBehavior.getVisibleOptions().length)&&this.setOpen(!1),this.setVisualFocusCombobox()}onRootKeydown(t){this.isComboboxInput(t.target)&&this.handleInputKeydown(t)}handleInputKeydown(t){if(t.key==="Home"){let e=this.getInput();if(!e)return;t.preventDefault(),e.setSelectionRange(0,0),this.setVisualFocusCombobox();return}if(t.key==="End"){let e=this.getInput();if(!e)return;t.preventDefault();let o=e.value.length;e.setSelectionRange(o,o),this.setVisualFocusCombobox();return}(t.key==="ArrowDown"||t.key==="ArrowUp")&&(this.syncFilter(),this.listboxBehavior.getVisibleOptions().length||this.showAllOptions()),this.listboxBehavior.handleKeydown(t,{isOpen:this.open,canUseSpace:!1,closesOnTab:!0,enterWhenClosed:"ignore",enterWithoutActive:"close",onOpen:(e="none")=>{this.syncFilter(),this.setOpen(!0,{activate:e})},onClose:()=>this.setOpen(!1),onSelectActive:()=>{let e=this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];e&&this.select(e)},onEscapeWhenClosed:()=>{let e=this.getInput();e&&e.value&&(e.value="",this.value="",this.changeEvent.emit({value:""}),this.syncFilter())}})}onTriggerClick(t){t.preventDefault();let e=this.getInput();!e||e.disabled||(this.open?(this.skipNextFocusOpen=!0,this.setOpen(!1)):(this.syncFilter(),this.setOpen(!0),this.setVisualFocusCombobox()),e.focus())}onOptionPointerOver(t){if(!this.open)return;let e=t.target.closest('[role="option"]');if(!e||e.getAttribute("aria-disabled")==="true"||e.hidden)return;let n=this.listboxBehavior.getVisibleOptions().indexOf(e);n>=0&&this.listboxBehavior.setActiveOption(n)}onOptionMouseDown(t){t.preventDefault()}onOptionClick(t){let e=t.target.closest('[role="option"]');e&&this.select(e)}onFocusOut(t){this.listboxBehavior.shouldDismissFocus(t.relatedTarget)&&this.setOpen(!1)}onDocumentPointerDown(t){this.open&&this.listboxBehavior.shouldDismissPointer(t.target)&&this.setOpen(!1)}static{Pt()}};import{jsx as f,jsxs as lt}from"@ecopages/jsx/jsx-runtime";function Zt(i,t){return t===void 0||i?.label!==void 0?i:{...i,label:t}}function m(...i){return i.filter(Boolean).join(" ")}import{jsx as zt}from"@ecopages/jsx/jsx-runtime";function it({class:i,size:t="sm",...e}){return zt("svg",{...e,class:m("rui-icon",t==="md"&&"rui-icon--md",i),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:zt("path",{d:"m6 9 6 6 6-6"})})}import{jsx as V}from"@ecopages/jsx/jsx-runtime";function ot({children:i,class:t,...e}){return V("div",{...e,"data-autocomplete-collection":!0,class:m("rui-autocomplete__collection",t),children:i})}function nt({children:i,class:t,...e}){return V("div",{...e,"data-autocomplete-empty":!0,class:m("rui-autocomplete__empty",t),children:i})}function Ae({children:i}){return V("div",{class:"rui-autocomplete","data-ref":"root",children:i})}function rt({children:i,...t}){return V("rui-autocomplete",{...t,children:V(Ae,{children:i})})}import{jsx as S}from"@ecopages/jsx/jsx-runtime";function st({value:i,label:t,children:e,class:o,disabled:n,...r}){return S("div",{...r,class:m("rui-listbox__option",o),role:"option","data-value":i,"data-label":t,"aria-disabled":n?"true":void 0,tabindex:-1,children:e})}function we(i,t){return t??!i}function te({bordered:i,children:t,disabled:e,label:o}){return S("div",{class:m("rui-listbox",i&&"rui-listbox--bordered"),role:"listbox","data-rui-control":!0,"data-rui-control-type":"text","aria-label":o||void 0,"aria-disabled":e?"true":void 0,children:t})}function q({options:i,children:t,embedded:e,bordered:o,label:n,disabled:r,...s}){let l=we(e,o);return i!=null?S("rui-listbox",{...s,embedded:e,bordered:o,label:n,disabled:r,children:S(te,{bordered:l,disabled:r,label:n,children:i.map(c=>S(st,{value:c.value,label:typeof c.label=="string"?c.label:void 0,disabled:c.disabled,children:c.label}))})}):S("rui-listbox",{...s,embedded:e,bordered:o,label:n,disabled:r,children:S(te,{bordered:l,disabled:r,label:n,children:t})})}function ie({children:i,class:t,...e}){return f("div",{...e,class:m("rui-combobox__control",t),children:i})}function oe({placeholder:i,disabled:t,class:e,...o}){return f("input",{...o,type:"text","data-combobox-input":!0,"data-autocomplete-input":!0,"data-rui-control":!0,"data-rui-control-type":"text",class:m("rui-combobox__input",e),placeholder:i,disabled:t,autocomplete:"off"})}function ne({children:i,class:t,aria:e,disabled:o,...n}){return f("button",{...n,aria:Zt(e,"Show suggestions"),type:"button","data-combobox-trigger":!0,class:m("rui-control-toggle",t),disabled:o,tabIndex:-1,children:i??f(it,{})})}function re({children:i,class:t,...e}){return f("div",{...e,"data-combobox-listbox":!0,class:m("rui-combobox__listbox rui-popover rui-popover--listbox rui-floating",t),children:i})}function ee({children:i}){return f("div",{class:"rui-combobox","data-ref":"root",children:i})}function Ce({options:i,children:t,...e}){return i!=null?f("rui-combobox",{...e,children:lt(ee,{children:[lt(ie,{children:[f(oe,{placeholder:e.placeholder,disabled:e.disabled}),f(ne,{})]}),f(re,{children:f(rt,{children:lt(ot,{children:[f(q,{embedded:!0,options:i}),f(nt,{children:"No results found."})]})})})]})}):f("rui-combobox",{...e,children:f(ee,{children:t})})}export{Ce as RuiCombobox,ie as RuiComboboxControl,Qt as RuiComboboxElement,oe as RuiComboboxInput,re as RuiComboboxListbox,ne as RuiComboboxTrigger,q as RuiListbox,st as RuiListboxOption};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/ui/combobox/combobox.script.tsx", "../../../../src/lib/text-filter.ts", "../../../../src/components/ui/shared/field-label.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/shared/collection-navigation.ts", "../../../../src/components/ui/shared/listbox-popover-behavior.ts", "../../../../src/components/ui/combobox/combobox.tsx", "../../../../src/aria.ts", "../../../../src/lib/cx.ts", "../../../../src/lib/icons/chevron-down.tsx", "../../../../src/components/ui/autocomplete/autocomplete.tsx", "../../../../src/components/ui/listbox/listbox.tsx"],
|
|
4
|
-
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_openOnFocus, _init_extra_openOnFocus, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget;\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, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { textContains } from \"@/lib/text-filter\";\nimport { findAssociatedLabel, syncFieldLabel } from \"../shared/field-label\";\nimport { ListboxPopoverBehavior } from \"../shared/listbox-popover-behavior\";\nlet _RuiCombobox;\nclass RuiCombobox extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_openOnFocus, _init_extra_openOnFocus, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _initProto],\n c: [_RuiCombobox, _initClass]\n } = _applyDecs(this, [customElement(\"rui-combobox\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"openOnFocus\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [onUpdated([\"value\", \"label\", \"placeholder\", \"disabled\", \"openOnFocus\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"root\",\n type: \"focusin\"\n }), 2, \"onRootFocusIn\"], [onEvent({\n ref: \"root\",\n type: \"input\"\n }), 2, \"onRootInput\"], [onEvent({\n ref: \"root\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-combobox-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"pointerover\"\n }), 2, \"onOptionPointerOver\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"mousedown\"\n }), 2, \"onOptionMouseDown\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onFocusOut\"], [onEvent({\n document: true,\n type: \"pointerdown\"\n }), 2, \"onDocumentPointerDown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_rootTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n placeholder = (_init_extra_label(this), _init_placeholder(this));\n disabled = (_init_extra_placeholder(this), _init_disabled(this));\n openOnFocus = (_init_extra_disabled(this), _init_openOnFocus(this));\n changeEvent = (_init_extra_openOnFocus(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), false);\n skipNextFocusOpen = false;\n uid = Math.random().toString(36).slice(2, 9);\n listboxBehavior = new ListboxPopoverBehavior({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.getListboxPopup(),\n getOpen: () => this.open,\n getOptions: () => this.getOptions(),\n getActiveDescendantHost: () => this.getInput(),\n getOptionIdPrefix: () => `rui-combobox-option-${this.uid}`\n });\n rootTarget = _init_rootTarget(this);\n get listboxId() {\n return `rui-combobox-list-${this.uid}`;\n }\n get inputId() {\n return `rui-combobox-input-${this.uid}`;\n }\n getInput() {\n return this.querySelector(\"[data-combobox-input]\");\n }\n getTrigger() {\n return this.querySelector(\"[data-combobox-trigger]\");\n }\n getListboxPopup() {\n return this.querySelector(\"[data-combobox-listbox]\");\n }\n getListbox() {\n const host = this.querySelector(\"rui-listbox\");\n if (host instanceof HTMLElement) {\n return host.querySelector('[role=\"listbox\"]') ?? host;\n }\n return this.getListboxPopup();\n }\n getListboxHost() {\n return this.querySelector(\"rui-listbox\");\n }\n getOptions() {\n const listbox = this.getListbox();\n if (!listbox) {\n return [];\n }\n return Array.from(listbox.querySelectorAll('[role=\"option\"]'));\n }\n getOptionLabel(option) {\n return option.getAttribute(\"data-label\") || option.textContent?.trim() || \"\";\n }\n ensureOptionIds() {\n this.listboxBehavior.ensureOptionIds();\n }\n getAccessibleName() {\n const labelElement = findAssociatedLabel(this);\n return labelElement?.textContent?.trim() || this.label || \"Suggestions\";\n }\n isComboboxInput(target) {\n return target instanceof HTMLElement && target.localName === \"input\" && target.hasAttribute(\"data-combobox-input\");\n }\n syncLabel() {\n const input = this.getInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `rui-combobox-label-${this.uid}`\n });\n }\n syncTrigger() {\n const trigger = this.getTrigger();\n const listbox = this.getListbox();\n if (!trigger || !listbox) {\n return;\n }\n trigger.setAttribute(\"aria-expanded\", String(this.open));\n trigger.setAttribute(\"aria-controls\", listbox.id || this.listboxId);\n trigger.tabIndex = -1;\n if (this.disabled) {\n trigger.disabled = true;\n }\n }\n syncInput() {\n const input = this.getInput();\n const listbox = this.getListbox();\n const popup = this.getListboxPopup();\n if (!input || !listbox) {\n return;\n }\n if (!input.id) {\n input.id = this.inputId;\n }\n if (!listbox.id) {\n listbox.id = this.listboxId;\n }\n input.setAttribute(\"role\", \"combobox\");\n input.setAttribute(\"aria-haspopup\", \"listbox\");\n input.setAttribute(\"aria-autocomplete\", \"list\");\n input.setAttribute(\"aria-expanded\", String(this.open));\n input.setAttribute(\"aria-controls\", this.listboxId);\n listbox.setAttribute(\"aria-label\", this.getAccessibleName());\n if (popup) {\n popup.removeAttribute(\"role\");\n popup.removeAttribute(\"aria-label\");\n }\n if (this.placeholder && !input.placeholder) {\n input.placeholder = this.placeholder;\n }\n if (this.disabled) {\n input.disabled = true;\n }\n this.syncTrigger();\n }\n syncListboxHost() {\n const host = this.getListboxHost();\n if (!host) {\n return;\n }\n host.embedded = true;\n host.value = this.value;\n }\n syncOptionSelection() {\n for (const option of this.getOptions()) {\n const optionValue = option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n const isSelected = optionValue === this.value && this.value !== \"\";\n option.setAttribute(\"aria-selected\", String(isSelected));\n }\n }\n setVisualFocusCombobox() {\n this.listboxBehavior.clearActiveOption();\n this.syncOptionSelection();\n }\n setOpen(next, options = {}) {\n const activate = options.activate ?? \"none\";\n this.open = next;\n const input = this.getInput();\n const popup = this.getListboxPopup();\n if (!input || !popup) {\n return;\n }\n input.setAttribute(\"aria-expanded\", String(next));\n popup.toggleAttribute(\"hidden\", !next);\n this.syncTrigger();\n if (!next) {\n this.listboxBehavior.clearActiveOption();\n this.listboxBehavior.syncPopoverPosition();\n return;\n }\n this.ensureOptionIds();\n this.listboxBehavior.syncPopoverPosition();\n if (activate === \"first\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? 0 : -1);\n return;\n }\n if (activate === \"last\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? visible.length - 1 : -1);\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n getAutocomplete() {\n return this.querySelector(\"rui-autocomplete\");\n }\n syncAutocompleteFilter() {\n const autocomplete = this.getAutocomplete();\n if (autocomplete) {\n autocomplete.syncFilter();\n return;\n }\n const query2 = this.getInput()?.value ?? \"\";\n for (const option of this.getOptions()) {\n const matches = textContains(this.getOptionLabel(option), query2, \"base\");\n option.hidden = query2.trim() !== \"\" && !matches;\n }\n }\n /** Restores the unfiltered collection when arrow navigation has no match to enter. */\n showAllOptions() {\n for (const option of this.getOptions()) {\n option.hidden = false;\n }\n }\n syncFilter() {\n this.syncAutocompleteFilter();\n }\n select(option) {\n if (option.getAttribute(\"aria-disabled\") === \"true\") {\n return;\n }\n const value = option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n const label = this.getOptionLabel(option) || value;\n this.value = value;\n const input = this.getInput();\n if (input) {\n input.value = label;\n }\n this.changeEvent.emit({\n value\n });\n this.syncOptionSelection();\n this.skipNextFocusOpen = true;\n this.setOpen(false);\n input?.focus();\n }\n syncFromValue() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n const match = this.getOptions().find(option => option.getAttribute(\"data-value\") === this.value);\n const label = match ? this.getOptionLabel(match) : this.value || \"\";\n input.value = label;\n }\n initialize() {\n this.ensureOptionIds();\n this.syncLabel();\n this.syncInput();\n this.syncListboxHost();\n this.syncFromValue();\n this.syncOptionSelection();\n this.setOpen(false);\n }\n onConnected() {\n this.initialize();\n }\n disconnectedCallback() {\n this.listboxBehavior.destroy();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.syncListboxHost();\n this.syncFromValue();\n this.syncOptionSelection();\n }\n onRootFocusIn(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n if (this.skipNextFocusOpen) {\n this.skipNextFocusOpen = false;\n return;\n }\n if (!this.openOnFocus) {\n return;\n }\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n onRootInput(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n const input = event2.target;\n this.syncFilter();\n if (input.value.trim() !== \"\" && this.listboxBehavior.getVisibleOptions().length) {\n this.setOpen(true);\n } else if (input.value.trim() === \"\" && this.openOnFocus) {\n this.setOpen(true);\n } else if (input.value.trim() === \"\" || !this.listboxBehavior.getVisibleOptions().length) {\n this.setOpen(false);\n }\n this.setVisualFocusCombobox();\n }\n onRootKeydown(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n this.handleInputKeydown(event2);\n }\n handleInputKeydown(event2) {\n if (event2.key === \"Home\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n input.setSelectionRange(0, 0);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"End\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n const length = input.value.length;\n input.setSelectionRange(length, length);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"ArrowDown\" || event2.key === \"ArrowUp\") {\n this.syncFilter();\n if (!this.listboxBehavior.getVisibleOptions().length) {\n this.showAllOptions();\n }\n }\n this.listboxBehavior.handleKeydown(event2, {\n isOpen: this.open,\n canUseSpace: false,\n closesOnTab: true,\n enterWhenClosed: \"ignore\",\n enterWithoutActive: \"close\",\n onOpen: (activation = \"none\") => {\n this.syncFilter();\n this.setOpen(true, {\n activate: activation\n });\n },\n onClose: () => this.setOpen(false),\n onSelectActive: () => {\n const option = this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];\n if (option) {\n this.select(option);\n }\n },\n onEscapeWhenClosed: () => {\n const input = this.getInput();\n if (input && input.value) {\n input.value = \"\";\n this.value = \"\";\n this.changeEvent.emit({\n value: \"\"\n });\n this.syncFilter();\n }\n }\n });\n }\n onTriggerClick(event2) {\n event2.preventDefault();\n const input = this.getInput();\n if (!input || input.disabled) {\n return;\n }\n if (this.open) {\n this.skipNextFocusOpen = true;\n this.setOpen(false);\n } else {\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n input.focus();\n }\n onOptionPointerOver(event2) {\n if (!this.open) {\n return;\n }\n const option = event2.target.closest('[role=\"option\"]');\n if (!option || option.getAttribute(\"aria-disabled\") === \"true\" || option.hidden) {\n return;\n }\n const visible = this.listboxBehavior.getVisibleOptions();\n const index = visible.indexOf(option);\n if (index >= 0) {\n this.listboxBehavior.setActiveOption(index);\n }\n }\n onOptionMouseDown(event2) {\n event2.preventDefault();\n }\n onOptionClick(event2) {\n const option = event2.target.closest('[role=\"option\"]');\n if (option) {\n this.select(option);\n }\n }\n onFocusOut(event2) {\n if (!this.listboxBehavior.shouldDismissFocus(event2.relatedTarget)) {\n return;\n }\n this.setOpen(false);\n }\n onDocumentPointerDown(event2) {\n if (!this.open) {\n return;\n }\n if (!this.listboxBehavior.shouldDismissPointer(event2.target)) {\n return;\n }\n this.setOpen(false);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCombobox as RuiCombobox };", "export function textContains(text, query, sensitivity = \"base\") {\n if (!query) {\n return true;\n }\n if (sensitivity === \"case\") {\n return text.includes(query);\n }\n const collator = new Intl.Collator(void 0, {\n sensitivity: sensitivity === \"accent\" ? \"accent\" : \"base\",\n usage: \"search\"\n });\n for (let index = 0; index <= text.length - query.length; index += 1) {\n const slice = text.slice(index, index + query.length);\n if (collator.compare(slice, query) === 0) {\n return true;\n }\n }\n return false;\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function getVisibleCollectionOptions(options) {\n return options.filter(option => !option.hidden && option.getAttribute(\"aria-disabled\") !== \"true\");\n}\nexport function wrapCollectionIndex(index, direction, length) {\n if (length === 0) {\n return -1;\n }\n if (direction === 1) {\n return index >= length - 1 ? 0 : index + 1;\n }\n return index <= 0 ? length - 1 : index - 1;\n}\nexport function clearCollectionActive(options, activeHost) {\n activeHost?.removeAttribute(\"aria-activedescendant\");\n for (const option of options) {\n option.removeAttribute(\"data-active\");\n }\n}\nexport function setCollectionActive(options, visibleOptions, index, activeHost, idPrefix) {\n clearCollectionActive(options, activeHost);\n const active = visibleOptions[index];\n if (!active || !activeHost) {\n return null;\n }\n if (!active.id) {\n active.id = `${idPrefix}-${index}`;\n }\n active.setAttribute(\"data-active\", \"true\");\n activeHost.setAttribute(\"aria-activedescendant\", active.id);\n active.scrollIntoView({\n block: \"nearest\"\n });\n return active;\n}", "import { PopoverController, shouldDismissPopoverFocus, shouldDismissPopoverPointer } from \"./popover-controller\";\nimport { clearCollectionActive, getVisibleCollectionOptions, setCollectionActive, wrapCollectionIndex } from \"./collection-navigation\";\nexport class ListboxPopoverBehavior {\n config;\n popoverController;\n activeIndex = -1;\n visualFocus = false;\n constructor(config) {\n this.config = config;\n this.popoverController = new PopoverController({\n getAnchor: config.getAnchor,\n getFloating: config.getFloating,\n getOpen: config.getOpen,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false,\n matchAnchorWidth: true\n });\n }\n get activeOptionIndex() {\n return this.activeIndex;\n }\n get hasVisualFocus() {\n return this.visualFocus;\n }\n ensureOptionIds() {\n this.config.getOptions().forEach((option, index) => {\n if (!option.id) {\n option.id = `${this.config.getOptionIdPrefix()}-${index}`;\n }\n });\n }\n getVisibleOptions() {\n return getVisibleCollectionOptions(this.config.getOptions());\n }\n clearActiveOption() {\n this.activeIndex = -1;\n this.visualFocus = false;\n clearCollectionActive(this.config.getOptions(), this.config.getActiveDescendantHost());\n }\n setActiveOption(index) {\n const visible = this.getVisibleOptions();\n if (index < 0 || index >= visible.length) {\n this.clearActiveOption();\n return;\n }\n this.activeIndex = index;\n this.visualFocus = true;\n setCollectionActive(this.config.getOptions(), visible, index, this.config.getActiveDescendantHost(), this.config.getOptionIdPrefix());\n }\n moveActive(direction, onOpen) {\n const visible = this.getVisibleOptions();\n if (!visible.length) {\n return;\n }\n if (!this.config.getOpen()) {\n onOpen(direction === 1 ? \"first\" : \"last\");\n return;\n }\n if (this.visualFocus) {\n this.setActiveOption(wrapCollectionIndex(this.activeIndex, direction, visible.length));\n return;\n }\n this.setActiveOption(direction === 1 ? 0 : visible.length - 1);\n }\n /** Handles the APG keys shared by select-only and autocomplete listboxes. */\n handleKeydown(event, options) {\n if (event.ctrlKey || event.shiftKey || event.metaKey) {\n return;\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n event.stopPropagation();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n if (event.altKey) {\n if (direction === 1 && !options.isOpen) {\n options.onOpen();\n } else if (direction === -1 && options.isOpen) {\n options.onClose(\"arrow\");\n }\n return;\n }\n this.moveActive(direction, activation => options.onOpen(activation));\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n if (options.isOpen) {\n options.onClose(\"escape\");\n } else {\n options.onEscapeWhenClosed?.();\n }\n return;\n }\n if (event.key === \"Enter\" || event.key === \" \" && options.canUseSpace) {\n if (!options.isOpen && options.enterWhenClosed === \"open\") {\n event.preventDefault();\n options.onOpen();\n return;\n }\n const visible = this.getVisibleOptions();\n if (options.isOpen && this.visualFocus && visible[this.activeIndex]) {\n event.preventDefault();\n options.onSelectActive();\n } else if (event.key === \"Enter\" && options.isOpen && options.enterWithoutActive === \"close\") {\n event.preventDefault();\n options.onClose(\"enter\");\n }\n return;\n }\n if (event.key === \"Tab\" && options.isOpen) {\n const visible = this.getVisibleOptions();\n if (this.visualFocus && visible[this.activeIndex] && options.closesOnTab) {\n options.onSelectActive();\n return;\n }\n options.onClose(\"tab\");\n }\n }\n syncPopoverPosition() {\n this.popoverController.sync();\n }\n shouldDismissFocus(relatedTarget) {\n return shouldDismissPopoverFocus(this.config.getAnchor(), this.popoverController.getFloatingElement(), relatedTarget);\n }\n shouldDismissPointer(target) {\n return shouldDismissPopoverPointer(this.config.getAnchor(), this.popoverController.getFloatingElement(), target);\n }\n destroy() {\n this.popoverController.destroy();\n }\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconChevronDown } from \"@/lib/icons\";\nimport { RuiAutocomplete, RuiAutocompleteCollection, RuiAutocompleteEmpty } from \"../autocomplete\";\nimport { RuiListbox } from \"../listbox\";\nimport \"./combobox.script\";\nexport function RuiComboboxControl({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-combobox__control\", className),\n children\n });\n}\nexport function RuiComboboxInput({\n placeholder,\n disabled,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"text\",\n \"data-combobox-input\": true,\n \"data-autocomplete-input\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-combobox__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiComboboxTrigger({\n children,\n class: className,\n aria,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Show suggestions\"),\n type: \"button\",\n \"data-combobox-trigger\": true,\n class: cx(\"rui-control-toggle\", className),\n disabled,\n tabIndex: -1,\n children: children ?? /* @__PURE__ */jsx(RuiIconChevronDown, {})\n });\n}\nexport function RuiComboboxListbox({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-combobox-listbox\": true,\n class: cx(\"rui-combobox__listbox rui-popover rui-popover--listbox rui-floating\", className),\n children\n });\n}\nfunction ComboboxShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-combobox\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiCombobox({\n options,\n children,\n ...props\n}) {\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n children: /* @__PURE__ */jsxs(ComboboxShell, {\n children: [/* @__PURE__ */jsxs(RuiComboboxControl, {\n children: [/* @__PURE__ */jsx(RuiComboboxInput, {\n placeholder: props.placeholder,\n disabled: props.disabled\n }), /* @__PURE__ */jsx(RuiComboboxTrigger, {})]\n }), /* @__PURE__ */jsx(RuiComboboxListbox, {\n children: /* @__PURE__ */jsx(RuiAutocomplete, {\n children: /* @__PURE__ */jsxs(RuiAutocompleteCollection, {\n children: [/* @__PURE__ */jsx(RuiListbox, {\n embedded: true,\n options\n }), /* @__PURE__ */jsx(RuiAutocompleteEmpty, {\n children: \"No results found.\"\n })]\n })\n })\n })]\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n children: /* @__PURE__ */jsx(ComboboxShell, {\n children\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\n };\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconChevronDown({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsx(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"m6 9 6 6 6-6\"\n })\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./autocomplete.script\";\nexport function RuiAutocompleteInput({\n placeholder,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"search\",\n \"data-autocomplete-input\": true,\n class: cx(\"rui-autocomplete__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiAutocompleteCollection({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-collection\": true,\n class: cx(\"rui-autocomplete__collection\", className),\n children\n });\n}\nexport function RuiAutocompleteEmpty({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-empty\": true,\n class: cx(\"rui-autocomplete__empty\", className),\n children\n });\n}\nfunction AutocompleteShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-autocomplete\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiAutocomplete({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-autocomplete\", {\n ...props,\n children: /* @__PURE__ */jsx(AutocompleteShell, {\n children\n })\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./listbox.script\";\nexport function RuiListboxOption({\n value,\n label,\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-listbox__option\", className),\n role: \"option\",\n \"data-value\": value,\n \"data-label\": label,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n tabindex: -1,\n children\n });\n}\nfunction listboxIsBordered(embedded, bordered) {\n if (bordered != null) {\n return bordered;\n }\n return !embedded;\n}\nfunction ListboxShell({\n bordered,\n children,\n disabled,\n label\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: cx(\"rui-listbox\", bordered && \"rui-listbox--bordered\"),\n role: \"listbox\",\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n \"aria-label\": label || void 0,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n children\n });\n}\nexport function RuiListbox({\n options,\n children,\n embedded,\n bordered,\n label,\n disabled,\n ...props\n}) {\n const isBordered = listboxIsBordered(embedded, bordered);\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n embedded,\n bordered,\n label,\n disabled,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n label,\n children: options.map(option => /* @__PURE__ */jsx(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n children: option.label\n }))\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n embedded,\n bordered,\n label,\n disabled,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n label,\n children\n })\n });\n}"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "textContains", "text", "query", "sensitivity", "collator", "index", "slice", "findAssociatedLabel", "owner", "previous", "syncFieldLabel", "control", "options", "labelElement", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "shouldDismissPopoverPointer", "target", "PopoverController", "config", "patch", "mountPortal", "attachFloating", "configuredFloating", "getVisibleCollectionOptions", "options", "option", "wrapCollectionIndex", "index", "direction", "length", "clearCollectionActive", "activeHost", "setCollectionActive", "visibleOptions", "idPrefix", "active", "ListboxPopoverBehavior", "config", "PopoverController", "option", "index", "getVisibleCollectionOptions", "clearCollectionActive", "visible", "setCollectionActive", "direction", "onOpen", "wrapCollectionIndex", "event", "options", "activation", "relatedTarget", "shouldDismissPopoverFocus", "target", "shouldDismissPopoverPointer", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_placeholder", "_init_extra_placeholder", "_init_disabled", "_init_extra_disabled", "_init_openOnFocus", "_init_extra_openOnFocus", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_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", "_RuiCombobox", "RuiCombobox", "RadiantElement", "customElement", "prop", "event", "query", "onUpdated", "onEvent", "args", "ListboxPopoverBehavior", "host", "listbox", "option", "findAssociatedLabel", "target", "input", "syncFieldLabel", "trigger", "popup", "isSelected", "next", "options", "activate", "visible", "autocomplete", "query2", "matches", "textContains", "value", "label", "match", "event2", "length", "activation", "index", "jsx", "jsxs", "withDefaultAriaLabel", "aria", "fallback", "cx", "parts", "jsx", "RuiIconChevronDown", "className", "size", "props", "jsx", "cx", "jsx", "RuiAutocompleteCollection", "children", "className", "props", "jsx", "cx", "RuiAutocompleteEmpty", "AutocompleteShell", "RuiAutocomplete", "jsx", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "listboxIsBordered", "embedded", "bordered", "ListboxShell", "RuiListbox", "options", "isBordered", "option", "RuiComboboxControl", "children", "className", "props", "jsx", "cx", "RuiComboboxInput", "placeholder", "disabled", "RuiComboboxTrigger", "aria", "withDefaultAriaLabel", "RuiIconChevronDown", "RuiComboboxListbox", "ComboboxShell", "RuiCombobox", "options", "jsxs", "RuiAutocomplete", "RuiAutocompleteCollection", "RuiListbox", "RuiAutocompleteEmpty"]
|
|
4
|
+
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_openOnFocus, _init_extra_openOnFocus, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget;\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, event, onEvent, onUpdated, prop, query } from \"@ecopages/radiant\";\nimport { textContains } from \"@/lib/text-filter\";\nimport { findAssociatedLabel, syncFieldLabel } from \"../shared/field-label\";\nimport { ListboxPopoverBehavior } from \"../shared/listbox-popover-behavior\";\nlet _RuiCombobox;\nclass RuiCombobox extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_label, _init_extra_label, _init_placeholder, _init_extra_placeholder, _init_disabled, _init_extra_disabled, _init_openOnFocus, _init_extra_openOnFocus, _init_changeEvent, _init_extra_changeEvent, _init_rootTarget, _init_extra_rootTarget, _initProto],\n c: [_RuiCombobox, _initClass]\n } = _applyDecs(this, [customElement(\"rui-combobox\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"placeholder\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"openOnFocus\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [onUpdated([\"value\", \"label\", \"placeholder\", \"disabled\", \"openOnFocus\"]), 2, \"onPropsUpdated\"], [onEvent({\n ref: \"root\",\n type: \"focusin\"\n }), 2, \"onRootFocusIn\"], [onEvent({\n ref: \"root\",\n type: \"input\"\n }), 2, \"onRootInput\"], [onEvent({\n ref: \"root\",\n type: \"keydown\",\n options: {\n capture: true\n }\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-combobox-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"pointerover\"\n }), 2, \"onOptionPointerOver\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"mousedown\"\n }), 2, \"onOptionMouseDown\"], [onEvent({\n selector: '[data-combobox-listbox] [role=\"option\"]',\n type: \"click\"\n }), 2, \"onOptionClick\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onFocusOut\"], [onEvent({\n document: true,\n type: \"pointerdown\"\n }), 2, \"onDocumentPointerDown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_rootTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n label = (_init_extra_value(this), _init_label(this));\n placeholder = (_init_extra_label(this), _init_placeholder(this));\n disabled = (_init_extra_placeholder(this), _init_disabled(this));\n openOnFocus = (_init_extra_disabled(this), _init_openOnFocus(this));\n changeEvent = (_init_extra_openOnFocus(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), false);\n skipNextFocusOpen = false;\n uid = Math.random().toString(36).slice(2, 9);\n listboxBehavior = new ListboxPopoverBehavior({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.getListboxPopup(),\n getOpen: () => this.open,\n getOptions: () => this.getOptions(),\n getActiveDescendantHost: () => this.getInput(),\n getOptionIdPrefix: () => `rui-combobox-option-${this.uid}`\n });\n rootTarget = _init_rootTarget(this);\n get listboxId() {\n return `rui-combobox-list-${this.uid}`;\n }\n get inputId() {\n return `rui-combobox-input-${this.uid}`;\n }\n getInput() {\n return this.querySelector(\"[data-combobox-input]\");\n }\n getTrigger() {\n return this.querySelector(\"[data-combobox-trigger]\");\n }\n getListboxPopup() {\n return this.querySelector(\"[data-combobox-listbox]\");\n }\n getListbox() {\n const host = this.querySelector(\"rui-listbox\");\n if (host instanceof HTMLElement) {\n return host.querySelector('[role=\"listbox\"]') ?? host;\n }\n return this.getListboxPopup();\n }\n getListboxHost() {\n return this.querySelector(\"rui-listbox\");\n }\n getOptions() {\n const listbox = this.getListbox();\n if (!listbox) {\n return [];\n }\n return Array.from(listbox.querySelectorAll('[role=\"option\"]'));\n }\n getOptionLabel(option) {\n return option.getAttribute(\"data-label\") || option.textContent?.trim() || \"\";\n }\n ensureOptionIds() {\n this.listboxBehavior.ensureOptionIds();\n }\n getAccessibleName() {\n const labelElement = findAssociatedLabel(this);\n return labelElement?.textContent?.trim() || this.label || \"Suggestions\";\n }\n isComboboxInput(target) {\n return target instanceof HTMLElement && target.localName === \"input\" && target.hasAttribute(\"data-combobox-input\");\n }\n syncLabel() {\n const input = this.getInput();\n syncFieldLabel(this, input, {\n controlId: this.inputId,\n label: this.label,\n labelId: `rui-combobox-label-${this.uid}`\n });\n }\n syncTrigger() {\n const trigger = this.getTrigger();\n const listbox = this.getListbox();\n if (!trigger || !listbox) {\n return;\n }\n trigger.setAttribute(\"aria-expanded\", String(this.open));\n trigger.setAttribute(\"aria-controls\", listbox.id || this.listboxId);\n trigger.tabIndex = -1;\n if (this.disabled) {\n trigger.disabled = true;\n }\n }\n syncInput() {\n const input = this.getInput();\n const listbox = this.getListbox();\n const popup = this.getListboxPopup();\n if (!input || !listbox) {\n return;\n }\n if (!input.id) {\n input.id = this.inputId;\n }\n if (!listbox.id) {\n listbox.id = this.listboxId;\n }\n input.setAttribute(\"role\", \"combobox\");\n input.setAttribute(\"aria-haspopup\", \"listbox\");\n input.setAttribute(\"aria-autocomplete\", \"list\");\n input.setAttribute(\"aria-expanded\", String(this.open));\n input.setAttribute(\"aria-controls\", this.listboxId);\n listbox.setAttribute(\"aria-label\", this.getAccessibleName());\n if (popup) {\n popup.removeAttribute(\"role\");\n popup.removeAttribute(\"aria-label\");\n }\n if (this.placeholder && !input.placeholder) {\n input.placeholder = this.placeholder;\n }\n if (this.disabled) {\n input.disabled = true;\n }\n this.syncTrigger();\n }\n syncListboxHost() {\n const host = this.getListboxHost();\n if (!host) {\n return;\n }\n host.embedded = true;\n host.value = this.value;\n }\n syncOptionSelection() {\n for (const option of this.getOptions()) {\n const optionValue = option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n const isSelected = optionValue === this.value && this.value !== \"\";\n option.setAttribute(\"aria-selected\", String(isSelected));\n }\n }\n setVisualFocusCombobox() {\n this.listboxBehavior.clearActiveOption();\n this.syncOptionSelection();\n }\n setOpen(next, options = {}) {\n const activate = options.activate ?? \"none\";\n this.open = next;\n const input = this.getInput();\n const popup = this.getListboxPopup();\n if (!input || !popup) {\n return;\n }\n input.setAttribute(\"aria-expanded\", String(next));\n popup.toggleAttribute(\"hidden\", !next);\n this.syncTrigger();\n if (!next) {\n this.listboxBehavior.clearActiveOption();\n this.listboxBehavior.syncPopoverPosition();\n return;\n }\n this.ensureOptionIds();\n this.listboxBehavior.syncPopoverPosition();\n if (activate === \"first\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? 0 : -1);\n return;\n }\n if (activate === \"last\") {\n const visible = this.listboxBehavior.getVisibleOptions();\n this.listboxBehavior.setActiveOption(visible.length ? visible.length - 1 : -1);\n return;\n }\n this.listboxBehavior.clearActiveOption();\n }\n getAutocomplete() {\n return this.querySelector(\"rui-autocomplete\");\n }\n syncAutocompleteFilter() {\n const autocomplete = this.getAutocomplete();\n if (autocomplete) {\n autocomplete.syncFilter();\n return;\n }\n const query2 = this.getInput()?.value ?? \"\";\n for (const option of this.getOptions()) {\n const matches = textContains(this.getOptionLabel(option), query2, \"base\");\n option.hidden = query2.trim() !== \"\" && !matches;\n }\n }\n /** Restores the unfiltered collection when arrow navigation has no match to enter. */\n showAllOptions() {\n for (const option of this.getOptions()) {\n option.hidden = false;\n }\n }\n syncFilter() {\n this.syncAutocompleteFilter();\n }\n select(option) {\n if (option.getAttribute(\"aria-disabled\") === \"true\") {\n return;\n }\n const value = option.getAttribute(\"data-value\") || this.getOptionLabel(option);\n const label = this.getOptionLabel(option) || value;\n this.value = value;\n const input = this.getInput();\n if (input) {\n input.value = label;\n }\n this.changeEvent.emit({\n value\n });\n this.syncOptionSelection();\n this.skipNextFocusOpen = true;\n this.setOpen(false);\n input?.focus();\n }\n syncFromValue() {\n const input = this.getInput();\n if (!input) {\n return;\n }\n const match = this.getOptions().find(option => option.getAttribute(\"data-value\") === this.value);\n const label = match ? this.getOptionLabel(match) : this.value || \"\";\n input.value = label;\n }\n initialize() {\n this.ensureOptionIds();\n this.syncLabel();\n this.syncInput();\n this.syncListboxHost();\n this.syncFromValue();\n this.syncOptionSelection();\n this.setOpen(false);\n }\n onConnected() {\n this.initialize();\n }\n disconnectedCallback() {\n this.listboxBehavior.destroy();\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.syncLabel();\n this.syncInput();\n this.syncListboxHost();\n this.syncFromValue();\n this.syncOptionSelection();\n }\n onRootFocusIn(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n if (this.skipNextFocusOpen) {\n this.skipNextFocusOpen = false;\n return;\n }\n if (!this.openOnFocus) {\n return;\n }\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n onRootInput(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n const input = event2.target;\n this.syncFilter();\n if (input.value.trim() !== \"\" && this.listboxBehavior.getVisibleOptions().length) {\n this.setOpen(true);\n } else if (input.value.trim() === \"\" && this.openOnFocus) {\n this.setOpen(true);\n } else if (input.value.trim() === \"\" || !this.listboxBehavior.getVisibleOptions().length) {\n this.setOpen(false);\n }\n this.setVisualFocusCombobox();\n }\n onRootKeydown(event2) {\n if (!this.isComboboxInput(event2.target)) {\n return;\n }\n this.handleInputKeydown(event2);\n }\n handleInputKeydown(event2) {\n if (event2.key === \"Home\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n input.setSelectionRange(0, 0);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"End\") {\n const input = this.getInput();\n if (!input) {\n return;\n }\n event2.preventDefault();\n const length = input.value.length;\n input.setSelectionRange(length, length);\n this.setVisualFocusCombobox();\n return;\n }\n if (event2.key === \"ArrowDown\" || event2.key === \"ArrowUp\") {\n this.syncFilter();\n if (!this.listboxBehavior.getVisibleOptions().length) {\n this.showAllOptions();\n }\n }\n this.listboxBehavior.handleKeydown(event2, {\n isOpen: this.open,\n canUseSpace: false,\n closesOnTab: true,\n enterWhenClosed: \"ignore\",\n enterWithoutActive: \"close\",\n onOpen: (activation = \"none\") => {\n this.syncFilter();\n this.setOpen(true, {\n activate: activation\n });\n },\n onClose: () => this.setOpen(false),\n onSelectActive: () => {\n const option = this.listboxBehavior.getVisibleOptions()[this.listboxBehavior.activeOptionIndex];\n if (option) {\n this.select(option);\n }\n },\n onEscapeWhenClosed: () => {\n const input = this.getInput();\n if (input && input.value) {\n input.value = \"\";\n this.value = \"\";\n this.changeEvent.emit({\n value: \"\"\n });\n this.syncFilter();\n }\n }\n });\n }\n onTriggerClick(event2) {\n event2.preventDefault();\n const input = this.getInput();\n if (!input || input.disabled) {\n return;\n }\n if (this.open) {\n this.skipNextFocusOpen = true;\n this.setOpen(false);\n } else {\n this.syncFilter();\n this.setOpen(true);\n this.setVisualFocusCombobox();\n }\n input.focus();\n }\n onOptionPointerOver(event2) {\n if (!this.open) {\n return;\n }\n const option = event2.target.closest('[role=\"option\"]');\n if (!option || option.getAttribute(\"aria-disabled\") === \"true\" || option.hidden) {\n return;\n }\n const visible = this.listboxBehavior.getVisibleOptions();\n const index = visible.indexOf(option);\n if (index >= 0) {\n this.listboxBehavior.setActiveOption(index);\n }\n }\n onOptionMouseDown(event2) {\n event2.preventDefault();\n }\n onOptionClick(event2) {\n const option = event2.target.closest('[role=\"option\"]');\n if (option) {\n this.select(option);\n }\n }\n onFocusOut(event2) {\n if (!this.listboxBehavior.shouldDismissFocus(event2.relatedTarget)) {\n return;\n }\n this.setOpen(false);\n }\n onDocumentPointerDown(event2) {\n if (!this.open) {\n return;\n }\n if (!this.listboxBehavior.shouldDismissPointer(event2.target)) {\n return;\n }\n this.setOpen(false);\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCombobox as RuiCombobox };", "export function textContains(text, query, sensitivity = \"base\") {\n if (!query) {\n return true;\n }\n if (sensitivity === \"case\") {\n return text.includes(query);\n }\n const collator = new Intl.Collator(void 0, {\n sensitivity: sensitivity === \"accent\" ? \"accent\" : \"base\",\n usage: \"search\"\n });\n for (let index = 0; index <= text.length - query.length; index += 1) {\n const slice = text.slice(index, index + query.length);\n if (collator.compare(slice, query) === 0) {\n return true;\n }\n }\n return false;\n}", "export function findAssociatedLabel(owner) {\n const previous = owner.previousElementSibling;\n if (previous?.tagName.toLowerCase() === \"label\") {\n return previous;\n }\n return owner.parentElement?.querySelector(\"[data-rui-field-label], label.rui-label\") ?? null;\n}\nexport function syncFieldLabel(owner, control, options) {\n if (!control || control.hasAttribute(\"data-rui-field-managed\")) {\n return;\n }\n const labelElement = findAssociatedLabel(owner);\n if (labelElement) {\n if (!labelElement.id) {\n labelElement.id = options.labelId;\n }\n if (!labelElement.htmlFor) {\n labelElement.htmlFor = options.controlId;\n }\n control.setAttribute(\"aria-labelledby\", labelElement.id);\n control.removeAttribute(\"aria-label\");\n return;\n }\n if (options.label) {\n control.setAttribute(\"aria-label\", options.label);\n control.removeAttribute(\"aria-labelledby\");\n return;\n }\n control.removeAttribute(\"aria-label\");\n control.removeAttribute(\"aria-labelledby\");\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "export function getVisibleCollectionOptions(options) {\n return options.filter(option => !option.hidden && option.getAttribute(\"aria-disabled\") !== \"true\");\n}\nexport function wrapCollectionIndex(index, direction, length) {\n if (length === 0) {\n return -1;\n }\n if (direction === 1) {\n return index >= length - 1 ? 0 : index + 1;\n }\n return index <= 0 ? length - 1 : index - 1;\n}\nexport function clearCollectionActive(options, activeHost) {\n activeHost?.removeAttribute(\"aria-activedescendant\");\n for (const option of options) {\n option.removeAttribute(\"data-active\");\n }\n}\nexport function setCollectionActive(options, visibleOptions, index, activeHost, idPrefix) {\n clearCollectionActive(options, activeHost);\n const active = visibleOptions[index];\n if (!active || !activeHost) {\n return null;\n }\n if (!active.id) {\n active.id = `${idPrefix}-${index}`;\n }\n active.setAttribute(\"data-active\", \"true\");\n activeHost.setAttribute(\"aria-activedescendant\", active.id);\n active.scrollIntoView({\n block: \"nearest\"\n });\n return active;\n}", "import { PopoverController, shouldDismissPopoverFocus, shouldDismissPopoverPointer } from \"./popover-controller\";\nimport { clearCollectionActive, getVisibleCollectionOptions, setCollectionActive, wrapCollectionIndex } from \"./collection-navigation\";\nexport class ListboxPopoverBehavior {\n config;\n popoverController;\n activeIndex = -1;\n visualFocus = false;\n constructor(config) {\n this.config = config;\n this.popoverController = new PopoverController({\n getAnchor: config.getAnchor,\n getFloating: config.getFloating,\n getOpen: config.getOpen,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false,\n matchAnchorWidth: true\n });\n }\n get activeOptionIndex() {\n return this.activeIndex;\n }\n get hasVisualFocus() {\n return this.visualFocus;\n }\n ensureOptionIds() {\n this.config.getOptions().forEach((option, index) => {\n if (!option.id) {\n option.id = `${this.config.getOptionIdPrefix()}-${index}`;\n }\n });\n }\n getVisibleOptions() {\n return getVisibleCollectionOptions(this.config.getOptions());\n }\n clearActiveOption() {\n this.activeIndex = -1;\n this.visualFocus = false;\n clearCollectionActive(this.config.getOptions(), this.config.getActiveDescendantHost());\n }\n setActiveOption(index) {\n const visible = this.getVisibleOptions();\n if (index < 0 || index >= visible.length) {\n this.clearActiveOption();\n return;\n }\n this.activeIndex = index;\n this.visualFocus = true;\n setCollectionActive(this.config.getOptions(), visible, index, this.config.getActiveDescendantHost(), this.config.getOptionIdPrefix());\n }\n moveActive(direction, onOpen) {\n const visible = this.getVisibleOptions();\n if (!visible.length) {\n return;\n }\n if (!this.config.getOpen()) {\n onOpen(direction === 1 ? \"first\" : \"last\");\n return;\n }\n if (this.visualFocus) {\n this.setActiveOption(wrapCollectionIndex(this.activeIndex, direction, visible.length));\n return;\n }\n this.setActiveOption(direction === 1 ? 0 : visible.length - 1);\n }\n /** Handles the APG keys shared by select-only and autocomplete listboxes. */\n handleKeydown(event, options) {\n if (event.ctrlKey || event.shiftKey || event.metaKey) return;\n const handler = this.keydownHandlers[event.key];\n handler?.call(this, event, options);\n }\n keydownHandlers = {\n ArrowDown: this.handleArrowKey,\n ArrowUp: this.handleArrowKey,\n Escape: this.handleEscapeKey,\n Enter: this.handleActivationKey,\n \" \": this.handleActivationKey,\n Tab: this.handleTabKey\n };\n handleArrowKey(event, options) {\n event.preventDefault();\n event.stopPropagation();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n if (event.altKey) {\n this.handleModifiedArrow(direction, options);\n return;\n }\n this.moveActive(direction, activation => options.onOpen(activation));\n }\n handleModifiedArrow(direction, options) {\n if (direction === 1 && !options.isOpen) options.onOpen();\n if (direction === -1 && options.isOpen) options.onClose(\"arrow\");\n }\n handleEscapeKey(event, options) {\n event.preventDefault();\n if (options.isOpen) options.onClose(\"escape\");else options.onEscapeWhenClosed?.();\n }\n handleActivationKey(event, options) {\n if (event.key === \" \" && !options.canUseSpace) return;\n if (!options.isOpen && options.enterWhenClosed === \"open\") {\n event.preventDefault();\n options.onOpen();\n return;\n }\n if (!options.isOpen) return;\n if (this.hasActiveOption()) {\n event.preventDefault();\n options.onSelectActive();\n return;\n }\n if (event.key === \"Enter\" && options.enterWithoutActive === \"close\") {\n event.preventDefault();\n options.onClose(\"enter\");\n }\n }\n handleTabKey(_event, options) {\n if (!options.isOpen) return;\n if (this.hasActiveOption() && options.closesOnTab) options.onSelectActive();else options.onClose(\"tab\");\n }\n hasActiveOption() {\n return this.visualFocus && Boolean(this.getVisibleOptions()[this.activeIndex]);\n }\n syncPopoverPosition() {\n this.popoverController.sync();\n }\n shouldDismissFocus(relatedTarget) {\n return shouldDismissPopoverFocus(this.config.getAnchor(), this.popoverController.getFloatingElement(), relatedTarget);\n }\n shouldDismissPointer(target) {\n return shouldDismissPopoverPointer(this.config.getAnchor(), this.popoverController.getFloatingElement(), target);\n }\n destroy() {\n this.popoverController.destroy();\n }\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { withDefaultAriaLabel } from \"@/aria\";\nimport { cx } from \"@/lib/cx\";\nimport { RuiIconChevronDown } from \"@/lib/icons\";\nimport { RuiAutocomplete, RuiAutocompleteCollection, RuiAutocompleteEmpty } from \"../autocomplete\";\nimport { RuiListbox } from \"../listbox\";\nimport \"./combobox.script\";\nexport function RuiComboboxControl({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-combobox__control\", className),\n children\n });\n}\nexport function RuiComboboxInput({\n placeholder,\n disabled,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"text\",\n \"data-combobox-input\": true,\n \"data-autocomplete-input\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n class: cx(\"rui-combobox__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiComboboxTrigger({\n children,\n class: className,\n aria,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"button\", {\n ...props,\n aria: withDefaultAriaLabel(aria, \"Show suggestions\"),\n type: \"button\",\n \"data-combobox-trigger\": true,\n class: cx(\"rui-control-toggle\", className),\n disabled,\n tabIndex: -1,\n children: children ?? /* @__PURE__ */jsx(RuiIconChevronDown, {})\n });\n}\nexport function RuiComboboxListbox({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-combobox-listbox\": true,\n class: cx(\"rui-combobox__listbox rui-popover rui-popover--listbox rui-floating\", className),\n children\n });\n}\nfunction ComboboxShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-combobox\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiCombobox({\n options,\n children,\n ...props\n}) {\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n children: /* @__PURE__ */jsxs(ComboboxShell, {\n children: [/* @__PURE__ */jsxs(RuiComboboxControl, {\n children: [/* @__PURE__ */jsx(RuiComboboxInput, {\n placeholder: props.placeholder,\n disabled: props.disabled\n }), /* @__PURE__ */jsx(RuiComboboxTrigger, {})]\n }), /* @__PURE__ */jsx(RuiComboboxListbox, {\n children: /* @__PURE__ */jsx(RuiAutocomplete, {\n children: /* @__PURE__ */jsxs(RuiAutocompleteCollection, {\n children: [/* @__PURE__ */jsx(RuiListbox, {\n embedded: true,\n options\n }), /* @__PURE__ */jsx(RuiAutocompleteEmpty, {\n children: \"No results found.\"\n })]\n })\n })\n })]\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-combobox\", {\n ...props,\n children: /* @__PURE__ */jsx(ComboboxShell, {\n children\n })\n });\n}", "export function withDefaultAriaLabel(aria, fallback) {\n if (fallback === void 0 || aria?.label !== void 0) {\n return aria;\n }\n return {\n ...aria,\n label: fallback\n };\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconChevronDown({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsx(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */jsx(\"path\", {\n d: \"m6 9 6 6 6-6\"\n })\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./autocomplete.script\";\nexport function RuiAutocompleteInput({\n placeholder,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"input\", {\n ...props,\n type: \"search\",\n \"data-autocomplete-input\": true,\n class: cx(\"rui-autocomplete__input\", className),\n placeholder,\n disabled,\n autocomplete: \"off\"\n });\n}\nexport function RuiAutocompleteCollection({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-collection\": true,\n class: cx(\"rui-autocomplete__collection\", className),\n children\n });\n}\nexport function RuiAutocompleteEmpty({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-autocomplete-empty\": true,\n class: cx(\"rui-autocomplete__empty\", className),\n children\n });\n}\nfunction AutocompleteShell({\n children\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-autocomplete\",\n \"data-ref\": \"root\",\n children\n });\n}\nexport function RuiAutocomplete({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-autocomplete\", {\n ...props,\n children: /* @__PURE__ */jsx(AutocompleteShell, {\n children\n })\n });\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./listbox.script\";\nexport function RuiListboxOption({\n value,\n label,\n children,\n class: className,\n disabled,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-listbox__option\", className),\n role: \"option\",\n \"data-value\": value,\n \"data-label\": label,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n tabindex: -1,\n children\n });\n}\nfunction listboxIsBordered(embedded, bordered) {\n if (bordered != null) {\n return bordered;\n }\n return !embedded;\n}\nfunction ListboxShell({\n bordered,\n children,\n disabled,\n label\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n class: cx(\"rui-listbox\", bordered && \"rui-listbox--bordered\"),\n role: \"listbox\",\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n \"aria-label\": label || void 0,\n \"aria-disabled\": disabled ? \"true\" : void 0,\n children\n });\n}\nexport function RuiListbox({\n options,\n children,\n embedded,\n bordered,\n label,\n disabled,\n ...props\n}) {\n const isBordered = listboxIsBordered(embedded, bordered);\n if (options != null) {\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n embedded,\n bordered,\n label,\n disabled,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n label,\n children: options.map(option => /* @__PURE__ */jsx(RuiListboxOption, {\n value: option.value,\n label: typeof option.label === \"string\" ? option.label : void 0,\n disabled: option.disabled,\n children: option.label\n }))\n })\n });\n }\n return /* @__PURE__ */jsx(\"rui-listbox\", {\n ...props,\n embedded,\n bordered,\n label,\n disabled,\n children: /* @__PURE__ */jsx(ListboxShell, {\n bordered: isBordered,\n disabled,\n label,\n children\n })\n });\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "textContains", "text", "query", "sensitivity", "collator", "index", "slice", "findAssociatedLabel", "owner", "previous", "syncFieldLabel", "control", "options", "labelElement", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "shouldDismissPopoverPointer", "target", "PopoverController", "config", "patch", "mountPortal", "attachFloating", "configuredFloating", "getVisibleCollectionOptions", "options", "option", "wrapCollectionIndex", "index", "direction", "length", "clearCollectionActive", "activeHost", "setCollectionActive", "visibleOptions", "idPrefix", "active", "ListboxPopoverBehavior", "config", "PopoverController", "option", "index", "getVisibleCollectionOptions", "clearCollectionActive", "visible", "setCollectionActive", "direction", "onOpen", "wrapCollectionIndex", "event", "options", "activation", "_event", "relatedTarget", "shouldDismissPopoverFocus", "target", "shouldDismissPopoverPointer", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_label", "_init_extra_label", "_init_placeholder", "_init_extra_placeholder", "_init_disabled", "_init_extra_disabled", "_init_openOnFocus", "_init_extra_openOnFocus", "_init_changeEvent", "_init_extra_changeEvent", "_init_rootTarget", "_init_extra_rootTarget", "_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", "_RuiCombobox", "RuiCombobox", "RadiantElement", "customElement", "prop", "event", "query", "onUpdated", "onEvent", "args", "ListboxPopoverBehavior", "host", "listbox", "option", "findAssociatedLabel", "target", "input", "syncFieldLabel", "trigger", "popup", "isSelected", "next", "options", "activate", "visible", "autocomplete", "query2", "matches", "textContains", "value", "label", "match", "event2", "length", "activation", "index", "jsx", "jsxs", "withDefaultAriaLabel", "aria", "fallback", "cx", "parts", "jsx", "RuiIconChevronDown", "className", "size", "props", "jsx", "cx", "jsx", "RuiAutocompleteCollection", "children", "className", "props", "jsx", "cx", "RuiAutocompleteEmpty", "AutocompleteShell", "RuiAutocomplete", "jsx", "RuiListboxOption", "value", "label", "children", "className", "disabled", "props", "jsx", "cx", "listboxIsBordered", "embedded", "bordered", "ListboxShell", "RuiListbox", "options", "isBordered", "option", "RuiComboboxControl", "children", "className", "props", "jsx", "cx", "RuiComboboxInput", "placeholder", "disabled", "RuiComboboxTrigger", "aria", "withDefaultAriaLabel", "RuiIconChevronDown", "RuiComboboxListbox", "ComboboxShell", "RuiCombobox", "options", "jsxs", "RuiAutocomplete", "RuiAutocompleteCollection", "RuiListbox", "RuiAutocompleteEmpty"]
|
|
7
7
|
}
|
|
@@ -97,4 +97,9 @@ export declare class RuiField extends RadiantElement {
|
|
|
97
97
|
onControlNativeChange(): void;
|
|
98
98
|
onControlFocusOut(): void;
|
|
99
99
|
private syncField;
|
|
100
|
+
private syncDescriptions;
|
|
101
|
+
private syncAriaTargets;
|
|
102
|
+
private disableAriaTarget;
|
|
103
|
+
private syncErrorPresentation;
|
|
104
|
+
private publishFieldContext;
|
|
100
105
|
}
|