@ecopages/radiant-ui 0.1.0-beta.8 → 0.1.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,8 @@ import './field.script';
4
4
  /**
5
5
  * JSX helper around `<rui-field>`.
6
6
  *
7
- * Passes `rules`, `defaultValue`, and `defaultValueData` through `prop:` / `attr:`
8
- * bindings. The element authors the `.rui-field` surface (see `@cssclass` there).
7
+ * Passes `rules` and `defaultValue` through property bindings, and serializes
8
+ * `defaultValueData` through a data attribute. The element authors the
9
+ * `.rui-field` surface (see `@cssclass` there).
9
10
  */
10
11
  export declare function RuiField({ children, rules, defaultValue, defaultValueData, ...props }: JsxHtmlPropsWithChildren<RuiFieldProps>): import("@ecopages/jsx").JsxRenderable;
@@ -1,2 +1,2 @@
1
- import{jsx as Ct}from"@ecopages/jsx/jsx-runtime";import{jsx as rt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as it,customElement as gt,onEvent as K,onUpdated as se,prop as S,registerSsrPreparationCallback as bt}from"@ecopages/radiant";import{consumeContext as vt,onContextUpdate as xt,provideContext as yt}from"@ecopages/radiant/context";var D="data-rui-control",Fe="data-rui-field-managed",ut="data-rui-field-label",re="data-rui-field-description",U="data-rui-field-error",ie="data-default-value";var j=new Set(["rui-combobox","rui-date-field","rui-date-range-picker","rui-select","rui-tag-group","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-number-field","rui-listbox"]),Re=`[${D}], ${Array.from(j).join(", ")}`;function G(e){return e.localName==="input"||e.localName==="textarea"}function Ae(e){return e.localName==="input"}function Ee(e){return e.localName==="textarea"}var T={read:e=>{let t=Reflect.get(e,"value");return typeof t=="string"?t:e.getAttribute("value")??""},write:(e,t)=>{let r=t==null?"":String(t);e.setAttribute("value",r),"value"in e&&Reflect.set(e,"value",r)}},ye={read:e=>{let t=Reflect.get(e,"value");if(typeof t=="number")return t;let r=e.getAttribute("value");return r==null||r===""?"":Number(r)},write:(e,t)=>{let r=t==null?"":String(t);e.setAttribute("value",r),"value"in e&&Reflect.set(e,"value",t)}},_e={read:e=>e.querySelector('input[type="checkbox"]')?.checked??e.hasAttribute("checked"),write:(e,t)=>{t?e.setAttribute("checked",""):e.removeAttribute("checked")}},z=new Map([["rui-checkbox",_e],["rui-switch",_e],["rui-combobox",T],["rui-date-field",T],["rui-date-range-picker",T],["rui-select",T],["rui-radio-group",T],["rui-listbox",T],["rui-tag-group",T],["rui-slider",ye],["rui-number-field",ye]]);function Te(e,t){let r=e,i=new Set,o=n=>{i.has(n)||(i.add(n),t(n))};if(typeof r.getSlotElements=="function")for(let n of r.getSlotElements())o(n);let a=e.querySelector(".rui-field")??e;for(let n of Array.from(a.children))o(n);for(let n of a.querySelectorAll("*"))o(n);for(let n of Array.from(e.children))o(n);let u=e.shadowRoot;if(u)for(let n of Array.from(u.children))o(n)}function ne(e,t){let r=null;return Te(e,i=>{if(!(r||!(i instanceof HTMLElement))){if(i.matches(t)){r=i;return}r=i.querySelector(t)}}),r}function at(e){if(e.length===0)return null;if(e.length===1)return e[0];let t=e.find(u=>j.has(u.localName)),r=e.find(u=>u.hasAttribute(D));if(r)return r;if(t)return t;let i=document.activeElement;if(i instanceof HTMLElement){for(let u of e)if(u===i||u.contains(i))return u}let o=e.filter(u=>u.isConnected&&u.getClientRects().length>0&&!u.closest('[hidden],[aria-hidden="true"]')),a=o.length>0?o:e.filter(u=>u.isConnected);return a[a.length-1]??e[e.length-1]}function st(e){let t=e.querySelector(".rui-field");return t instanceof HTMLElement?Array.from(t.querySelectorAll(Re)).filter(r=>e.contains(r)):[]}function H(e){let t=at(st(e));if(t)return t;let r=null;if(Te(e,o=>{if(r)return;let a=Ce(o);a&&(r=a)}),r)return r;let i=e.querySelector(".rui-field")??e;return Ce(i)}function Ce(e){return e instanceof HTMLElement?e.matches(`[${D}]`)||j.has(e.localName)?e:e.querySelector(Re):null}function Se(e){if(Ae(e)){let r=J(e),i=r===e?void 0:z.get(r.localName);return i?i.read(r):e.type==="checkbox"?e.checked:e.type==="number"||e.type==="range"?e.value===""?"":Number(e.value):e.value}if(Ee(e))return e.value;let t=J(e);return z.get(t.localName)?.read(t)??t.getAttribute("value")??""}function Ne(e,t){if(Ae(e)){let i=J(e),o=i===e?void 0:z.get(i.localName);if(o){o.write(i,t);return}if(e.type==="checkbox"){e.checked=!!t;let a=e.closest("rui-checkbox, rui-switch");a&&(t?a.setAttribute("checked",""):a.removeAttribute("checked"));return}e.value=t==null?"":String(t);return}if(Ee(e)){e.value=t==null?"":String(t);return}let r=J(e);z.get(r.localName)?.write(r,t)}function J(e){return e.hasAttribute(D)?e.closest(Array.from(j).join(","))??e:e}function Ie(e){return ne(e,`[${ut}], label.rui-label`)}function we(e){return ne(e,`[${re}]`)}function Ve(e){return oe(e)[0]??null}function oe(e){let t=e.querySelector(".rui-field");if(t instanceof HTMLElement){let o=Array.from(t.querySelectorAll(`[${U}]`)),a=o.filter(u=>u.getClientRects().length>0);if(a.length>0)return a;if(o.length>0)return o}let r=Array.from(e.querySelectorAll(`[${U}]`));if(r.length>0)return r;let i=ne(e,`[${U}]`);return i?[i]:[]}function De(e,t,r){r&&(t&&G(t)&&(t.name=r),e&&e!==t&&j.has(e.localName)&&e.setAttribute("name",r))}function lt(e){let t=Reflect.get(e,"checked");return typeof t=="boolean"?t:e.hasAttribute("checked")}function ke(e){if(G(e)||e.hasAttribute(D))return e;let t=e.querySelector(`[${D}]`);if(t)return t;if(e.localName==="rui-combobox")return e.querySelector("[data-combobox-input]")??e;if(e.localName==="rui-date-field")return e.querySelector("[data-date-field-input]")??e;if(e.localName==="rui-date-range-picker")return e.querySelector("[data-range-start]")??e;if(e.localName==="rui-select")return e.querySelector("[data-select-trigger]")??e;if(e.localName==="rui-tag-group")return e.querySelector("[data-tag-list]")??e;if(e.localName==="rui-number-field")return e.querySelector("[data-number-field-input], input")??e;if(e.localName==="rui-slider")return e.querySelector('input[type="range"]')??e;if(e.localName==="rui-checkbox"||e.localName==="rui-switch")return e.querySelector("input")??e;if(e.localName==="rui-radio-group"){let r=e.querySelectorAll('input[type="radio"]');for(let i of r)if(lt(i))return i;return r[0]??e}return e}import{createContext as dt}from"@ecopages/radiant/context";var ue=dt(Symbol.for("rui-form-context"));import{createContext as ct}from"@ecopages/radiant/context";var ae=ct(Symbol.for("rui-field-context"));var qe,Le,Oe,Ue,je,Pe,Me,$e,Be,We,ze,Je,Ge,He,Ke,Qe,Xe,Ye,Ze,et;function ft(e,t,r,i,o,a){var u,n,N,k,A,I,h,v=Symbol.metadata||Symbol.for("Symbol.metadata"),p=Object.defineProperty,w=Object.create,q=[w(null),w(null)],le=t.length;function P(s,x,g){return function(l,d){x&&(d=l,l=e);for(var y=0;y<s.length;y++)d=s[y].apply(l,g?[d]:[]);return g?d:l}}function F(s,x,g,l){if(typeof s!="function"&&(l||s!==void 0))throw new TypeError(x+" must "+(g||"be")+" a function"+(l?"":" or undefined"));return s}function de(s,x,g,l,d,y,E,b,_,C,fe){function X(f){if(!fe(f))throw new TypeError("Attempted to access private element on non-instance")}var Y=[].concat(x[0]),he=x[3],Z=!E,L=d===1,me=d===3,pe=d===4,M=d===2;function $(f,V,ve){return function(W,xe){return V&&(xe=W,W=s),ve&&ve(W),c[f].call(W,xe)}}if(!Z){var c={},ee=[],R=me?"get":pe||L?"set":"value";if(_?(C||L?c={get:tt(function(){return he(this)},l,"get"),set:function(f){x[4](this,f)}}:c[R]=he,C||tt(c[R],l,M?"":R)):C||(c=Object.getOwnPropertyDescriptor(s,l)),!C&&!_){if((n=q[+b][l])&&(n^d)!==7)throw Error("Decorating two elements with the same name ("+c[R].name+") is not supported yet");q[+b][l]=d<3?1:d}}for(var m=s,B=Y.length-1;B>=0;B-=g?2:1){var ge=F(Y[B],"A decorator","be",!0),be=g?Y[B-1]:void 0,te={},O={kind:["field","accessor","method","getter","setter","class"][d],name:l,metadata:u,addInitializer:function(f,V){if(f.v)throw new TypeError("attempted to call addInitializer after decoration was finished");F(V,"An initializer","be",!0),y.push(V)}.bind(null,te)};if(Z)n=ge.call(be,m,O),te.v=1,F(n,"class decorators","return")&&(m=n);else if(O.static=b,O.private=_,n=O.access={has:_?fe.bind():function(f){return l in f}},pe||(n.get=_?M?function(f){return X(f),c.value}:$("get",0,X):function(f){return f[l]}),M||me||(n.set=_?$("set",0,X):function(f,V){f[l]=V}),m=ge.call(be,L?{get:c.get,set:c.set}:c[R],O),te.v=1,L){if(typeof m=="object"&&m)(n=F(m.get,"accessor.get"))&&(c.get=n),(n=F(m.set,"accessor.set"))&&(c.set=n),(n=F(m.init,"accessor.init"))&&ee.unshift(n);else if(m!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else F(m,(C?"field":"method")+" decorators","return")&&(C?ee.unshift(m):c[R]=m)}return d<2&&E.push(P(ee,b,1),P(y,b,0)),C||Z||(_?L?E.splice(-1,0,$("get",b),$("set",b)):E.push(M?c[R]:F.call.bind(c[R])):p(s,l,c)),m}function ce(s){return p(s,v,{configurable:!0,enumerable:!0,value:u})}return a!==void 0&&(u=a[v]),u=w(u??null),A=[],I=function(s){s&&A.push(P(s))},h=function(s,x){for(var g=0;g<r.length;g++){var l=r[g],d=l[1],y=7&d;if((8&d)==s&&!y==x){var E=l[2],b=!!l[3],_=16&d;de(s?e:e.prototype,l,_,b?"#"+E:ht(E),y,y<2?[]:s?k=k||[]:N=N||[],A,!!s,b,x,s&&b?function(C){return pt(C)===e}:o)}}},h(8,0),h(0,0),h(8,1),h(0,1),I(N),I(k),n=A,le||ce(e),{e:n,get c(){var s=[];return le&&[ce(e=de(e,[t],i,e.name,5,s)),P(s,1)]}}}function ht(e){var t=mt(e,"string");return typeof t=="symbol"?t:t+""}function mt(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function tt(e,t,r){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch{}return e}function pt(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}function _t(e){if(!e)return;let{validate:t,...r}=e;return r}var ot,nt=class extends it{static{({e:[Oe,Ue,je,Pe,Me,$e,Be,We,ze,Je,Ge,He,Ke,Qe,Xe,Ye,Ze,et,qe],c:[ot,Le]}=ft(this,[gt("rui-field")],[[S({type:String,reflect:!0,defaultValue:""}),0,"name"],[S({type:Object}),0,"rules"],[S({type:Object}),0,"defaultValue"],[S({type:String,attribute:ie}),0,"defaultValueData"],[S({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[S({type:String,defaultValue:""}),0,"error"],[S({type:Boolean,reflect:!0,defaultValue:!1}),0,"invalid"],[yt({context:ae,initialValue:{name:"",controlId:"",descriptionId:"",errorId:"",error:void 0,invalid:!1,required:!1},hydrate:Object,serialize:t=>({...t,rules:_t(t.rules)})}),0,"fieldProvider"],[vt(ue),0,"formContextProvider"],[xt({context:ue,requestUpdate:!1}),2,"onFormContextChanged"],[se(["name"]),2,"onNameUpdated"],[se(["rules","defaultValue","defaultValueData"]),2,"onRulesUpdated"],[se(["disabled","error","invalid"]),2,"onPresentationUpdated"],[K({selector:"[data-rui-control], rui-combobox, rui-date-field, rui-date-range-picker, rui-select, rui-tag-group, rui-checkbox, rui-switch, rui-radio-group, rui-slider, rui-number-field, rui-listbox",type:"rui-change"}),2,"onControlChange"],[K({selector:"[data-rui-control]",type:"input",options:{capture:!0}}),2,"onControlInput"],[K({selector:"[data-rui-control]",type:"change",options:{capture:!0}}),2,"onControlNativeChange"],[K({selector:"[data-rui-control]",type:"focusout"}),2,"onControlFocusOut"]],0,void 0,it))}name=(qe(this),Oe(this));rules=(Ue(this),je(this));defaultValue=(Pe(this),Me(this));defaultValueData=($e(this),Be(this));disabled=(We(this),ze(this));error=(Je(this),Ge(this));invalid=(He(this),Ke(this));fieldProvider=(Qe(this),Xe(this));formContextProvider=(Ye(this),Ze(this));uid=(et(this),Math.random().toString(36).slice(2,9));resolveFieldName(){return(this.name||this.getAttribute("name")||"").trim()}unregister;unregisterPresentation;registeredWithForm=!1;constructor(){super(),bt(this,()=>this.fieldProvider.setContext({rules:this.readFieldRules()}))}connectedCallback(){super.connectedCallback(),this.connectToForm(),queueMicrotask(()=>{this.connectToForm()})}disconnectedCallback(){this.unregister?.(),this.unregister=void 0,this.unregisterPresentation?.(),this.unregisterPresentation=void 0,this.registeredWithForm=!1,super.disconnectedCallback()}get currentFormContext(){return this.formContextProvider?.getContext()}parseJsonAttr(t){if(t)try{return JSON.parse(t)}catch{return}}readFieldRules(){let t=this.rules;return t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length>0?t:this.fieldProvider.getContext()?.rules}readDefaultValue(){return this.defaultValue!==void 0?this.defaultValue:this.parseJsonAttr(this.defaultValueData??this.getAttribute(ie))}isRequired(){return!!this.readFieldRules()?.required}resolveErrorMessage(t){if(this.error)return this.error;let r=this.resolveFieldName();return r?(t??this.currentFormContext)?.fields[r]?.error:void 0}resolveInvalid(t){if(this.invalid||this.error)return!0;let r=this.resolveFieldName();return r?(t??this.currentFormContext)?.fields[r]?.invalid??!1:!1}connectToForm(){let t=this.resolveFieldName(),r=this.currentFormContext,i=r?.actions;if(!r?.ready||!i||!t){this.syncField();return}if(!this.registeredWithForm){this.registeredWithForm=!0,this.unregisterPresentation?.(),this.unregisterPresentation=i.subscribePresentation(o=>this.syncField(o)),this.unregister=i.register({name:t,rules:this.readFieldRules(),getRules:()=>this.readFieldRules(),defaultValue:this.readDefaultValue(),getValue:()=>{let o=H(this);return o?Se(o):void 0},setValue:o=>{let a=H(this);a&&Ne(a,o)}});return}i.updateFieldOptions(t,{rules:this.readFieldRules(),defaultValue:this.readDefaultValue()}),this.syncField()}onFormContextChanged(t){if(!this.registeredWithForm){t.ready?this.connectToForm():this.syncField(t);return}this.syncField(t)}onNameUpdated(){this.unregister?.(),this.unregister=void 0,this.unregisterPresentation?.(),this.unregisterPresentation=void 0,this.registeredWithForm=!1,this.connectToForm()}onRulesUpdated(){this.connectToForm()}onPresentationUpdated(){this.syncField()}onControlChange(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldChange(t)}onControlInput(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldChange(t)}onControlNativeChange(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldChange(t)}onControlFocusOut(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldBlur(t)}syncField(t){let r=H(this),i=r?ke(r):null,o=i?.id||`rui-field-control-${this.uid}`,a=`rui-field-desc-${this.uid}`,u=`rui-field-error-${this.uid}`,n=this.resolveErrorMessage(t),N=this.resolveInvalid(t),k=this.isRequired(),A=this.resolveFieldName();if(De(r,i,A),i){i.id||(i.id=o),i.setAttribute(Fe,""),i.setAttribute("aria-invalid",N?"true":"false"),this.isRequired()?i.setAttribute("aria-required","true"):i.removeAttribute("aria-required");let p=[],w=we(this);w&&(w.id=a,p.push(a));let q=Ve(this);q&&(q.id=u,n&&p.push(u)),p.length>0?i.setAttribute("aria-describedby",p.join(" ")):i.removeAttribute("aria-describedby"),this.disabled&&(i.setAttribute("aria-disabled","true"),G(i)&&(i.disabled=!0))}let I=Ie(this);I&&i&&(I.htmlFor=i.id);for(let p of oe(this))p.textContent=n??"",n?(p.hidden=!1,p.removeAttribute("hidden")):p.hidden=!0;let h={name:A,controlId:i?.id??o,descriptionId:a,errorId:u,error:n,invalid:N,required:k},v=this.fieldProvider.getContext();v.name===h.name&&v.controlId===h.controlId&&v.descriptionId===h.descriptionId&&v.errorId===h.errorId&&v.error===h.error&&v.invalid===h.invalid&&v.required===h.required||this.fieldProvider.setContext(h)}render(){return rt("div",{class:"rui-field",children:rt("slot",{})})}static{Le()}};function Ft({children:e,rules:t,defaultValue:r,defaultValueData:i,...o}){return Ct("rui-field",{...o,"prop:rules":t,"prop:defaultValue":r,"attr:data-default-value":i??(r!==void 0?JSON.stringify(r):void 0),children:e})}import{jsx as Rt}from"@ecopages/jsx/jsx-runtime";function Q(...e){return e.filter(Boolean).join(" ")}function At({children:e,class:t,...r}){return Rt("p",{...r,[re]:"",class:Q("rui-field__description",t),children:e})}import{jsx as Et}from"@ecopages/jsx/jsx-runtime";function Tt({class:e,...t}){return Et("p",{...t,[U]:"",class:Q("rui-field__error",e),role:"alert",hidden:!0})}export{Ft as RuiField,At as RuiFieldDescription,ot as RuiFieldElement,Tt as RuiFieldError,ae as fieldContext};
1
+ import{jsx as Ct}from"@ecopages/jsx/jsx-runtime";import{jsx as rt}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as it,customElement as gt,onEvent as K,onUpdated as se,prop as S,registerSsrPreparationCallback as bt}from"@ecopages/radiant";import{consumeContext as vt,onContextUpdate as xt,provideContext as yt}from"@ecopages/radiant/context";var D="data-rui-control",Fe="data-rui-field-managed",ut="data-rui-field-label",re="data-rui-field-description",U="data-rui-field-error",ie="data-default-value";var j=new Set(["rui-combobox","rui-date-field","rui-date-range-picker","rui-select","rui-tag-group","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-number-field","rui-listbox"]),Re=`[${D}], ${Array.from(j).join(", ")}`;function G(e){return e.localName==="input"||e.localName==="textarea"}function Ae(e){return e.localName==="input"}function Ee(e){return e.localName==="textarea"}var T={read:e=>{let t=Reflect.get(e,"value");return typeof t=="string"?t:e.getAttribute("value")??""},write:(e,t)=>{let r=t==null?"":String(t);e.setAttribute("value",r),"value"in e&&Reflect.set(e,"value",r)}},ye={read:e=>{let t=Reflect.get(e,"value");if(typeof t=="number")return t;let r=e.getAttribute("value");return r==null||r===""?"":Number(r)},write:(e,t)=>{let r=t==null?"":String(t);e.setAttribute("value",r),"value"in e&&Reflect.set(e,"value",t)}},_e={read:e=>e.querySelector('input[type="checkbox"]')?.checked??e.hasAttribute("checked"),write:(e,t)=>{t?e.setAttribute("checked",""):e.removeAttribute("checked")}},z=new Map([["rui-checkbox",_e],["rui-switch",_e],["rui-combobox",T],["rui-date-field",T],["rui-date-range-picker",T],["rui-select",T],["rui-radio-group",T],["rui-listbox",T],["rui-tag-group",T],["rui-slider",ye],["rui-number-field",ye]]);function Te(e,t){let r=e,i=new Set,o=n=>{i.has(n)||(i.add(n),t(n))};if(typeof r.getSlotElements=="function")for(let n of r.getSlotElements())o(n);let a=e.querySelector(".rui-field")??e;for(let n of Array.from(a.children))o(n);for(let n of a.querySelectorAll("*"))o(n);for(let n of Array.from(e.children))o(n);let u=e.shadowRoot;if(u)for(let n of Array.from(u.children))o(n)}function ne(e,t){let r=null;return Te(e,i=>{if(!(r||!(i instanceof HTMLElement))){if(i.matches(t)){r=i;return}r=i.querySelector(t)}}),r}function at(e){if(e.length===0)return null;if(e.length===1)return e[0];let t=e.find(u=>j.has(u.localName)),r=e.find(u=>u.hasAttribute(D));if(r)return r;if(t)return t;let i=document.activeElement;if(i instanceof HTMLElement){for(let u of e)if(u===i||u.contains(i))return u}let o=e.filter(u=>u.isConnected&&u.getClientRects().length>0&&!u.closest('[hidden],[aria-hidden="true"]')),a=o.length>0?o:e.filter(u=>u.isConnected);return a[a.length-1]??e[e.length-1]}function st(e){let t=e.querySelector(".rui-field");return t instanceof HTMLElement?Array.from(t.querySelectorAll(Re)).filter(r=>e.contains(r)):[]}function H(e){let t=at(st(e));if(t)return t;let r=null;if(Te(e,o=>{if(r)return;let a=Ce(o);a&&(r=a)}),r)return r;let i=e.querySelector(".rui-field")??e;return Ce(i)}function Ce(e){return e instanceof HTMLElement?e.matches(`[${D}]`)||j.has(e.localName)?e:e.querySelector(Re):null}function Se(e){if(Ae(e)){let r=J(e),i=r===e?void 0:z.get(r.localName);return i?i.read(r):e.type==="checkbox"?e.checked:e.type==="number"||e.type==="range"?e.value===""?"":Number(e.value):e.value}if(Ee(e))return e.value;let t=J(e);return z.get(t.localName)?.read(t)??t.getAttribute("value")??""}function Ne(e,t){if(Ae(e)){let i=J(e),o=i===e?void 0:z.get(i.localName);if(o){o.write(i,t);return}if(e.type==="checkbox"){e.checked=!!t;let a=e.closest("rui-checkbox, rui-switch");a&&(t?a.setAttribute("checked",""):a.removeAttribute("checked"));return}e.value=t==null?"":String(t);return}if(Ee(e)){e.value=t==null?"":String(t);return}let r=J(e);z.get(r.localName)?.write(r,t)}function J(e){return e.hasAttribute(D)?e.closest(Array.from(j).join(","))??e:e}function Ie(e){return ne(e,`[${ut}], label.rui-label`)}function we(e){return ne(e,`[${re}]`)}function Ve(e){return oe(e)[0]??null}function oe(e){let t=e.querySelector(".rui-field");if(t instanceof HTMLElement){let o=Array.from(t.querySelectorAll(`[${U}]`)),a=o.filter(u=>u.getClientRects().length>0);if(a.length>0)return a;if(o.length>0)return o}let r=Array.from(e.querySelectorAll(`[${U}]`));if(r.length>0)return r;let i=ne(e,`[${U}]`);return i?[i]:[]}function De(e,t,r){r&&(t&&G(t)&&(t.name=r),e&&e!==t&&j.has(e.localName)&&e.setAttribute("name",r))}function lt(e){let t=Reflect.get(e,"checked");return typeof t=="boolean"?t:e.hasAttribute("checked")}function ke(e){if(G(e)||e.hasAttribute(D))return e;let t=e.querySelector(`[${D}]`);if(t)return t;if(e.localName==="rui-combobox")return e.querySelector("[data-combobox-input]")??e;if(e.localName==="rui-date-field")return e.querySelector("[data-date-field-input]")??e;if(e.localName==="rui-date-range-picker")return e.querySelector("[data-range-start]")??e;if(e.localName==="rui-select")return e.querySelector("[data-select-trigger]")??e;if(e.localName==="rui-tag-group")return e.querySelector("[data-tag-list]")??e;if(e.localName==="rui-number-field")return e.querySelector("[data-number-field-input], input")??e;if(e.localName==="rui-slider")return e.querySelector('input[type="range"]')??e;if(e.localName==="rui-checkbox"||e.localName==="rui-switch")return e.querySelector("input")??e;if(e.localName==="rui-radio-group"){let r=e.querySelectorAll('input[type="radio"]');for(let i of r)if(lt(i))return i;return r[0]??e}return e}import{createContext as dt}from"@ecopages/radiant/context";var ue=dt(Symbol.for("rui-form-context"));import{createContext as ct}from"@ecopages/radiant/context";var ae=ct(Symbol.for("rui-field-context"));var qe,Le,Oe,Ue,je,Pe,Me,$e,Be,We,ze,Je,Ge,He,Ke,Qe,Xe,Ye,Ze,et;function ft(e,t,r,i,o,a){var u,n,N,k,A,I,h,v=Symbol.metadata||Symbol.for("Symbol.metadata"),p=Object.defineProperty,w=Object.create,q=[w(null),w(null)],le=t.length;function P(s,x,g){return function(l,d){x&&(d=l,l=e);for(var y=0;y<s.length;y++)d=s[y].apply(l,g?[d]:[]);return g?d:l}}function F(s,x,g,l){if(typeof s!="function"&&(l||s!==void 0))throw new TypeError(x+" must "+(g||"be")+" a function"+(l?"":" or undefined"));return s}function de(s,x,g,l,d,y,E,b,_,C,fe){function X(f){if(!fe(f))throw new TypeError("Attempted to access private element on non-instance")}var Y=[].concat(x[0]),he=x[3],Z=!E,L=d===1,me=d===3,pe=d===4,M=d===2;function $(f,V,ve){return function(W,xe){return V&&(xe=W,W=s),ve&&ve(W),c[f].call(W,xe)}}if(!Z){var c={},ee=[],R=me?"get":pe||L?"set":"value";if(_?(C||L?c={get:tt(function(){return he(this)},l,"get"),set:function(f){x[4](this,f)}}:c[R]=he,C||tt(c[R],l,M?"":R)):C||(c=Object.getOwnPropertyDescriptor(s,l)),!C&&!_){if((n=q[+b][l])&&(n^d)!==7)throw Error("Decorating two elements with the same name ("+c[R].name+") is not supported yet");q[+b][l]=d<3?1:d}}for(var m=s,B=Y.length-1;B>=0;B-=g?2:1){var ge=F(Y[B],"A decorator","be",!0),be=g?Y[B-1]:void 0,te={},O={kind:["field","accessor","method","getter","setter","class"][d],name:l,metadata:u,addInitializer:function(f,V){if(f.v)throw new TypeError("attempted to call addInitializer after decoration was finished");F(V,"An initializer","be",!0),y.push(V)}.bind(null,te)};if(Z)n=ge.call(be,m,O),te.v=1,F(n,"class decorators","return")&&(m=n);else if(O.static=b,O.private=_,n=O.access={has:_?fe.bind():function(f){return l in f}},pe||(n.get=_?M?function(f){return X(f),c.value}:$("get",0,X):function(f){return f[l]}),M||me||(n.set=_?$("set",0,X):function(f,V){f[l]=V}),m=ge.call(be,L?{get:c.get,set:c.set}:c[R],O),te.v=1,L){if(typeof m=="object"&&m)(n=F(m.get,"accessor.get"))&&(c.get=n),(n=F(m.set,"accessor.set"))&&(c.set=n),(n=F(m.init,"accessor.init"))&&ee.unshift(n);else if(m!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else F(m,(C?"field":"method")+" decorators","return")&&(C?ee.unshift(m):c[R]=m)}return d<2&&E.push(P(ee,b,1),P(y,b,0)),C||Z||(_?L?E.splice(-1,0,$("get",b),$("set",b)):E.push(M?c[R]:F.call.bind(c[R])):p(s,l,c)),m}function ce(s){return p(s,v,{configurable:!0,enumerable:!0,value:u})}return a!==void 0&&(u=a[v]),u=w(u??null),A=[],I=function(s){s&&A.push(P(s))},h=function(s,x){for(var g=0;g<r.length;g++){var l=r[g],d=l[1],y=7&d;if((8&d)==s&&!y==x){var E=l[2],b=!!l[3],_=16&d;de(s?e:e.prototype,l,_,b?"#"+E:ht(E),y,y<2?[]:s?k=k||[]:N=N||[],A,!!s,b,x,s&&b?function(C){return pt(C)===e}:o)}}},h(8,0),h(0,0),h(8,1),h(0,1),I(N),I(k),n=A,le||ce(e),{e:n,get c(){var s=[];return le&&[ce(e=de(e,[t],i,e.name,5,s)),P(s,1)]}}}function ht(e){var t=mt(e,"string");return typeof t=="symbol"?t:t+""}function mt(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var i=r.call(e,t||"default");if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function tt(e,t,r){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:r?r+" "+t:t})}catch{}return e}function pt(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}function _t(e){if(!e)return;let{validate:t,...r}=e;return r}var ot,nt=class extends it{static{({e:[Oe,Ue,je,Pe,Me,$e,Be,We,ze,Je,Ge,He,Ke,Qe,Xe,Ye,Ze,et,qe],c:[ot,Le]}=ft(this,[gt("rui-field")],[[S({type:String,reflect:!0,defaultValue:""}),0,"name"],[S({type:Object}),0,"rules"],[S({type:Object}),0,"defaultValue"],[S({type:String,attribute:ie}),0,"defaultValueData"],[S({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[S({type:String,defaultValue:""}),0,"error"],[S({type:Boolean,reflect:!0,defaultValue:!1}),0,"invalid"],[yt({context:ae,initialValue:{name:"",controlId:"",descriptionId:"",errorId:"",error:void 0,invalid:!1,required:!1},hydrate:Object,serialize:t=>({...t,rules:_t(t.rules)})}),0,"fieldProvider"],[vt(ue),0,"formContextProvider"],[xt({context:ue,requestUpdate:!1}),2,"onFormContextChanged"],[se(["name"]),2,"onNameUpdated"],[se(["rules","defaultValue","defaultValueData"]),2,"onRulesUpdated"],[se(["disabled","error","invalid"]),2,"onPresentationUpdated"],[K({selector:"[data-rui-control], rui-combobox, rui-date-field, rui-date-range-picker, rui-select, rui-tag-group, rui-checkbox, rui-switch, rui-radio-group, rui-slider, rui-number-field, rui-listbox",type:"rui-change"}),2,"onControlChange"],[K({selector:"[data-rui-control]",type:"input",options:{capture:!0}}),2,"onControlInput"],[K({selector:"[data-rui-control]",type:"change",options:{capture:!0}}),2,"onControlNativeChange"],[K({selector:"[data-rui-control]",type:"focusout"}),2,"onControlFocusOut"]],0,void 0,it))}name=(qe(this),Oe(this));rules=(Ue(this),je(this));defaultValue=(Pe(this),Me(this));defaultValueData=($e(this),Be(this));disabled=(We(this),ze(this));error=(Je(this),Ge(this));invalid=(He(this),Ke(this));fieldProvider=(Qe(this),Xe(this));formContextProvider=(Ye(this),Ze(this));uid=(et(this),Math.random().toString(36).slice(2,9));resolveFieldName(){return(this.name||this.getAttribute("name")||"").trim()}unregister;unregisterPresentation;registeredWithForm=!1;constructor(){super(),bt(this,()=>this.fieldProvider.setContext({rules:this.readFieldRules()}))}connectedCallback(){super.connectedCallback(),this.connectToForm(),queueMicrotask(()=>{this.connectToForm()})}disconnectedCallback(){this.unregister?.(),this.unregister=void 0,this.unregisterPresentation?.(),this.unregisterPresentation=void 0,this.registeredWithForm=!1,super.disconnectedCallback()}get currentFormContext(){return this.formContextProvider?.getContext()}parseJsonAttr(t){if(t)try{return JSON.parse(t)}catch{return}}readFieldRules(){let t=this.rules;return t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length>0?t:this.fieldProvider.getContext()?.rules}readDefaultValue(){return this.defaultValue!==void 0?this.defaultValue:this.parseJsonAttr(this.defaultValueData??this.getAttribute(ie))}isRequired(){return!!this.readFieldRules()?.required}resolveErrorMessage(t){if(this.error)return this.error;let r=this.resolveFieldName();return r?(t??this.currentFormContext)?.fields[r]?.error:void 0}resolveInvalid(t){if(this.invalid||this.error)return!0;let r=this.resolveFieldName();return r?(t??this.currentFormContext)?.fields[r]?.invalid??!1:!1}connectToForm(){let t=this.resolveFieldName(),r=this.currentFormContext,i=r?.actions;if(!r?.ready||!i||!t){this.syncField();return}if(!this.registeredWithForm){this.registeredWithForm=!0,this.unregisterPresentation?.(),this.unregisterPresentation=i.subscribePresentation(o=>this.syncField(o)),this.unregister=i.register({name:t,rules:this.readFieldRules(),getRules:()=>this.readFieldRules(),defaultValue:this.readDefaultValue(),getValue:()=>{let o=H(this);return o?Se(o):void 0},setValue:o=>{let a=H(this);a&&Ne(a,o)}});return}i.updateFieldOptions(t,{rules:this.readFieldRules(),defaultValue:this.readDefaultValue()}),this.syncField()}onFormContextChanged(t){if(!this.registeredWithForm){t.ready?this.connectToForm():this.syncField(t);return}this.syncField(t)}onNameUpdated(){this.unregister?.(),this.unregister=void 0,this.unregisterPresentation?.(),this.unregisterPresentation=void 0,this.registeredWithForm=!1,this.connectToForm()}onRulesUpdated(){this.connectToForm()}onPresentationUpdated(){this.syncField()}onControlChange(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldChange(t)}onControlInput(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldChange(t)}onControlNativeChange(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldChange(t)}onControlFocusOut(){let t=this.resolveFieldName();t&&this.currentFormContext?.actions.handleFieldBlur(t)}syncField(t){let r=H(this),i=r?ke(r):null,o=i?.id||`rui-field-control-${this.uid}`,a=`rui-field-desc-${this.uid}`,u=`rui-field-error-${this.uid}`,n=this.resolveErrorMessage(t),N=this.resolveInvalid(t),k=this.isRequired(),A=this.resolveFieldName();if(De(r,i,A),i){i.id||(i.id=o),i.setAttribute(Fe,""),i.setAttribute("aria-invalid",N?"true":"false"),this.isRequired()?i.setAttribute("aria-required","true"):i.removeAttribute("aria-required");let p=[],w=we(this);w&&(w.id=a,p.push(a));let q=Ve(this);q&&(q.id=u,n&&p.push(u)),p.length>0?i.setAttribute("aria-describedby",p.join(" ")):i.removeAttribute("aria-describedby"),this.disabled&&(i.setAttribute("aria-disabled","true"),G(i)&&(i.disabled=!0))}let I=Ie(this);I&&i&&(I.htmlFor=i.id);for(let p of oe(this))p.textContent=n??"",n?(p.hidden=!1,p.removeAttribute("hidden")):p.hidden=!0;let h={name:A,controlId:i?.id??o,descriptionId:a,errorId:u,error:n,invalid:N,required:k},v=this.fieldProvider.getContext();v.name===h.name&&v.controlId===h.controlId&&v.descriptionId===h.descriptionId&&v.errorId===h.errorId&&v.error===h.error&&v.invalid===h.invalid&&v.required===h.required||this.fieldProvider.setContext(h)}render(){return rt("div",{class:"rui-field",children:rt("slot",{})})}static{Le()}};function Ft({children:e,rules:t,defaultValue:r,defaultValueData:i,...o}){return Ct("rui-field",{...o,"prop:rules":t,"prop:defaultValue":r,data:{defaultValue:i??(r!==void 0?JSON.stringify(r):void 0)},children:e})}import{jsx as Rt}from"@ecopages/jsx/jsx-runtime";function Q(...e){return e.filter(Boolean).join(" ")}function At({children:e,class:t,...r}){return Rt("p",{...r,[re]:"",class:Q("rui-field__description",t),children:e})}import{jsx as Et}from"@ecopages/jsx/jsx-runtime";function Tt({class:e,...t}){return Et("p",{...t,[U]:"",class:Q("rui-field__error",e),role:"alert",hidden:!0})}export{Ft as RuiField,At as RuiFieldDescription,ot as RuiFieldElement,Tt as RuiFieldError,ae as fieldContext};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/field/field.tsx", "../../../../src/components/ui/field/field.script.tsx", "../../../../src/components/ui/form/control-protocol.ts", "../../../../src/components/ui/form/form-context.ts", "../../../../src/components/ui/field/field-context.ts", "../../../../src/components/ui/field/field-description.tsx", "../../../../src/lib/cx.ts", "../../../../src/components/ui/field/field-error.tsx"],
4
- "sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./field.script\";\nexport function RuiField({\n children,\n rules,\n defaultValue,\n defaultValueData,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-field\", {\n ...props,\n \"prop:rules\": rules,\n \"prop:defaultValue\": defaultValue,\n \"attr:data-default-value\": defaultValueData ?? (defaultValue !== void 0 ? JSON.stringify(defaultValue) : void 0),\n children\n });\n}", "let _initProto, _initClass, _init_name, _init_extra_name, _init_rules, _init_extra_rules, _init_defaultValue, _init_extra_defaultValue, _init_defaultValueData, _init_extra_defaultValueData, _init_disabled, _init_extra_disabled, _init_error, _init_extra_error, _init_invalid, _init_extra_invalid, _init_fieldProvider, _init_extra_fieldProvider, _init_formContextProvider, _init_extra_formContextProvider;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, onEvent, onUpdated, prop, registerSsrPreparationCallback } from \"@ecopages/radiant\";\nimport { consumeContext, onContextUpdate, provideContext } from \"@ecopages/radiant/context\";\nimport { findFieldControl, findFieldDescription, findFieldError, findFieldErrorElements, findFieldLabel, getAriaControlTarget, isNativeTextControl, readControlValue, RUI_FIELD_DEFAULT_VALUE_ATTR, RUI_FIELD_MANAGED_ATTR, writeControlValue, wireFieldControlName } from \"../form/control-protocol\";\nimport { formContext } from \"../form/form-context\";\nimport { fieldContext } from \"./field-context\";\nfunction stripValidate(rules) {\n if (!rules) {\n return void 0;\n }\n const {\n validate: _validate,\n ...serializable\n } = rules;\n return serializable;\n}\nlet _RuiField;\nclass RuiField extends RadiantElement {\n static {\n ({\n e: [_init_name, _init_extra_name, _init_rules, _init_extra_rules, _init_defaultValue, _init_extra_defaultValue, _init_defaultValueData, _init_extra_defaultValueData, _init_disabled, _init_extra_disabled, _init_error, _init_extra_error, _init_invalid, _init_extra_invalid, _init_fieldProvider, _init_extra_fieldProvider, _init_formContextProvider, _init_extra_formContextProvider, _initProto],\n c: [_RuiField, _initClass]\n } = _applyDecs(this, [customElement(\"rui-field\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"name\"], [prop({\n type: Object\n }), 0, \"rules\"], [prop({\n type: Object\n }), 0, \"defaultValue\"], [prop({\n type: String,\n attribute: RUI_FIELD_DEFAULT_VALUE_ATTR\n }), 0, \"defaultValueData\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"error\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"invalid\"], [provideContext({\n context: fieldContext,\n initialValue: {\n name: \"\",\n controlId: \"\",\n descriptionId: \"\",\n errorId: \"\",\n error: void 0,\n invalid: false,\n required: false\n },\n hydrate: Object,\n serialize: value => ({\n ...value,\n rules: stripValidate(value.rules)\n })\n }), 0, \"fieldProvider\"], [consumeContext(formContext), 0, \"formContextProvider\"], [onContextUpdate({\n context: formContext,\n requestUpdate: false\n }), 2, \"onFormContextChanged\"], [onUpdated([\"name\"]), 2, \"onNameUpdated\"], [onUpdated([\"rules\", \"defaultValue\", \"defaultValueData\"]), 2, \"onRulesUpdated\"], [onUpdated([\"disabled\", \"error\", \"invalid\"]), 2, \"onPresentationUpdated\"], [onEvent({\n selector: \"[data-rui-control], rui-combobox, rui-date-field, rui-date-range-picker, rui-select, rui-tag-group, rui-checkbox, rui-switch, rui-radio-group, rui-slider, rui-number-field, rui-listbox\",\n type: \"rui-change\"\n }), 2, \"onControlChange\"], [onEvent({\n selector: \"[data-rui-control]\",\n type: \"input\",\n options: {\n capture: true\n }\n }), 2, \"onControlInput\"], [onEvent({\n selector: \"[data-rui-control]\",\n type: \"change\",\n options: {\n capture: true\n }\n }), 2, \"onControlNativeChange\"], [onEvent({\n selector: \"[data-rui-control]\",\n type: \"focusout\"\n }), 2, \"onControlFocusOut\"]], 0, void 0, RadiantElement));\n }\n name = (_initProto(this), _init_name(this));\n rules = (_init_extra_name(this), _init_rules(this));\n defaultValue = (_init_extra_rules(this), _init_defaultValue(this));\n defaultValueData = (_init_extra_defaultValue(this), _init_defaultValueData(this));\n disabled = (_init_extra_defaultValueData(this), _init_disabled(this));\n error = (_init_extra_disabled(this), _init_error(this));\n invalid = (_init_extra_error(this), _init_invalid(this));\n fieldProvider = (_init_extra_invalid(this), _init_fieldProvider(this));\n formContextProvider = (_init_extra_fieldProvider(this), _init_formContextProvider(this));\n uid = (_init_extra_formContextProvider(this), Math.random().toString(36).slice(2, 9));\n /** Resolved field name from property or `name` attribute (Storybook can hydrate props after connect). */\n resolveFieldName() {\n return (this.name || this.getAttribute(\"name\") || \"\").trim();\n }\n unregister;\n unregisterPresentation;\n registeredWithForm = false;\n /**\n * @remarks Registers SSR-prep rules on `fieldProvider` so hydrated fields recover them after a\n * real SSR round-trip (`prop:rules` does not survive that boundary; `connectedCallback` never\n * runs during SSR).\n */\n constructor() {\n super();\n registerSsrPreparationCallback(this, () => this.fieldProvider.setContext({\n rules: this.readFieldRules()\n }));\n }\n connectedCallback() {\n super.connectedCallback();\n this.connectToForm();\n queueMicrotask(() => {\n this.connectToForm();\n });\n }\n disconnectedCallback() {\n this.unregister?.();\n this.unregister = void 0;\n this.unregisterPresentation?.();\n this.unregisterPresentation = void 0;\n this.registeredWithForm = false;\n super.disconnectedCallback();\n }\n get currentFormContext() {\n return this.formContextProvider?.getContext();\n }\n parseJsonAttr(raw) {\n if (!raw) {\n return void 0;\n }\n try {\n return JSON.parse(raw);\n } catch {\n return void 0;\n }\n }\n /**\n * Prefers the live `rules` prop \u2014 it's the only channel that can carry a `validate`\n * function. Falls back to `fieldProvider`'s own context, which only ever holds the\n * JSON-safe subset (see its `serialize` option) \u2014 this is what recovers rules after a\n * real SSR hydrate, since `prop:rules` itself doesn't survive that boundary.\n */\n readFieldRules() {\n const rules = this.rules;\n if (rules && typeof rules === \"object\" && !Array.isArray(rules) && Object.keys(rules).length > 0) {\n return rules;\n }\n return this.fieldProvider.getContext()?.rules;\n }\n readDefaultValue() {\n if (this.defaultValue !== void 0) {\n return this.defaultValue;\n }\n return this.parseJsonAttr(this.defaultValueData ?? this.getAttribute(RUI_FIELD_DEFAULT_VALUE_ATTR));\n }\n isRequired() {\n return Boolean(this.readFieldRules()?.required);\n }\n resolveErrorMessage(formCtx) {\n if (this.error) {\n return this.error;\n }\n const fieldName = this.resolveFieldName();\n if (!fieldName) {\n return void 0;\n }\n const ctx = formCtx ?? this.currentFormContext;\n return ctx?.fields[fieldName]?.error;\n }\n resolveInvalid(formCtx) {\n if (this.invalid) {\n return true;\n }\n if (this.error) {\n return true;\n }\n const fieldName = this.resolveFieldName();\n if (!fieldName) {\n return false;\n }\n const ctx = formCtx ?? this.currentFormContext;\n return ctx?.fields[fieldName]?.invalid ?? false;\n }\n connectToForm() {\n const fieldName = this.resolveFieldName();\n const ctx = this.currentFormContext;\n const actions = ctx?.actions;\n if (!ctx?.ready || !actions || !fieldName) {\n this.syncField();\n return;\n }\n if (!this.registeredWithForm) {\n this.registeredWithForm = true;\n this.unregisterPresentation?.();\n this.unregisterPresentation = actions.subscribePresentation(ctx2 => this.syncField(ctx2));\n this.unregister = actions.register({\n name: fieldName,\n rules: this.readFieldRules(),\n getRules: () => this.readFieldRules(),\n defaultValue: this.readDefaultValue(),\n getValue: () => {\n const control = findFieldControl(this);\n return control ? readControlValue(control) : void 0;\n },\n setValue: value => {\n const control = findFieldControl(this);\n if (control) {\n writeControlValue(control, value);\n }\n }\n });\n return;\n }\n actions.updateFieldOptions(fieldName, {\n rules: this.readFieldRules(),\n defaultValue: this.readDefaultValue()\n });\n this.syncField();\n }\n onFormContextChanged(ctx) {\n if (!this.registeredWithForm) {\n if (ctx.ready) {\n this.connectToForm();\n } else {\n this.syncField(ctx);\n }\n return;\n }\n this.syncField(ctx);\n }\n onNameUpdated() {\n this.unregister?.();\n this.unregister = void 0;\n this.unregisterPresentation?.();\n this.unregisterPresentation = void 0;\n this.registeredWithForm = false;\n this.connectToForm();\n }\n onRulesUpdated() {\n this.connectToForm();\n }\n onPresentationUpdated() {\n this.syncField();\n }\n onControlChange() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldChange(fieldName);\n }\n }\n onControlInput() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldChange(fieldName);\n }\n }\n onControlNativeChange() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldChange(fieldName);\n }\n }\n onControlFocusOut() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldBlur(fieldName);\n }\n }\n syncField(formCtx) {\n const controlHost = findFieldControl(this);\n const ariaTarget = controlHost ? getAriaControlTarget(controlHost) : null;\n const controlId = ariaTarget?.id || `rui-field-control-${this.uid}`;\n const descriptionId = `rui-field-desc-${this.uid}`;\n const errorId = `rui-field-error-${this.uid}`;\n const errorMessage = this.resolveErrorMessage(formCtx);\n const invalid = this.resolveInvalid(formCtx);\n const required = this.isRequired();\n const fieldName = this.resolveFieldName();\n wireFieldControlName(controlHost, ariaTarget, fieldName);\n if (ariaTarget) {\n if (!ariaTarget.id) {\n ariaTarget.id = controlId;\n }\n ariaTarget.setAttribute(RUI_FIELD_MANAGED_ATTR, \"\");\n ariaTarget.setAttribute(\"aria-invalid\", invalid ? \"true\" : \"false\");\n if (this.isRequired()) {\n ariaTarget.setAttribute(\"aria-required\", \"true\");\n } else {\n ariaTarget.removeAttribute(\"aria-required\");\n }\n const describedBy = [];\n const description = findFieldDescription(this);\n if (description) {\n description.id = descriptionId;\n describedBy.push(descriptionId);\n }\n const errorEl = findFieldError(this);\n if (errorEl) {\n errorEl.id = errorId;\n if (errorMessage) {\n describedBy.push(errorId);\n }\n }\n if (describedBy.length > 0) {\n ariaTarget.setAttribute(\"aria-describedby\", describedBy.join(\" \"));\n } else {\n ariaTarget.removeAttribute(\"aria-describedby\");\n }\n if (this.disabled) {\n ariaTarget.setAttribute(\"aria-disabled\", \"true\");\n if (isNativeTextControl(ariaTarget)) {\n ariaTarget.disabled = true;\n }\n }\n }\n const label = findFieldLabel(this);\n if (label && ariaTarget) {\n label.htmlFor = ariaTarget.id;\n }\n for (const errorEl of findFieldErrorElements(this)) {\n errorEl.textContent = errorMessage ?? \"\";\n if (errorMessage) {\n errorEl.hidden = false;\n errorEl.removeAttribute(\"hidden\");\n } else {\n errorEl.hidden = true;\n }\n }\n const nextFieldContext = {\n name: fieldName,\n controlId: ariaTarget?.id ?? controlId,\n descriptionId,\n errorId,\n error: errorMessage,\n invalid,\n required\n };\n const prev = this.fieldProvider.getContext();\n if (prev.name === nextFieldContext.name && prev.controlId === nextFieldContext.controlId && prev.descriptionId === nextFieldContext.descriptionId && prev.errorId === nextFieldContext.errorId && prev.error === nextFieldContext.error && prev.invalid === nextFieldContext.invalid && prev.required === nextFieldContext.required) {\n return;\n }\n this.fieldProvider.setContext(nextFieldContext);\n }\n render() {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-field\",\n children: /* @__PURE__ */jsx(\"slot\", {})\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiField as RuiField };", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-date-field\", \"rui-date-range-picker\", \"rui-select\", \"rui-tag-group\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-number-field\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}`;\nexport function isNativeTextControl(node) {\n return node.localName === \"input\" || node.localName === \"textarea\";\n}\nfunction isNativeInput(node) {\n return node.localName === \"input\";\n}\nfunction isNativeTextarea(node) {\n return node.localName === \"textarea\";\n}\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", stringValueAdapter], [\"rui-date-field\", stringValueAdapter], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", stringValueAdapter], [\"rui-radio-group\", stringValueAdapter], [\"rui-listbox\", stringValueAdapter], [\"rui-tag-group\", stringValueAdapter], [\"rui-slider\", numberValueAdapter], [\"rui-number-field\", numberValueAdapter]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const hostControl = candidates.find(candidate => HOST_CONTROL_TAGS.has(candidate.localName));\n const markedControl = candidates.find(candidate => candidate.hasAttribute(RUI_CONTROL_ATTR));\n if (markedControl) {\n return markedControl;\n }\n if (hostControl) {\n return hostControl;\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`) || HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n return node.querySelector(CONTROL_SELECTOR);\n}\nexport function readControlValue(control) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (isNativeTextarea(control)) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (isNativeTextarea(control)) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget && isNativeTextControl(ariaTarget)) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nfunction isChecked(input) {\n const checked = Reflect.get(input, \"checked\");\n return typeof checked === \"boolean\" ? checked : input.hasAttribute(\"checked\");\n}\nexport function getAriaControlTarget(control) {\n if (isNativeTextControl(control)) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-date-field\") {\n return control.querySelector(\"[data-date-field-input]\") ?? control;\n }\n if (control.localName === \"rui-date-range-picker\") {\n return control.querySelector(\"[data-range-start]\") ?? control;\n }\n if (control.localName === \"rui-select\") {\n return control.querySelector(\"[data-select-trigger]\") ?? control;\n }\n if (control.localName === \"rui-tag-group\") {\n return control.querySelector(\"[data-tag-list]\") ?? control;\n }\n if (control.localName === \"rui-number-field\") {\n return control.querySelector(\"[data-number-field-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const radios = control.querySelectorAll('input[type=\"radio\"]');\n for (const radio of radios) {\n if (isChecked(radio)) {\n return radio;\n }\n }\n return radios[0] ?? control;\n }\n return control;\n}", "import { createContext } from \"@ecopages/radiant/context\";\nexport const formContext = createContext(/* @__PURE__ */Symbol.for(\"rui-form-context\"));", "import { createContext } from \"@ecopages/radiant/context\";\nexport const fieldContext = createContext(/* @__PURE__ */Symbol.for(\"rui-field-context\"));", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RUI_FIELD_DESCRIPTION_ATTR } from \"../form/control-protocol\";\nexport function RuiFieldDescription({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"p\", {\n ...props,\n ...{\n [RUI_FIELD_DESCRIPTION_ATTR]: \"\"\n },\n class: cx(\"rui-field__description\", className),\n children\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\";\nimport { RUI_FIELD_ERROR_ATTR } from \"../form/control-protocol\";\nexport function RuiFieldError({\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"p\", {\n ...props,\n ...{\n [RUI_FIELD_ERROR_ATTR]: \"\"\n },\n class: cx(\"rui-field__error\", className),\n role: \"alert\",\n hidden: true\n });\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./field.script\";\nexport function RuiField({\n children,\n rules,\n defaultValue,\n defaultValueData,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-field\", {\n ...props,\n \"prop:rules\": rules,\n \"prop:defaultValue\": defaultValue,\n data: {\n defaultValue: defaultValueData ?? (defaultValue !== void 0 ? JSON.stringify(defaultValue) : void 0)\n },\n children\n });\n}", "let _initProto, _initClass, _init_name, _init_extra_name, _init_rules, _init_extra_rules, _init_defaultValue, _init_extra_defaultValue, _init_defaultValueData, _init_extra_defaultValueData, _init_disabled, _init_extra_disabled, _init_error, _init_extra_error, _init_invalid, _init_extra_invalid, _init_fieldProvider, _init_extra_fieldProvider, _init_formContextProvider, _init_extra_formContextProvider;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, onEvent, onUpdated, prop, registerSsrPreparationCallback } from \"@ecopages/radiant\";\nimport { consumeContext, onContextUpdate, provideContext } from \"@ecopages/radiant/context\";\nimport { findFieldControl, findFieldDescription, findFieldError, findFieldErrorElements, findFieldLabel, getAriaControlTarget, isNativeTextControl, readControlValue, RUI_FIELD_DEFAULT_VALUE_ATTR, RUI_FIELD_MANAGED_ATTR, writeControlValue, wireFieldControlName } from \"../form/control-protocol\";\nimport { formContext } from \"../form/form-context\";\nimport { fieldContext } from \"./field-context\";\nfunction stripValidate(rules) {\n if (!rules) {\n return void 0;\n }\n const {\n validate: _validate,\n ...serializable\n } = rules;\n return serializable;\n}\nlet _RuiField;\nclass RuiField extends RadiantElement {\n static {\n ({\n e: [_init_name, _init_extra_name, _init_rules, _init_extra_rules, _init_defaultValue, _init_extra_defaultValue, _init_defaultValueData, _init_extra_defaultValueData, _init_disabled, _init_extra_disabled, _init_error, _init_extra_error, _init_invalid, _init_extra_invalid, _init_fieldProvider, _init_extra_fieldProvider, _init_formContextProvider, _init_extra_formContextProvider, _initProto],\n c: [_RuiField, _initClass]\n } = _applyDecs(this, [customElement(\"rui-field\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"name\"], [prop({\n type: Object\n }), 0, \"rules\"], [prop({\n type: Object\n }), 0, \"defaultValue\"], [prop({\n type: String,\n attribute: RUI_FIELD_DEFAULT_VALUE_ATTR\n }), 0, \"defaultValueData\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"error\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"invalid\"], [provideContext({\n context: fieldContext,\n initialValue: {\n name: \"\",\n controlId: \"\",\n descriptionId: \"\",\n errorId: \"\",\n error: void 0,\n invalid: false,\n required: false\n },\n hydrate: Object,\n serialize: value => ({\n ...value,\n rules: stripValidate(value.rules)\n })\n }), 0, \"fieldProvider\"], [consumeContext(formContext), 0, \"formContextProvider\"], [onContextUpdate({\n context: formContext,\n requestUpdate: false\n }), 2, \"onFormContextChanged\"], [onUpdated([\"name\"]), 2, \"onNameUpdated\"], [onUpdated([\"rules\", \"defaultValue\", \"defaultValueData\"]), 2, \"onRulesUpdated\"], [onUpdated([\"disabled\", \"error\", \"invalid\"]), 2, \"onPresentationUpdated\"], [onEvent({\n selector: \"[data-rui-control], rui-combobox, rui-date-field, rui-date-range-picker, rui-select, rui-tag-group, rui-checkbox, rui-switch, rui-radio-group, rui-slider, rui-number-field, rui-listbox\",\n type: \"rui-change\"\n }), 2, \"onControlChange\"], [onEvent({\n selector: \"[data-rui-control]\",\n type: \"input\",\n options: {\n capture: true\n }\n }), 2, \"onControlInput\"], [onEvent({\n selector: \"[data-rui-control]\",\n type: \"change\",\n options: {\n capture: true\n }\n }), 2, \"onControlNativeChange\"], [onEvent({\n selector: \"[data-rui-control]\",\n type: \"focusout\"\n }), 2, \"onControlFocusOut\"]], 0, void 0, RadiantElement));\n }\n name = (_initProto(this), _init_name(this));\n rules = (_init_extra_name(this), _init_rules(this));\n defaultValue = (_init_extra_rules(this), _init_defaultValue(this));\n defaultValueData = (_init_extra_defaultValue(this), _init_defaultValueData(this));\n disabled = (_init_extra_defaultValueData(this), _init_disabled(this));\n error = (_init_extra_disabled(this), _init_error(this));\n invalid = (_init_extra_error(this), _init_invalid(this));\n fieldProvider = (_init_extra_invalid(this), _init_fieldProvider(this));\n formContextProvider = (_init_extra_fieldProvider(this), _init_formContextProvider(this));\n uid = (_init_extra_formContextProvider(this), Math.random().toString(36).slice(2, 9));\n /** Resolved field name from property or `name` attribute (Storybook can hydrate props after connect). */\n resolveFieldName() {\n return (this.name || this.getAttribute(\"name\") || \"\").trim();\n }\n unregister;\n unregisterPresentation;\n registeredWithForm = false;\n /**\n * @remarks Registers SSR-prep rules on `fieldProvider` so hydrated fields recover them after a\n * real SSR round-trip (`prop:rules` does not survive that boundary; `connectedCallback` never\n * runs during SSR).\n */\n constructor() {\n super();\n registerSsrPreparationCallback(this, () => this.fieldProvider.setContext({\n rules: this.readFieldRules()\n }));\n }\n connectedCallback() {\n super.connectedCallback();\n this.connectToForm();\n queueMicrotask(() => {\n this.connectToForm();\n });\n }\n disconnectedCallback() {\n this.unregister?.();\n this.unregister = void 0;\n this.unregisterPresentation?.();\n this.unregisterPresentation = void 0;\n this.registeredWithForm = false;\n super.disconnectedCallback();\n }\n get currentFormContext() {\n return this.formContextProvider?.getContext();\n }\n parseJsonAttr(raw) {\n if (!raw) {\n return void 0;\n }\n try {\n return JSON.parse(raw);\n } catch {\n return void 0;\n }\n }\n /**\n * Prefers the live `rules` prop \u2014 it's the only channel that can carry a `validate`\n * function. Falls back to `fieldProvider`'s own context, which only ever holds the\n * JSON-safe subset (see its `serialize` option) \u2014 this is what recovers rules after a\n * real SSR hydrate, since `prop:rules` itself doesn't survive that boundary.\n */\n readFieldRules() {\n const rules = this.rules;\n if (rules && typeof rules === \"object\" && !Array.isArray(rules) && Object.keys(rules).length > 0) {\n return rules;\n }\n return this.fieldProvider.getContext()?.rules;\n }\n readDefaultValue() {\n if (this.defaultValue !== void 0) {\n return this.defaultValue;\n }\n return this.parseJsonAttr(this.defaultValueData ?? this.getAttribute(RUI_FIELD_DEFAULT_VALUE_ATTR));\n }\n isRequired() {\n return Boolean(this.readFieldRules()?.required);\n }\n resolveErrorMessage(formCtx) {\n if (this.error) {\n return this.error;\n }\n const fieldName = this.resolveFieldName();\n if (!fieldName) {\n return void 0;\n }\n const ctx = formCtx ?? this.currentFormContext;\n return ctx?.fields[fieldName]?.error;\n }\n resolveInvalid(formCtx) {\n if (this.invalid) {\n return true;\n }\n if (this.error) {\n return true;\n }\n const fieldName = this.resolveFieldName();\n if (!fieldName) {\n return false;\n }\n const ctx = formCtx ?? this.currentFormContext;\n return ctx?.fields[fieldName]?.invalid ?? false;\n }\n connectToForm() {\n const fieldName = this.resolveFieldName();\n const ctx = this.currentFormContext;\n const actions = ctx?.actions;\n if (!ctx?.ready || !actions || !fieldName) {\n this.syncField();\n return;\n }\n if (!this.registeredWithForm) {\n this.registeredWithForm = true;\n this.unregisterPresentation?.();\n this.unregisterPresentation = actions.subscribePresentation(ctx2 => this.syncField(ctx2));\n this.unregister = actions.register({\n name: fieldName,\n rules: this.readFieldRules(),\n getRules: () => this.readFieldRules(),\n defaultValue: this.readDefaultValue(),\n getValue: () => {\n const control = findFieldControl(this);\n return control ? readControlValue(control) : void 0;\n },\n setValue: value => {\n const control = findFieldControl(this);\n if (control) {\n writeControlValue(control, value);\n }\n }\n });\n return;\n }\n actions.updateFieldOptions(fieldName, {\n rules: this.readFieldRules(),\n defaultValue: this.readDefaultValue()\n });\n this.syncField();\n }\n onFormContextChanged(ctx) {\n if (!this.registeredWithForm) {\n if (ctx.ready) {\n this.connectToForm();\n } else {\n this.syncField(ctx);\n }\n return;\n }\n this.syncField(ctx);\n }\n onNameUpdated() {\n this.unregister?.();\n this.unregister = void 0;\n this.unregisterPresentation?.();\n this.unregisterPresentation = void 0;\n this.registeredWithForm = false;\n this.connectToForm();\n }\n onRulesUpdated() {\n this.connectToForm();\n }\n onPresentationUpdated() {\n this.syncField();\n }\n onControlChange() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldChange(fieldName);\n }\n }\n onControlInput() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldChange(fieldName);\n }\n }\n onControlNativeChange() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldChange(fieldName);\n }\n }\n onControlFocusOut() {\n const fieldName = this.resolveFieldName();\n if (fieldName) {\n this.currentFormContext?.actions.handleFieldBlur(fieldName);\n }\n }\n syncField(formCtx) {\n const controlHost = findFieldControl(this);\n const ariaTarget = controlHost ? getAriaControlTarget(controlHost) : null;\n const controlId = ariaTarget?.id || `rui-field-control-${this.uid}`;\n const descriptionId = `rui-field-desc-${this.uid}`;\n const errorId = `rui-field-error-${this.uid}`;\n const errorMessage = this.resolveErrorMessage(formCtx);\n const invalid = this.resolveInvalid(formCtx);\n const required = this.isRequired();\n const fieldName = this.resolveFieldName();\n wireFieldControlName(controlHost, ariaTarget, fieldName);\n if (ariaTarget) {\n if (!ariaTarget.id) {\n ariaTarget.id = controlId;\n }\n ariaTarget.setAttribute(RUI_FIELD_MANAGED_ATTR, \"\");\n ariaTarget.setAttribute(\"aria-invalid\", invalid ? \"true\" : \"false\");\n if (this.isRequired()) {\n ariaTarget.setAttribute(\"aria-required\", \"true\");\n } else {\n ariaTarget.removeAttribute(\"aria-required\");\n }\n const describedBy = [];\n const description = findFieldDescription(this);\n if (description) {\n description.id = descriptionId;\n describedBy.push(descriptionId);\n }\n const errorEl = findFieldError(this);\n if (errorEl) {\n errorEl.id = errorId;\n if (errorMessage) {\n describedBy.push(errorId);\n }\n }\n if (describedBy.length > 0) {\n ariaTarget.setAttribute(\"aria-describedby\", describedBy.join(\" \"));\n } else {\n ariaTarget.removeAttribute(\"aria-describedby\");\n }\n if (this.disabled) {\n ariaTarget.setAttribute(\"aria-disabled\", \"true\");\n if (isNativeTextControl(ariaTarget)) {\n ariaTarget.disabled = true;\n }\n }\n }\n const label = findFieldLabel(this);\n if (label && ariaTarget) {\n label.htmlFor = ariaTarget.id;\n }\n for (const errorEl of findFieldErrorElements(this)) {\n errorEl.textContent = errorMessage ?? \"\";\n if (errorMessage) {\n errorEl.hidden = false;\n errorEl.removeAttribute(\"hidden\");\n } else {\n errorEl.hidden = true;\n }\n }\n const nextFieldContext = {\n name: fieldName,\n controlId: ariaTarget?.id ?? controlId,\n descriptionId,\n errorId,\n error: errorMessage,\n invalid,\n required\n };\n const prev = this.fieldProvider.getContext();\n if (prev.name === nextFieldContext.name && prev.controlId === nextFieldContext.controlId && prev.descriptionId === nextFieldContext.descriptionId && prev.errorId === nextFieldContext.errorId && prev.error === nextFieldContext.error && prev.invalid === nextFieldContext.invalid && prev.required === nextFieldContext.required) {\n return;\n }\n this.fieldProvider.setContext(nextFieldContext);\n }\n render() {\n return /* @__PURE__ */jsx(\"div\", {\n class: \"rui-field\",\n children: /* @__PURE__ */jsx(\"slot\", {})\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiField as RuiField };", "export const RUI_CONTROL_ATTR = \"data-rui-control\";\nexport const RUI_FIELD_MANAGED_ATTR = \"data-rui-field-managed\";\nexport const RUI_FIELD_LABEL_ATTR = \"data-rui-field-label\";\nexport const RUI_FIELD_DESCRIPTION_ATTR = \"data-rui-field-description\";\nexport const RUI_FIELD_ERROR_ATTR = \"data-rui-field-error\";\nexport const RUI_FIELD_DEFAULT_VALUE_ATTR = \"data-default-value\";\nexport const RUI_FORM_DEFAULT_VALUES_ATTR = \"data-default-values\";\nconst HOST_CONTROL_TAGS = /* @__PURE__ */new Set([\"rui-combobox\", \"rui-date-field\", \"rui-date-range-picker\", \"rui-select\", \"rui-tag-group\", \"rui-checkbox\", \"rui-switch\", \"rui-radio-group\", \"rui-slider\", \"rui-number-field\", \"rui-listbox\"]);\nconst CONTROL_SELECTOR = `[${RUI_CONTROL_ATTR}], ${Array.from(HOST_CONTROL_TAGS).join(\", \")}`;\nexport function isNativeTextControl(node) {\n return node.localName === \"input\" || node.localName === \"textarea\";\n}\nfunction isNativeInput(node) {\n return node.localName === \"input\";\n}\nfunction isNativeTextarea(node) {\n return node.localName === \"textarea\";\n}\nconst stringValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n return typeof value === \"string\" ? value : host.getAttribute(\"value\") ?? \"\";\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", next);\n }\n }\n};\nconst numberValueAdapter = {\n read: host => {\n const value = Reflect.get(host, \"value\");\n if (typeof value === \"number\") {\n return value;\n }\n const raw = host.getAttribute(\"value\");\n return raw == null || raw === \"\" ? \"\" : Number(raw);\n },\n write: (host, value) => {\n const next = value == null ? \"\" : String(value);\n host.setAttribute(\"value\", next);\n if (\"value\" in host) {\n Reflect.set(host, \"value\", value);\n }\n }\n};\nconst booleanValueAdapter = {\n read: host => {\n const input = host.querySelector('input[type=\"checkbox\"]');\n return input?.checked ?? host.hasAttribute(\"checked\");\n },\n write: (host, value) => {\n if (value) {\n host.setAttribute(\"checked\", \"\");\n } else {\n host.removeAttribute(\"checked\");\n }\n }\n};\nconst CONTROL_VALUE_ADAPTERS = /* @__PURE__ */new Map([[\"rui-checkbox\", booleanValueAdapter], [\"rui-switch\", booleanValueAdapter], [\"rui-combobox\", stringValueAdapter], [\"rui-date-field\", stringValueAdapter], [\"rui-date-range-picker\", stringValueAdapter], [\"rui-select\", stringValueAdapter], [\"rui-radio-group\", stringValueAdapter], [\"rui-listbox\", stringValueAdapter], [\"rui-tag-group\", stringValueAdapter], [\"rui-slider\", numberValueAdapter], [\"rui-number-field\", numberValueAdapter]]);\nfunction forEachFieldContentNode(root, visit) {\n const slotHost = root;\n const visited = /* @__PURE__ */new Set();\n const safeVisit = node => {\n if (visited.has(node)) {\n return;\n }\n visited.add(node);\n visit(node);\n };\n if (typeof slotHost.getSlotElements === \"function\") {\n for (const node of slotHost.getSlotElements()) {\n safeVisit(node);\n }\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n for (const child of Array.from(renderRoot.children)) {\n safeVisit(child);\n }\n for (const node of renderRoot.querySelectorAll(\"*\")) {\n safeVisit(node);\n }\n for (const child of Array.from(root.children)) {\n safeVisit(child);\n }\n const shadow = root.shadowRoot;\n if (shadow) {\n for (const child of Array.from(shadow.children)) {\n safeVisit(child);\n }\n }\n}\nfunction queryFieldContent(root, selector) {\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found || !(node instanceof HTMLElement)) {\n return;\n }\n if (node.matches(selector)) {\n found = node;\n return;\n }\n found = node.querySelector(selector);\n });\n return found;\n}\nfunction pickPrimaryFieldControl(candidates) {\n if (candidates.length === 0) {\n return null;\n }\n if (candidates.length === 1) {\n return candidates[0];\n }\n const hostControl = candidates.find(candidate => HOST_CONTROL_TAGS.has(candidate.localName));\n const markedControl = candidates.find(candidate => candidate.hasAttribute(RUI_CONTROL_ATTR));\n if (markedControl) {\n return markedControl;\n }\n if (hostControl) {\n return hostControl;\n }\n const active = document.activeElement;\n if (active instanceof HTMLElement) {\n for (const candidate of candidates) {\n if (candidate === active || candidate.contains(active)) {\n return candidate;\n }\n }\n }\n const visible = candidates.filter(el => el.isConnected && el.getClientRects().length > 0 && !el.closest('[hidden],[aria-hidden=\"true\"]'));\n const pool = visible.length > 0 ? visible : candidates.filter(el => el.isConnected);\n return pool[pool.length - 1] ?? candidates[candidates.length - 1];\n}\nfunction listFieldControlsInRenderTree(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (!(renderRoot instanceof HTMLElement)) {\n return [];\n }\n return Array.from(renderRoot.querySelectorAll(CONTROL_SELECTOR)).filter(el => root.contains(el));\n}\nexport function findFieldControl(root) {\n const fromRenderTree = pickPrimaryFieldControl(listFieldControlsInRenderTree(root));\n if (fromRenderTree) {\n return fromRenderTree;\n }\n let found = null;\n forEachFieldContentNode(root, node => {\n if (found) {\n return;\n }\n const match = findControlInSubtree(node);\n if (match) {\n found = match;\n }\n });\n if (found) {\n return found;\n }\n const renderRoot = root.querySelector(\".rui-field\") ?? root;\n return findControlInSubtree(renderRoot);\n}\nfunction findControlInSubtree(node) {\n if (!(node instanceof HTMLElement)) {\n return null;\n }\n if (node.matches(`[${RUI_CONTROL_ATTR}]`) || HOST_CONTROL_TAGS.has(node.localName)) {\n return node;\n }\n return node.querySelector(CONTROL_SELECTOR);\n}\nexport function readControlValue(control) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n return adapter.read(host2);\n }\n if (control.type === \"checkbox\") {\n return control.checked;\n }\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : Number(control.value);\n }\n return control.value;\n }\n if (isNativeTextarea(control)) {\n return control.value;\n }\n const host = resolveControlHost(control);\n return CONTROL_VALUE_ADAPTERS.get(host.localName)?.read(host) ?? host.getAttribute(\"value\") ?? \"\";\n}\nexport function writeControlValue(control, value) {\n if (isNativeInput(control)) {\n const host2 = resolveControlHost(control);\n const adapter = host2 === control ? void 0 : CONTROL_VALUE_ADAPTERS.get(host2.localName);\n if (adapter) {\n adapter.write(host2, value);\n return;\n }\n if (control.type === \"checkbox\") {\n control.checked = Boolean(value);\n const ce = control.closest(\"rui-checkbox, rui-switch\");\n if (ce) {\n if (value) {\n ce.setAttribute(\"checked\", \"\");\n } else {\n ce.removeAttribute(\"checked\");\n }\n }\n return;\n }\n control.value = value == null ? \"\" : String(value);\n return;\n }\n if (isNativeTextarea(control)) {\n control.value = value == null ? \"\" : String(value);\n return;\n }\n const host = resolveControlHost(control);\n CONTROL_VALUE_ADAPTERS.get(host.localName)?.write(host, value);\n}\nfunction resolveControlHost(control) {\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n const host = control.closest(Array.from(HOST_CONTROL_TAGS).join(\",\"));\n return host ?? control;\n }\n return control;\n}\nexport function findFieldLabel(root) {\n return queryFieldContent(root, `[${RUI_FIELD_LABEL_ATTR}], label.rui-label`);\n}\nexport function findFieldDescription(root) {\n return queryFieldContent(root, `[${RUI_FIELD_DESCRIPTION_ATTR}]`);\n}\nexport function findFieldError(root) {\n const all = findFieldErrorElements(root);\n return all[0] ?? null;\n}\nexport function findFieldErrorElements(root) {\n const renderRoot = root.querySelector(\".rui-field\");\n if (renderRoot instanceof HTMLElement) {\n const inRender = Array.from(renderRoot.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n const visible = inRender.filter(el => el.getClientRects().length > 0);\n if (visible.length > 0) {\n return visible;\n }\n if (inRender.length > 0) {\n return inRender;\n }\n }\n const fromDom = Array.from(root.querySelectorAll(`[${RUI_FIELD_ERROR_ATTR}]`));\n if (fromDom.length > 0) {\n return fromDom;\n }\n const single = queryFieldContent(root, `[${RUI_FIELD_ERROR_ATTR}]`);\n return single ? [single] : [];\n}\nexport function wireFieldControlName(controlHost, ariaTarget, name) {\n if (!name) {\n return;\n }\n if (ariaTarget && isNativeTextControl(ariaTarget)) {\n ariaTarget.name = name;\n }\n if (!controlHost) {\n return;\n }\n if (controlHost === ariaTarget) {\n return;\n }\n if (HOST_CONTROL_TAGS.has(controlHost.localName)) {\n controlHost.setAttribute(\"name\", name);\n }\n}\nfunction isChecked(input) {\n const checked = Reflect.get(input, \"checked\");\n return typeof checked === \"boolean\" ? checked : input.hasAttribute(\"checked\");\n}\nexport function getAriaControlTarget(control) {\n if (isNativeTextControl(control)) {\n return control;\n }\n if (control.hasAttribute(RUI_CONTROL_ATTR)) {\n return control;\n }\n const marked = control.querySelector(`[${RUI_CONTROL_ATTR}]`);\n if (marked) {\n return marked;\n }\n if (control.localName === \"rui-combobox\") {\n return control.querySelector(\"[data-combobox-input]\") ?? control;\n }\n if (control.localName === \"rui-date-field\") {\n return control.querySelector(\"[data-date-field-input]\") ?? control;\n }\n if (control.localName === \"rui-date-range-picker\") {\n return control.querySelector(\"[data-range-start]\") ?? control;\n }\n if (control.localName === \"rui-select\") {\n return control.querySelector(\"[data-select-trigger]\") ?? control;\n }\n if (control.localName === \"rui-tag-group\") {\n return control.querySelector(\"[data-tag-list]\") ?? control;\n }\n if (control.localName === \"rui-number-field\") {\n return control.querySelector(\"[data-number-field-input], input\") ?? control;\n }\n if (control.localName === \"rui-slider\") {\n return control.querySelector('input[type=\"range\"]') ?? control;\n }\n if (control.localName === \"rui-checkbox\" || control.localName === \"rui-switch\") {\n return control.querySelector(\"input\") ?? control;\n }\n if (control.localName === \"rui-radio-group\") {\n const radios = control.querySelectorAll('input[type=\"radio\"]');\n for (const radio of radios) {\n if (isChecked(radio)) {\n return radio;\n }\n }\n return radios[0] ?? control;\n }\n return control;\n}", "import { createContext } from \"@ecopages/radiant/context\";\nexport const formContext = createContext(/* @__PURE__ */Symbol.for(\"rui-form-context\"));", "import { createContext } from \"@ecopages/radiant/context\";\nexport const fieldContext = createContext(/* @__PURE__ */Symbol.for(\"rui-field-context\"));", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport { RUI_FIELD_DESCRIPTION_ATTR } from \"../form/control-protocol\";\nexport function RuiFieldDescription({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"p\", {\n ...props,\n ...{\n [RUI_FIELD_DESCRIPTION_ATTR]: \"\"\n },\n class: cx(\"rui-field__description\", className),\n children\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\";\nimport { RUI_FIELD_ERROR_ATTR } from \"../form/control-protocol\";\nexport function RuiFieldError({\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"p\", {\n ...props,\n ...{\n [RUI_FIELD_ERROR_ATTR]: \"\"\n },\n class: cx(\"rui-field__error\", className),\n role: \"alert\",\n hidden: true\n });\n}"],
5
+ "mappings": "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",
6
6
  "names": ["jsx", "jsx", "RadiantElement", "customElement", "onEvent", "onUpdated", "prop", "registerSsrPreparationCallback", "consumeContext", "onContextUpdate", "provideContext", "RUI_CONTROL_ATTR", "RUI_FIELD_MANAGED_ATTR", "RUI_FIELD_LABEL_ATTR", "RUI_FIELD_DESCRIPTION_ATTR", "RUI_FIELD_ERROR_ATTR", "RUI_FIELD_DEFAULT_VALUE_ATTR", "HOST_CONTROL_TAGS", "CONTROL_SELECTOR", "RUI_CONTROL_ATTR", "isNativeTextControl", "node", "isNativeInput", "isNativeTextarea", "stringValueAdapter", "host", "value", "next", "numberValueAdapter", "raw", "booleanValueAdapter", "CONTROL_VALUE_ADAPTERS", "forEachFieldContentNode", "root", "visit", "slotHost", "visited", "safeVisit", "renderRoot", "child", "shadow", "queryFieldContent", "selector", "found", "pickPrimaryFieldControl", "candidates", "hostControl", "candidate", "markedControl", "active", "visible", "el", "pool", "listFieldControlsInRenderTree", "findFieldControl", "fromRenderTree", "match", "findControlInSubtree", "readControlValue", "control", "host2", "resolveControlHost", "adapter", "writeControlValue", "ce", "findFieldLabel", "RUI_FIELD_LABEL_ATTR", "findFieldDescription", "RUI_FIELD_DESCRIPTION_ATTR", "findFieldError", "findFieldErrorElements", "inRender", "RUI_FIELD_ERROR_ATTR", "fromDom", "single", "wireFieldControlName", "controlHost", "ariaTarget", "name", "isChecked", "input", "checked", "getAriaControlTarget", "marked", "radios", "radio", "createContext", "formContext", "createContext", "fieldContext", "_initProto", "_initClass", "_init_name", "_init_extra_name", "_init_rules", "_init_extra_rules", "_init_defaultValue", "_init_extra_defaultValue", "_init_defaultValueData", "_init_extra_defaultValueData", "_init_disabled", "_init_extra_disabled", "_init_error", "_init_extra_error", "_init_invalid", "_init_extra_invalid", "_init_fieldProvider", "_init_extra_fieldProvider", "_init_formContextProvider", "_init_extra_formContextProvider", "_applyDecs", "n", "r", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "o", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "stripValidate", "rules", "_validate", "serializable", "_RuiField", "RuiField", "RadiantElement", "customElement", "prop", "RUI_FIELD_DEFAULT_VALUE_ATTR", "provideContext", "fieldContext", "value", "consumeContext", "formContext", "onContextUpdate", "onUpdated", "onEvent", "registerSsrPreparationCallback", "raw", "formCtx", "fieldName", "ctx", "actions", "ctx2", "control", "findFieldControl", "readControlValue", "writeControlValue", "controlHost", "ariaTarget", "getAriaControlTarget", "controlId", "descriptionId", "errorId", "errorMessage", "invalid", "required", "wireFieldControlName", "RUI_FIELD_MANAGED_ATTR", "describedBy", "description", "findFieldDescription", "errorEl", "findFieldError", "isNativeTextControl", "label", "findFieldLabel", "findFieldErrorElements", "nextFieldContext", "prev", "jsx", "RuiField", "children", "rules", "defaultValue", "defaultValueData", "props", "jsx", "jsx", "cx", "parts", "RuiFieldDescription", "children", "className", "props", "jsx", "RUI_FIELD_DESCRIPTION_ATTR", "cx", "jsx", "RuiFieldError", "className", "props", "jsx", "RUI_FIELD_ERROR_ATTR", "cx"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{jsx as vt}from"@ecopages/jsx/jsx-runtime";import{jsx as $e}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Pe,customElement as ct,event as ze,onEvent as ee,onUpdated as Ge,prop as N}from"@ecopages/radiant";import{provideContext as ht}from"@ecopages/radiant/context";import{createContext as Qe}from"@ecopages/radiant/context";var X=Qe(Symbol.for("rui-form-context"));function T(t,e){if(!(e===void 0||e===!1))return typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:t}function S(t){return typeof t=="object"&&t!==null&&"value"in t?t.value:t}async function We(t,e,i,r){if(!i)return;if(i.required&&(e==null||e===""||Array.isArray(e)&&e.length===0||e===!1))return T("This field is required",i.required)??"This field is required";if(typeof e=="number"||typeof e=="string"&&e!==""&&!Number.isNaN(Number(e))){let n=typeof e=="number"?e:Number(e);if(i.min!==void 0&&n<S(i.min))return T(`Minimum value is ${S(i.min)}`,i.min);if(i.max!==void 0&&n>S(i.max))return T(`Maximum value is ${S(i.max)}`,i.max)}let s=e==null?"":String(e);if(i.minLength!==void 0&&s.length<S(i.minLength))return T(`Minimum length is ${S(i.minLength)}`,i.minLength);if(i.maxLength!==void 0&&s.length>S(i.maxLength))return T(`Maximum length is ${S(i.maxLength)}`,i.maxLength);if(i.pattern!==void 0&&!S(i.pattern).test(s)){let u=i.pattern;return typeof u=="object"&&"message"in u&&typeof u.message=="string"?u.message:"Invalid format"}if(i.validate){if(typeof i.validate=="function"){let n=await i.validate(e,r);return n===!0||n===void 0?void 0:n===!1?"Invalid value":String(n)}for(let n of Object.keys(i.validate)){let u=i.validate[n],o=await u(e,r);if(o!==!0&&o!==void 0)return o===!1?"Invalid value":String(o)}}}async function ve(t,e,i){let r=i??Object.keys(e.fields),s={};for(let n of r){let u=e.fields[n]?.rules,o=await We(n,t[n],u,t);o&&(s[n]={type:"validation",message:o})}return Object.keys(s).length>0?{values:{},errors:s}:{values:t,errors:{}}}function Y(){return(t,e,i)=>ve(t,e,i.names)}function be(t){return typeof t=="function"?t:Y()}var w=class{mode;reValidateMode;resolver;fields=new Map;listeners=new Set;revision=0;defaultValues;values;errors={};touched={};dirty={};isSubmitting=!1;isSubmitted=!1;constructor(e={}){this.mode=e.mode??"onSubmit",this.reValidateMode=e.reValidateMode??"onChange",this.resolver=be(e.resolver),this.defaultValues={...e.defaultValues??{}},this.values={...this.defaultValues,...e.values??{}}}updateOptions(e){e.mode!==void 0&&(this.mode=e.mode),e.reValidateMode!==void 0&&(this.reValidateMode=e.reValidateMode),e.resolver!==void 0&&(this.resolver=be(e.resolver)),e.defaultValues!==void 0&&(this.defaultValues={...e.defaultValues})}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){this.revision+=1;for(let e of this.listeners)e()}getRevision(){return this.revision}getRegisteredFieldNames(){return Array.from(this.fields.keys())}register(e){let i=this.fields.get(e.name),r={...e,rules:e.rules??i?.rules,defaultValue:e.defaultValue??i?.defaultValue,getRules:e.getRules??i?.getRules};return this.fields.set(e.name,r),this.values[e.name]===void 0&&r.defaultValue!==void 0&&(this.values={...this.values,[e.name]:r.defaultValue}),r.setValue(this.values[e.name]),()=>{this.fields.get(e.name)===r&&(this.fields.delete(e.name),this.notify())}}updateFieldOptions(e,i){let r=this.fields.get(e);r&&(i.rules!==void 0&&(r.rules=i.rules),i.defaultValue!==void 0&&(r.defaultValue=i.defaultValue))}getValues(){let e={...this.values};for(let[i,r]of this.fields)e[i]=r.getValue();return e}setValue(e,i,r){this.values={...this.values,[e]:i},this.fields.get(String(e))?.setValue(i),r?.shouldDirty&&(this.dirty={...this.dirty,[e]:!0}),r?.shouldTouch&&(this.touched={...this.touched,[e]:!0}),this.notify()}markTouched(e){this.touched={...this.touched,[e]:!0},this.notify()}markDirty(e){this.dirty={...this.dirty,[e]:!0},this.notify()}clearErrors(e){if(e){let i={...this.errors};delete i[e],this.errors=i,this.notify();return}this.errors={},this.notify()}getFieldError(e){return this.errors[e]?.message}getState(){let e=this.getValues(),i=Object.keys(this.errors).length;return{values:e,errors:this.errors,touched:this.touched,dirty:this.dirty,isSubmitting:this.isSubmitting,isSubmitted:this.isSubmitted,isValid:i===0}}async validateField(e){let i=this.getValues(),s=(await this.resolver(i,{fields:this.buildResolverFields()},{names:[e]})).errors[e]?.message,n={...this.errors};return s?n[e]={type:"validation",message:s}:delete n[e],this.errors=n,this.notify(),!s}async validateAll(){let e=this.getValues(),i=await this.resolver(e,{fields:this.buildResolverFields()},{});return this.errors=i.errors,this.notify(),Object.keys(this.errors).length===0}shouldValidate(e,i){switch(this.isSubmitted?this.reValidateMode:this.mode){case"all":return!0;case"onChange":return i==="change";case"onBlur":return i==="blur";case"onTouched":return i==="blur"&&!!this.touched[e];case"onSubmit":return!1;default:return!1}}async handleFieldChange(e){let i=this.fields.get(e);if(!i)return;let r=i.getValue();this.values={...this.values,[e]:r},this.dirty={...this.dirty,[e]:!0},this.shouldValidate(e,"change")?await this.validateField(e):this.notify()}async handleFieldBlur(e){this.markTouched(e),this.shouldValidate(e,"blur")?await this.validateField(e):this.notify()}shouldDisplayFieldError(e){if(!this.errors[e]?.message)return!1;if(this.isSubmitted)return!0;switch(this.mode){case"all":return!!(this.dirty[e]||this.touched[e]);case"onChange":return!!this.dirty[e];case"onBlur":case"onTouched":return!!this.touched[e];default:return!1}}async handleSubmit(e,i){this.isSubmitting=!0,this.isSubmitted=!0;for(let s of this.fields.keys())this.touched={...this.touched,[s]:!0};this.notify();let r=await this.validateAll();if(this.isSubmitting=!1,this.notify(),r){await e(this.getValues());return}i?.(this.errors)}reset(e){let i=e??{...this.defaultValues,...this.collectFieldDefaults()};this.values={...i},this.errors={},this.touched={},this.dirty={},this.isSubmitted=!1,this.isSubmitting=!1;for(let r of this.fields.values())r.setValue(this.values[r.name]);this.notify()}collectFieldDefaults(){let e={};for(let[i,r]of this.fields)r.defaultValue!==void 0&&(e[i]=r.defaultValue);return e}buildResolverFields(){let e={};for(let[i,r]of this.fields){let s=r.getRules?.()??r.rules;e[i]={rules:s}}return e}};var k="data-rui-control",Xe="data-rui-field-managed",Ye="data-rui-field-label",Ze="data-rui-field-description",et="data-rui-field-error";var Z="data-default-values",B=new Set(["rui-combobox","rui-date-field","rui-date-range-picker","rui-select","rui-tag-group","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-number-field","rui-listbox"]),Se=`[${k}], ${Array.from(B).join(", ")}`;function tt(t){return t.localName==="input"||t.localName==="textarea"}function Re(t){return t.localName==="input"}function xe(t){return t.localName==="textarea"}var V={read:t=>{let e=Reflect.get(t,"value");return typeof e=="string"?e:t.getAttribute("value")??""},write:(t,e)=>{let i=e==null?"":String(e);t.setAttribute("value",i),"value"in t&&Reflect.set(t,"value",i)}},pe={read:t=>{let e=Reflect.get(t,"value");if(typeof e=="number")return e;let i=t.getAttribute("value");return i==null||i===""?"":Number(i)},write:(t,e)=>{let i=e==null?"":String(e);t.setAttribute("value",i),"value"in t&&Reflect.set(t,"value",e)}},ye={read:t=>t.querySelector('input[type="checkbox"]')?.checked??t.hasAttribute("checked"),write:(t,e)=>{e?t.setAttribute("checked",""):t.removeAttribute("checked")}},j=new Map([["rui-checkbox",ye],["rui-switch",ye],["rui-combobox",V],["rui-date-field",V],["rui-date-range-picker",V],["rui-select",V],["rui-radio-group",V],["rui-listbox",V],["rui-tag-group",V],["rui-slider",pe],["rui-number-field",pe]]);function it(t,e){let i=t,r=new Set,s=o=>{r.has(o)||(r.add(o),e(o))};if(typeof i.getSlotElements=="function")for(let o of i.getSlotElements())s(o);let n=t.querySelector(".rui-field")??t;for(let o of Array.from(n.children))s(o);for(let o of n.querySelectorAll("*"))s(o);for(let o of Array.from(t.children))s(o);let u=t.shadowRoot;if(u)for(let o of Array.from(u.children))s(o)}function rt(t){if(t.length===0)return null;if(t.length===1)return t[0];let e=t.find(u=>B.has(u.localName)),i=t.find(u=>u.hasAttribute(k));if(i)return i;if(e)return e;let r=document.activeElement;if(r instanceof HTMLElement){for(let u of t)if(u===r||u.contains(r))return u}let s=t.filter(u=>u.isConnected&&u.getClientRects().length>0&&!u.closest('[hidden],[aria-hidden="true"]')),n=s.length>0?s:t.filter(u=>u.isConnected);return n[n.length-1]??t[t.length-1]}function st(t){let e=t.querySelector(".rui-field");return e instanceof HTMLElement?Array.from(e.querySelectorAll(Se)).filter(i=>t.contains(i)):[]}function nt(t){let e=rt(st(t));if(e)return e;let i=null;if(it(t,s=>{if(i)return;let n=ge(s);n&&(i=n)}),i)return i;let r=t.querySelector(".rui-field")??t;return ge(r)}function ge(t){return t instanceof HTMLElement?t.matches(`[${k}]`)||B.has(t.localName)?t:t.querySelector(Se):null}function ot(t){if(Re(t)){let i=U(t),r=i===t?void 0:j.get(i.localName);return r?r.read(i):t.type==="checkbox"?t.checked:t.type==="number"||t.type==="range"?t.value===""?"":Number(t.value):t.value}if(xe(t))return t.value;let e=U(t);return j.get(e.localName)?.read(e)??e.getAttribute("value")??""}function ut(t,e){if(Re(t)){let r=U(t),s=r===t?void 0:j.get(r.localName);if(s){s.write(r,e);return}if(t.type==="checkbox"){t.checked=!!e;let n=t.closest("rui-checkbox, rui-switch");n&&(e?n.setAttribute("checked",""):n.removeAttribute("checked"));return}t.value=e==null?"":String(e);return}if(xe(t)){t.value=e==null?"":String(e);return}let i=U(t);j.get(i.localName)?.write(i,e)}function U(t){return t.hasAttribute(k)?t.closest(Array.from(B).join(","))??t:t}var _e,Ve,Ae,Fe,Ee,Ce,Te,we,ke,Ne,Le,De,Oe,Ie,Me,qe,je,Ue;function at(t,e,i,r,s,n){var u,o,$,P,L,z,F,te=Symbol.metadata||Symbol.for("Symbol.metadata"),ie=Object.defineProperty,G=Object.create,re=[G(null),G(null)],se=e.length;function D(a,b,m){return function(l,d){b&&(d=l,l=t);for(var p=0;p<a.length;p++)d=a[p].apply(l,m?[d]:[]);return m?d:l}}function R(a,b,m,l){if(typeof a!="function"&&(l||a!==void 0))throw new TypeError(b+" must "+(m||"be")+" a function"+(l?"":" or undefined"));return a}function ne(a,b,m,l,d,p,_,v,y,g,ue){function H(c){if(!ue(c))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(b[0]),ae=b[3],K=!_,E=d===1,le=d===3,de=d===4,O=d===2;function I(c,A,he){return function(q,me){return A&&(me=q,q=a),he&&he(q),f[c].call(q,me)}}if(!K){var f={},Q=[],x=le?"get":de||E?"set":"value";if(y?(g||E?f={get:Be(function(){return ae(this)},l,"get"),set:function(c){b[4](this,c)}}:f[x]=ae,g||Be(f[x],l,O?"":x)):g||(f=Object.getOwnPropertyDescriptor(a,l)),!g&&!y){if((o=re[+v][l])&&(o^d)!==7)throw Error("Decorating two elements with the same name ("+f[x].name+") is not supported yet");re[+v][l]=d<3?1:d}}for(var h=a,M=J.length-1;M>=0;M-=m?2:1){var fe=R(J[M],"A decorator","be",!0),ce=m?J[M-1]:void 0,W={},C={kind:["field","accessor","method","getter","setter","class"][d],name:l,metadata:u,addInitializer:function(c,A){if(c.v)throw new TypeError("attempted to call addInitializer after decoration was finished");R(A,"An initializer","be",!0),p.push(A)}.bind(null,W)};if(K)o=fe.call(ce,h,C),W.v=1,R(o,"class decorators","return")&&(h=o);else if(C.static=v,C.private=y,o=C.access={has:y?ue.bind():function(c){return l in c}},de||(o.get=y?O?function(c){return H(c),f.value}:I("get",0,H):function(c){return c[l]}),O||le||(o.set=y?I("set",0,H):function(c,A){c[l]=A}),h=fe.call(ce,E?{get:f.get,set:f.set}:f[x],C),W.v=1,E){if(typeof h=="object"&&h)(o=R(h.get,"accessor.get"))&&(f.get=o),(o=R(h.set,"accessor.set"))&&(f.set=o),(o=R(h.init,"accessor.init"))&&Q.unshift(o);else if(h!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else R(h,(g?"field":"method")+" decorators","return")&&(g?Q.unshift(h):f[x]=h)}return d<2&&_.push(D(Q,v,1),D(p,v,0)),g||K||(y?E?_.splice(-1,0,I("get",v),I("set",v)):_.push(O?f[x]:R.call.bind(f[x])):ie(a,l,f)),h}function oe(a){return ie(a,te,{configurable:!0,enumerable:!0,value:u})}return n!==void 0&&(u=n[te]),u=G(u??null),L=[],z=function(a){a&&L.push(D(a))},F=function(a,b){for(var m=0;m<i.length;m++){var l=i[m],d=l[1],p=7&d;if((8&d)==a&&!p==b){var _=l[2],v=!!l[3],y=16&d;ne(a?t:t.prototype,l,y,v?"#"+_:lt(_),p,p<2?[]:a?P=P||[]:$=$||[],L,!!a,v,b,a&&v?function(g){return ft(g)===t}:s)}}},F(8,0),F(0,0),F(8,1),F(0,1),z($),z(P),o=L,se||oe(t),{e:o,get c(){var a=[];return se&&[oe(t=ne(t,[e],r,t.name,5,a)),D(a,1)]}}}function lt(t){var e=dt(t,"string");return typeof e=="symbol"?e:e+""}function dt(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var r=i.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Be(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function ft(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var He=()=>{},mt={register:()=>He,updateFieldOptions:()=>{},handleFieldChange:()=>{},handleFieldBlur:()=>{},subscribePresentation:()=>He},Ke,Je=class extends Pe{static{({e:[Ae,Fe,Ee,Ce,Te,we,ke,Ne,Le,De,Oe,Ie,Me,qe,je,Ue,_e],c:[Ke,Ve]}=at(this,[ct("rui-form")],[[ht({context:X,initialValue:{ready:!1,revision:0,fields:{},actions:mt}}),0,"formProvider"],[ze({name:"rui-submit",bubbles:!0,composed:!0}),0,"submitEvent"],[ze({name:"rui-invalid",bubbles:!0,composed:!0}),0,"invalidEvent"],[N({type:Object,defaultValue:{}}),0,"defaultValues"],[N({type:String,attribute:Z}),0,"defaultValuesData"],[N({type:Object}),0,"resolver"],[N({type:String,reflect:!0,defaultValue:"onSubmit"}),0,"mode"],[N({type:String,reflect:!0,attribute:"revalidate-mode",defaultValue:"onChange"}),0,"reValidateMode"],[Ge(["defaultValues","defaultValuesData","mode","reValidateMode"]),2,"syncOptions"],[Ge(["resolver"]),2,"syncResolver"],[ee({selector:"button[type=submit]",type:"click"}),2,"onSubmitButtonClick"],[ee({ref:"form",type:"submit"}),2,"onNativeSubmit"],[ee({ref:"form",type:"reset"}),2,"onNativeReset"]],0,void 0,Pe))}formProvider=(_e(this),Ae(this));submitEvent=(Fe(this),Ee(this));invalidEvent=(Ce(this),Te(this));defaultValues=(we(this),ke(this));defaultValuesData=(Ne(this),Le(this));resolver=(De(this),Oe(this));mode=(Ie(this),Me(this));reValidateMode=(qe(this),je(this));store=void Ue(this);unsubscribeStore;nativeFormId=`rui-form-native-${Math.random().toString(36).slice(2,9)}`;lastPublishedRevision=-1;lastPublishedContext;presentationListeners=new Set;formActions={register:e=>{let r=this.ensureStore().register(e);return this.publishFormContext({force:!0}),()=>{r(),this.publishFormContext({force:!0})}},updateFieldOptions:(e,i)=>{this.ensureStore().updateFieldOptions(e,i)},handleFieldChange:e=>{this.ensureStore().handleFieldChange(e).then(()=>this.publishFormContext({force:!0}))},handleFieldBlur:e=>{this.ensureStore().handleFieldBlur(e).then(()=>this.publishFormContext({force:!0}))},subscribePresentation:e=>(this.presentationListeners.add(e),this.lastPublishedContext&&e(this.lastPublishedContext),()=>this.presentationListeners.delete(e))};connectedCallback(){super.connectedCallback(),this.ensureStore(),this.publishFormContext({force:!0}),queueMicrotask(()=>this.wireOrphanSubmitButtons())}queryNativeForm(){return this.getRef("form")??this.querySelector("form.rui-form")}wireOrphanSubmitButtons(){let e=this.queryNativeForm();if(e){e.id||(e.id=this.nativeFormId);for(let i of this.querySelectorAll("button[type=submit]"))e.contains(i)||i.setAttribute("form",e.id)}}runFormSubmit(){this.ensureStore().handleSubmit(i=>{this.submitEvent.emit({values:i})},i=>{this.invalidEvent.emit({errors:i})})}disconnectedCallback(){this.unsubscribeStore?.(),this.unsubscribeStore=void 0,super.disconnectedCallback()}resolveMode(){let e=this.getAttribute("mode");return e||(this.mode??"onSubmit")}resolveReValidateMode(){let e=this.getAttribute("revalidate-mode");return e||(this.reValidateMode??"onChange")}resolveDefaultValues(){if(this.defaultValues&&Object.keys(this.defaultValues).length>0)return this.defaultValues;let e=this.defaultValuesData??this.getAttribute(Z);if(!e)return this.defaultValues??{};try{let i=JSON.parse(e);return i&&typeof i=="object"&&!Array.isArray(i)?i:{}}catch{return this.defaultValues??{}}}ensureStore(){return this.store?this.store:(this.store=new w({defaultValues:this.resolveDefaultValues(),resolver:typeof this.resolver=="function"?this.resolver:void 0,mode:this.resolveMode(),reValidateMode:this.resolveReValidateMode()}),this.unsubscribeStore=this.store.subscribe(()=>this.publishFormContext()),this.store)}buildFieldPresentations(e){let i={};for(let r of e.getRegisteredFieldNames()){let s=e.getFieldError(r),n=e.shouldDisplayFieldError(r);i[r]={error:n?s:void 0,invalid:!!(n&&s)}}return i}publishFormContext(e){let i=this.store;if(!i)return;let r=i.getRevision();if(!e?.force&&r===this.lastPublishedRevision)return;this.lastPublishedRevision=r;let s={ready:!0,revision:r,fields:this.buildFieldPresentations(i),actions:this.formActions};this.lastPublishedContext=s,this.formProvider.setContext(s);for(let n of this.presentationListeners)n(s)}syncOptions(){this.ensureStore().updateOptions({defaultValues:this.resolveDefaultValues(),mode:this.resolveMode(),reValidateMode:this.resolveReValidateMode()})}syncResolver(){typeof this.resolver=="function"&&this.ensureStore().updateOptions({resolver:this.resolver})}onSubmitButtonClick(e){e.preventDefault(),this.runFormSubmit()}onNativeSubmit(e){e.preventDefault(),this.runFormSubmit()}onNativeReset(){this.store?.reset()}render(){return $e("form",{class:"rui-form","data-ref":"form",noValidate:!0,children:$e("slot",{})})}static{Ve()}};function bt({children:t,defaultValues:e,defaultValuesData:i,resolver:r,reValidateMode:s,...n}){return vt("rui-form",{...n,reValidateMode:s,"attr:revalidate-mode":s,"prop:defaultValues":e,"prop:resolver":r,"attr:data-default-values":i??(e!==void 0?JSON.stringify(e):void 0),children:t})}export{w as FormStore,k as RUI_CONTROL_ATTR,Ze as RUI_FIELD_DESCRIPTION_ATTR,et as RUI_FIELD_ERROR_ATTR,Ye as RUI_FIELD_LABEL_ATTR,Xe as RUI_FIELD_MANAGED_ATTR,bt as RuiForm,Ke as RuiFormElement,Y as createRulesResolver,nt as findFieldControl,X as formContext,tt as isNativeTextControl,ot as readControlValue,ve as runRulesResolver,ut as writeControlValue};
1
+ import{jsx as vt}from"@ecopages/jsx/jsx-runtime";import{jsx as $e}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Pe,customElement as ct,event as ze,onEvent as ee,onUpdated as Ge,prop as N}from"@ecopages/radiant";import{provideContext as ht}from"@ecopages/radiant/context";import{createContext as Qe}from"@ecopages/radiant/context";var X=Qe(Symbol.for("rui-form-context"));function T(t,e){if(!(e===void 0||e===!1))return typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:t}function S(t){return typeof t=="object"&&t!==null&&"value"in t?t.value:t}async function We(t,e,i,r){if(!i)return;if(i.required&&(e==null||e===""||Array.isArray(e)&&e.length===0||e===!1))return T("This field is required",i.required)??"This field is required";if(typeof e=="number"||typeof e=="string"&&e!==""&&!Number.isNaN(Number(e))){let n=typeof e=="number"?e:Number(e);if(i.min!==void 0&&n<S(i.min))return T(`Minimum value is ${S(i.min)}`,i.min);if(i.max!==void 0&&n>S(i.max))return T(`Maximum value is ${S(i.max)}`,i.max)}let s=e==null?"":String(e);if(i.minLength!==void 0&&s.length<S(i.minLength))return T(`Minimum length is ${S(i.minLength)}`,i.minLength);if(i.maxLength!==void 0&&s.length>S(i.maxLength))return T(`Maximum length is ${S(i.maxLength)}`,i.maxLength);if(i.pattern!==void 0&&!S(i.pattern).test(s)){let u=i.pattern;return typeof u=="object"&&"message"in u&&typeof u.message=="string"?u.message:"Invalid format"}if(i.validate){if(typeof i.validate=="function"){let n=await i.validate(e,r);return n===!0||n===void 0?void 0:n===!1?"Invalid value":String(n)}for(let n of Object.keys(i.validate)){let u=i.validate[n],o=await u(e,r);if(o!==!0&&o!==void 0)return o===!1?"Invalid value":String(o)}}}async function ve(t,e,i){let r=i??Object.keys(e.fields),s={};for(let n of r){let u=e.fields[n]?.rules,o=await We(n,t[n],u,t);o&&(s[n]={type:"validation",message:o})}return Object.keys(s).length>0?{values:{},errors:s}:{values:t,errors:{}}}function Y(){return(t,e,i)=>ve(t,e,i.names)}function be(t){return typeof t=="function"?t:Y()}var w=class{mode;reValidateMode;resolver;fields=new Map;listeners=new Set;revision=0;defaultValues;values;errors={};touched={};dirty={};isSubmitting=!1;isSubmitted=!1;constructor(e={}){this.mode=e.mode??"onSubmit",this.reValidateMode=e.reValidateMode??"onChange",this.resolver=be(e.resolver),this.defaultValues={...e.defaultValues??{}},this.values={...this.defaultValues,...e.values??{}}}updateOptions(e){e.mode!==void 0&&(this.mode=e.mode),e.reValidateMode!==void 0&&(this.reValidateMode=e.reValidateMode),e.resolver!==void 0&&(this.resolver=be(e.resolver)),e.defaultValues!==void 0&&(this.defaultValues={...e.defaultValues})}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){this.revision+=1;for(let e of this.listeners)e()}getRevision(){return this.revision}getRegisteredFieldNames(){return Array.from(this.fields.keys())}register(e){let i=this.fields.get(e.name),r={...e,rules:e.rules??i?.rules,defaultValue:e.defaultValue??i?.defaultValue,getRules:e.getRules??i?.getRules};return this.fields.set(e.name,r),this.values[e.name]===void 0&&r.defaultValue!==void 0&&(this.values={...this.values,[e.name]:r.defaultValue}),r.setValue(this.values[e.name]),()=>{this.fields.get(e.name)===r&&(this.fields.delete(e.name),this.notify())}}updateFieldOptions(e,i){let r=this.fields.get(e);r&&(i.rules!==void 0&&(r.rules=i.rules),i.defaultValue!==void 0&&(r.defaultValue=i.defaultValue))}getValues(){let e={...this.values};for(let[i,r]of this.fields)e[i]=r.getValue();return e}setValue(e,i,r){this.values={...this.values,[e]:i},this.fields.get(String(e))?.setValue(i),r?.shouldDirty&&(this.dirty={...this.dirty,[e]:!0}),r?.shouldTouch&&(this.touched={...this.touched,[e]:!0}),this.notify()}markTouched(e){this.touched={...this.touched,[e]:!0},this.notify()}markDirty(e){this.dirty={...this.dirty,[e]:!0},this.notify()}clearErrors(e){if(e){let i={...this.errors};delete i[e],this.errors=i,this.notify();return}this.errors={},this.notify()}getFieldError(e){return this.errors[e]?.message}getState(){let e=this.getValues(),i=Object.keys(this.errors).length;return{values:e,errors:this.errors,touched:this.touched,dirty:this.dirty,isSubmitting:this.isSubmitting,isSubmitted:this.isSubmitted,isValid:i===0}}async validateField(e){let i=this.getValues(),s=(await this.resolver(i,{fields:this.buildResolverFields()},{names:[e]})).errors[e]?.message,n={...this.errors};return s?n[e]={type:"validation",message:s}:delete n[e],this.errors=n,this.notify(),!s}async validateAll(){let e=this.getValues(),i=await this.resolver(e,{fields:this.buildResolverFields()},{});return this.errors=i.errors,this.notify(),Object.keys(this.errors).length===0}shouldValidate(e,i){switch(this.isSubmitted?this.reValidateMode:this.mode){case"all":return!0;case"onChange":return i==="change";case"onBlur":return i==="blur";case"onTouched":return i==="blur"&&!!this.touched[e];case"onSubmit":return!1;default:return!1}}async handleFieldChange(e){let i=this.fields.get(e);if(!i)return;let r=i.getValue();this.values={...this.values,[e]:r},this.dirty={...this.dirty,[e]:!0},this.shouldValidate(e,"change")?await this.validateField(e):this.notify()}async handleFieldBlur(e){this.markTouched(e),this.shouldValidate(e,"blur")?await this.validateField(e):this.notify()}shouldDisplayFieldError(e){if(!this.errors[e]?.message)return!1;if(this.isSubmitted)return!0;switch(this.mode){case"all":return!!(this.dirty[e]||this.touched[e]);case"onChange":return!!this.dirty[e];case"onBlur":case"onTouched":return!!this.touched[e];default:return!1}}async handleSubmit(e,i){this.isSubmitting=!0,this.isSubmitted=!0;for(let s of this.fields.keys())this.touched={...this.touched,[s]:!0};this.notify();let r=await this.validateAll();if(this.isSubmitting=!1,this.notify(),r){await e(this.getValues());return}i?.(this.errors)}reset(e){let i=e??{...this.defaultValues,...this.collectFieldDefaults()};this.values={...i},this.errors={},this.touched={},this.dirty={},this.isSubmitted=!1,this.isSubmitting=!1;for(let r of this.fields.values())r.setValue(this.values[r.name]);this.notify()}collectFieldDefaults(){let e={};for(let[i,r]of this.fields)r.defaultValue!==void 0&&(e[i]=r.defaultValue);return e}buildResolverFields(){let e={};for(let[i,r]of this.fields){let s=r.getRules?.()??r.rules;e[i]={rules:s}}return e}};var k="data-rui-control",Xe="data-rui-field-managed",Ye="data-rui-field-label",Ze="data-rui-field-description",et="data-rui-field-error";var Z="data-default-values",B=new Set(["rui-combobox","rui-date-field","rui-date-range-picker","rui-select","rui-tag-group","rui-checkbox","rui-switch","rui-radio-group","rui-slider","rui-number-field","rui-listbox"]),Se=`[${k}], ${Array.from(B).join(", ")}`;function tt(t){return t.localName==="input"||t.localName==="textarea"}function Re(t){return t.localName==="input"}function xe(t){return t.localName==="textarea"}var V={read:t=>{let e=Reflect.get(t,"value");return typeof e=="string"?e:t.getAttribute("value")??""},write:(t,e)=>{let i=e==null?"":String(e);t.setAttribute("value",i),"value"in t&&Reflect.set(t,"value",i)}},pe={read:t=>{let e=Reflect.get(t,"value");if(typeof e=="number")return e;let i=t.getAttribute("value");return i==null||i===""?"":Number(i)},write:(t,e)=>{let i=e==null?"":String(e);t.setAttribute("value",i),"value"in t&&Reflect.set(t,"value",e)}},ye={read:t=>t.querySelector('input[type="checkbox"]')?.checked??t.hasAttribute("checked"),write:(t,e)=>{e?t.setAttribute("checked",""):t.removeAttribute("checked")}},j=new Map([["rui-checkbox",ye],["rui-switch",ye],["rui-combobox",V],["rui-date-field",V],["rui-date-range-picker",V],["rui-select",V],["rui-radio-group",V],["rui-listbox",V],["rui-tag-group",V],["rui-slider",pe],["rui-number-field",pe]]);function it(t,e){let i=t,r=new Set,s=o=>{r.has(o)||(r.add(o),e(o))};if(typeof i.getSlotElements=="function")for(let o of i.getSlotElements())s(o);let n=t.querySelector(".rui-field")??t;for(let o of Array.from(n.children))s(o);for(let o of n.querySelectorAll("*"))s(o);for(let o of Array.from(t.children))s(o);let u=t.shadowRoot;if(u)for(let o of Array.from(u.children))s(o)}function rt(t){if(t.length===0)return null;if(t.length===1)return t[0];let e=t.find(u=>B.has(u.localName)),i=t.find(u=>u.hasAttribute(k));if(i)return i;if(e)return e;let r=document.activeElement;if(r instanceof HTMLElement){for(let u of t)if(u===r||u.contains(r))return u}let s=t.filter(u=>u.isConnected&&u.getClientRects().length>0&&!u.closest('[hidden],[aria-hidden="true"]')),n=s.length>0?s:t.filter(u=>u.isConnected);return n[n.length-1]??t[t.length-1]}function st(t){let e=t.querySelector(".rui-field");return e instanceof HTMLElement?Array.from(e.querySelectorAll(Se)).filter(i=>t.contains(i)):[]}function nt(t){let e=rt(st(t));if(e)return e;let i=null;if(it(t,s=>{if(i)return;let n=ge(s);n&&(i=n)}),i)return i;let r=t.querySelector(".rui-field")??t;return ge(r)}function ge(t){return t instanceof HTMLElement?t.matches(`[${k}]`)||B.has(t.localName)?t:t.querySelector(Se):null}function ot(t){if(Re(t)){let i=U(t),r=i===t?void 0:j.get(i.localName);return r?r.read(i):t.type==="checkbox"?t.checked:t.type==="number"||t.type==="range"?t.value===""?"":Number(t.value):t.value}if(xe(t))return t.value;let e=U(t);return j.get(e.localName)?.read(e)??e.getAttribute("value")??""}function ut(t,e){if(Re(t)){let r=U(t),s=r===t?void 0:j.get(r.localName);if(s){s.write(r,e);return}if(t.type==="checkbox"){t.checked=!!e;let n=t.closest("rui-checkbox, rui-switch");n&&(e?n.setAttribute("checked",""):n.removeAttribute("checked"));return}t.value=e==null?"":String(e);return}if(xe(t)){t.value=e==null?"":String(e);return}let i=U(t);j.get(i.localName)?.write(i,e)}function U(t){return t.hasAttribute(k)?t.closest(Array.from(B).join(","))??t:t}var _e,Ve,Ae,Fe,Ee,Ce,Te,we,ke,Ne,Le,De,Oe,Ie,Me,qe,je,Ue;function at(t,e,i,r,s,n){var u,o,$,P,L,z,F,te=Symbol.metadata||Symbol.for("Symbol.metadata"),ie=Object.defineProperty,G=Object.create,re=[G(null),G(null)],se=e.length;function D(a,b,m){return function(l,d){b&&(d=l,l=t);for(var p=0;p<a.length;p++)d=a[p].apply(l,m?[d]:[]);return m?d:l}}function R(a,b,m,l){if(typeof a!="function"&&(l||a!==void 0))throw new TypeError(b+" must "+(m||"be")+" a function"+(l?"":" or undefined"));return a}function ne(a,b,m,l,d,p,_,v,y,g,ue){function H(c){if(!ue(c))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(b[0]),ae=b[3],K=!_,E=d===1,le=d===3,de=d===4,O=d===2;function I(c,A,he){return function(q,me){return A&&(me=q,q=a),he&&he(q),f[c].call(q,me)}}if(!K){var f={},Q=[],x=le?"get":de||E?"set":"value";if(y?(g||E?f={get:Be(function(){return ae(this)},l,"get"),set:function(c){b[4](this,c)}}:f[x]=ae,g||Be(f[x],l,O?"":x)):g||(f=Object.getOwnPropertyDescriptor(a,l)),!g&&!y){if((o=re[+v][l])&&(o^d)!==7)throw Error("Decorating two elements with the same name ("+f[x].name+") is not supported yet");re[+v][l]=d<3?1:d}}for(var h=a,M=J.length-1;M>=0;M-=m?2:1){var fe=R(J[M],"A decorator","be",!0),ce=m?J[M-1]:void 0,W={},C={kind:["field","accessor","method","getter","setter","class"][d],name:l,metadata:u,addInitializer:function(c,A){if(c.v)throw new TypeError("attempted to call addInitializer after decoration was finished");R(A,"An initializer","be",!0),p.push(A)}.bind(null,W)};if(K)o=fe.call(ce,h,C),W.v=1,R(o,"class decorators","return")&&(h=o);else if(C.static=v,C.private=y,o=C.access={has:y?ue.bind():function(c){return l in c}},de||(o.get=y?O?function(c){return H(c),f.value}:I("get",0,H):function(c){return c[l]}),O||le||(o.set=y?I("set",0,H):function(c,A){c[l]=A}),h=fe.call(ce,E?{get:f.get,set:f.set}:f[x],C),W.v=1,E){if(typeof h=="object"&&h)(o=R(h.get,"accessor.get"))&&(f.get=o),(o=R(h.set,"accessor.set"))&&(f.set=o),(o=R(h.init,"accessor.init"))&&Q.unshift(o);else if(h!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else R(h,(g?"field":"method")+" decorators","return")&&(g?Q.unshift(h):f[x]=h)}return d<2&&_.push(D(Q,v,1),D(p,v,0)),g||K||(y?E?_.splice(-1,0,I("get",v),I("set",v)):_.push(O?f[x]:R.call.bind(f[x])):ie(a,l,f)),h}function oe(a){return ie(a,te,{configurable:!0,enumerable:!0,value:u})}return n!==void 0&&(u=n[te]),u=G(u??null),L=[],z=function(a){a&&L.push(D(a))},F=function(a,b){for(var m=0;m<i.length;m++){var l=i[m],d=l[1],p=7&d;if((8&d)==a&&!p==b){var _=l[2],v=!!l[3],y=16&d;ne(a?t:t.prototype,l,y,v?"#"+_:lt(_),p,p<2?[]:a?P=P||[]:$=$||[],L,!!a,v,b,a&&v?function(g){return ft(g)===t}:s)}}},F(8,0),F(0,0),F(8,1),F(0,1),z($),z(P),o=L,se||oe(t),{e:o,get c(){var a=[];return se&&[oe(t=ne(t,[e],r,t.name,5,a)),D(a,1)]}}}function lt(t){var e=dt(t,"string");return typeof e=="symbol"?e:e+""}function dt(t,e){if(typeof t!="object"||!t)return t;var i=t[Symbol.toPrimitive];if(i!==void 0){var r=i.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Be(t,e,i){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:i?i+" "+e:e})}catch{}return t}function ft(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var He=()=>{},mt={register:()=>He,updateFieldOptions:()=>{},handleFieldChange:()=>{},handleFieldBlur:()=>{},subscribePresentation:()=>He},Ke,Je=class extends Pe{static{({e:[Ae,Fe,Ee,Ce,Te,we,ke,Ne,Le,De,Oe,Ie,Me,qe,je,Ue,_e],c:[Ke,Ve]}=at(this,[ct("rui-form")],[[ht({context:X,initialValue:{ready:!1,revision:0,fields:{},actions:mt}}),0,"formProvider"],[ze({name:"rui-submit",bubbles:!0,composed:!0}),0,"submitEvent"],[ze({name:"rui-invalid",bubbles:!0,composed:!0}),0,"invalidEvent"],[N({type:Object,defaultValue:{}}),0,"defaultValues"],[N({type:String,attribute:Z}),0,"defaultValuesData"],[N({type:Object}),0,"resolver"],[N({type:String,reflect:!0,defaultValue:"onSubmit"}),0,"mode"],[N({type:String,reflect:!0,attribute:"revalidate-mode",defaultValue:"onChange"}),0,"reValidateMode"],[Ge(["defaultValues","defaultValuesData","mode","reValidateMode"]),2,"syncOptions"],[Ge(["resolver"]),2,"syncResolver"],[ee({selector:"button[type=submit]",type:"click"}),2,"onSubmitButtonClick"],[ee({ref:"form",type:"submit"}),2,"onNativeSubmit"],[ee({ref:"form",type:"reset"}),2,"onNativeReset"]],0,void 0,Pe))}formProvider=(_e(this),Ae(this));submitEvent=(Fe(this),Ee(this));invalidEvent=(Ce(this),Te(this));defaultValues=(we(this),ke(this));defaultValuesData=(Ne(this),Le(this));resolver=(De(this),Oe(this));mode=(Ie(this),Me(this));reValidateMode=(qe(this),je(this));store=void Ue(this);unsubscribeStore;nativeFormId=`rui-form-native-${Math.random().toString(36).slice(2,9)}`;lastPublishedRevision=-1;lastPublishedContext;presentationListeners=new Set;formActions={register:e=>{let r=this.ensureStore().register(e);return this.publishFormContext({force:!0}),()=>{r(),this.publishFormContext({force:!0})}},updateFieldOptions:(e,i)=>{this.ensureStore().updateFieldOptions(e,i)},handleFieldChange:e=>{this.ensureStore().handleFieldChange(e).then(()=>this.publishFormContext({force:!0}))},handleFieldBlur:e=>{this.ensureStore().handleFieldBlur(e).then(()=>this.publishFormContext({force:!0}))},subscribePresentation:e=>(this.presentationListeners.add(e),this.lastPublishedContext&&e(this.lastPublishedContext),()=>this.presentationListeners.delete(e))};connectedCallback(){super.connectedCallback(),this.ensureStore(),this.publishFormContext({force:!0}),queueMicrotask(()=>this.wireOrphanSubmitButtons())}queryNativeForm(){return this.getRef("form")??this.querySelector("form.rui-form")}wireOrphanSubmitButtons(){let e=this.queryNativeForm();if(e){e.id||(e.id=this.nativeFormId);for(let i of this.querySelectorAll("button[type=submit]"))e.contains(i)||i.setAttribute("form",e.id)}}runFormSubmit(){this.ensureStore().handleSubmit(i=>{this.submitEvent.emit({values:i})},i=>{this.invalidEvent.emit({errors:i})})}disconnectedCallback(){this.unsubscribeStore?.(),this.unsubscribeStore=void 0,super.disconnectedCallback()}resolveMode(){let e=this.getAttribute("mode");return e||(this.mode??"onSubmit")}resolveReValidateMode(){let e=this.getAttribute("revalidate-mode");return e||(this.reValidateMode??"onChange")}resolveDefaultValues(){if(this.defaultValues&&Object.keys(this.defaultValues).length>0)return this.defaultValues;let e=this.defaultValuesData??this.getAttribute(Z);if(!e)return this.defaultValues??{};try{let i=JSON.parse(e);return i&&typeof i=="object"&&!Array.isArray(i)?i:{}}catch{return this.defaultValues??{}}}ensureStore(){return this.store?this.store:(this.store=new w({defaultValues:this.resolveDefaultValues(),resolver:typeof this.resolver=="function"?this.resolver:void 0,mode:this.resolveMode(),reValidateMode:this.resolveReValidateMode()}),this.unsubscribeStore=this.store.subscribe(()=>this.publishFormContext()),this.store)}buildFieldPresentations(e){let i={};for(let r of e.getRegisteredFieldNames()){let s=e.getFieldError(r),n=e.shouldDisplayFieldError(r);i[r]={error:n?s:void 0,invalid:!!(n&&s)}}return i}publishFormContext(e){let i=this.store;if(!i)return;let r=i.getRevision();if(!e?.force&&r===this.lastPublishedRevision)return;this.lastPublishedRevision=r;let s={ready:!0,revision:r,fields:this.buildFieldPresentations(i),actions:this.formActions};this.lastPublishedContext=s,this.formProvider.setContext(s);for(let n of this.presentationListeners)n(s)}syncOptions(){this.ensureStore().updateOptions({defaultValues:this.resolveDefaultValues(),mode:this.resolveMode(),reValidateMode:this.resolveReValidateMode()})}syncResolver(){typeof this.resolver=="function"&&this.ensureStore().updateOptions({resolver:this.resolver})}onSubmitButtonClick(e){e.preventDefault(),this.runFormSubmit()}onNativeSubmit(e){e.preventDefault(),this.runFormSubmit()}onNativeReset(){this.store?.reset()}render(){return $e("form",{class:"rui-form","data-ref":"form",noValidate:!0,children:$e("slot",{})})}static{Ve()}};function bt({children:t,defaultValues:e,defaultValuesData:i,resolver:r,reValidateMode:s,...n}){return vt("rui-form",{...n,reValidateMode:s,"attr:revalidate-mode":s,"prop:defaultValues":e,"prop:resolver":r,data:{defaultValues:i??(e!==void 0?JSON.stringify(e):void 0)},children:t})}export{w as FormStore,k as RUI_CONTROL_ATTR,Ze as RUI_FIELD_DESCRIPTION_ATTR,et as RUI_FIELD_ERROR_ATTR,Ye as RUI_FIELD_LABEL_ATTR,Xe as RUI_FIELD_MANAGED_ATTR,bt as RuiForm,Ke as RuiFormElement,Y as createRulesResolver,nt as findFieldControl,X as formContext,tt as isNativeTextControl,ot as readControlValue,ve as runRulesResolver,ut as writeControlValue};
2
2
  //# sourceMappingURL=index.js.map