@a.nemreen/dga-ui 0.3.10 → 0.3.12

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.
@@ -242,7 +242,7 @@ import{DOCUMENT as ot,NgTemplateOutlet as Qa,APP_BASE_HREF as bt,PlatformLocatio
242
242
  </span>
243
243
  }
244
244
  <ng-content select="[dgaEnd]" />
245
- `,host:{"[class]":"classes()","[attr.data-size]":"size()","[attr.data-status]":'status() === "default" ? null : status()',"[attr.data-state]":"stateAttr()","[attr.data-has-start]":"hasStart() || null","[attr.data-has-end]":"hasEnd() || null","(focusin)":"onFocusIn()","(focusout)":"onFocusOut($event)","(input)":"onInput()"},changeDetection:m.OnPush,styles:["dga-form-control.dga-form-control{--_dga-form-accent: var(--dga-form-field-accent, var(--dga-border-primary));--_dga-form-glow: var(--dga-form-field-focus-glow)}dga-form-control.dga-form-control[data-status=error]{--_dga-form-accent: var(--dga-border-error);--_dga-form-glow: color-mix(in srgb, var(--dga-color-red-500) 22%, transparent)}dga-form-control.dga-form-control[data-status=success]{--_dga-form-accent: var(--dga-border-success);--_dga-form-glow: color-mix(in srgb, var(--dga-color-green-500) 22%, transparent)}dga-form-control.dga-form-control[data-status=warning]{--_dga-form-accent: var(--dga-border-warning);--_dga-form-glow: color-mix(in srgb, var(--dga-color-yellow-500) 28%, transparent)}dga-form-control.dga-form-control[data-status=info]{--_dga-form-accent: var(--dga-border-info);--_dga-form-glow: color-mix(in srgb, var(--dga-color-blue-500) 22%, transparent)}dga-form-control.dga-form-control:before{content:\"\";position:absolute;inset-inline:0;bottom:0;height:2px;border-radius:0 0 3px 3px;background-color:var(--_dga-form-accent);transform:scaleX(0);transform-origin:center;opacity:0;transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .22s ease,height .18s ease;z-index:2;pointer-events:none}dga-form-control.dga-form-control[data-state~=focus]:not([data-state~=disabled]){border-color:var(--_dga-form-accent);box-shadow:0 0 0 3px var(--_dga-form-glow)}dga-form-control.dga-form-control[data-state~=focus]:not([data-state~=disabled]):before{transform:scaleX(1);opacity:1;height:2.5px}dga-form-control.dga-form-control[data-state~=active]:not([data-state~=focus]):not([data-state~=disabled]):before{transform:scaleX(1);opacity:.7;height:2px}dga-form-control.dga-form-control .dga-form-control__icon,dga-form-control.dga-form-control .dga-form-control__addon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;align-self:center;color:var(--dga-text-muted, #6b7280);line-height:0}dga-form-control.dga-form-control .dga-form-control__icon{pointer-events:none;inline-size:1.75rem;block-size:1.75rem}dga-form-control.dga-form-control .dga-form-control__icon dga-icon,dga-form-control.dga-form-control .dga-form-control__addon dga-icon,dga-form-control.dga-form-control button.dga-form-control__addon dga-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}dga-form-control.dga-form-control .dga-form-control__addon button,dga-form-control.dga-form-control button.dga-form-control__addon,dga-form-control.dga-form-control>button{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;align-self:center;margin:0;padding:0;inline-size:1.75rem;block-size:1.75rem;min-width:1.75rem;min-height:1.75rem;border:0;border-radius:var(--dga-radius-sm, 4px);background:transparent;color:var(--dga-text-muted, #6b7280);cursor:pointer;transition:color .16s ease,background-color .16s ease}dga-form-control.dga-form-control .dga-form-control__addon button:hover,dga-form-control.dga-form-control button.dga-form-control__addon:hover:not(:disabled),dga-form-control.dga-form-control>button:hover:not(:disabled){color:var(--dga-text-fg, #111827);background:color-mix(in srgb,var(--dga-color-primary-500, #10b981) 10%,transparent)}dga-form-control.dga-form-control[data-state~=focus] .dga-form-control__icon,dga-form-control.dga-form-control[data-state~=focus] .dga-form-control__addon{color:var(--_dga-form-accent)}dga-form-control.dga-form-control>input,dga-form-control.dga-form-control>select,dga-form-control.dga-form-control>textarea{border:0!important;background:transparent!important;box-shadow:none!important;outline:none!important;border-radius:0!important;min-height:0!important;height:auto;flex:1 1 auto;width:100%;min-width:0;align-self:center;line-height:1.5;padding-block:0!important;padding-inline:0!important}dga-form-control.dga-form-control>input:focus-visible,dga-form-control.dga-form-control>select:focus-visible,dga-form-control.dga-form-control>textarea:focus-visible{outline:none!important;box-shadow:none!important}\n"]}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],status:[{type:a.Input,args:[{isSignal:!0,alias:"status",required:!1}]}],disabled:[{type:a.Input,args:[{isSignal:!0,alias:"disabled",required:!1}]}],filled:[{type:a.Input,args:[{isSignal:!0,alias:"filled",required:!1}]}],startIcon:[{type:a.Input,args:[{isSignal:!0,alias:"startIcon",required:!1}]}],endIcon:[{type:a.Input,args:[{isSignal:!0,alias:"endIcon",required:!1}]}]}});function P(d){return{provide:ii,useExisting:le(()=>d),multi:!0}}class Ue{required=i(!1,{...ngDevMode?{debugName:"required"}:{},alias:"dgaRequired",transform:u});classes=n(()=>c("mb-xs inline-block text-body-sm font-medium text-display",this.required()&&"after:ms-xxs after:text-fg-error after:content-['*']"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:Ue,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:Ue,isStandalone:!0,selector:"label[dgaLabel]",inputs:{required:{classPropertyName:"required",publicName:"dgaRequired",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()"}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:Ue,decorators:[{type:V,args:[{selector:"label[dgaLabel]",standalone:!0,host:{"[class]":"classes()"}}]}],propDecorators:{required:[{type:a.Input,args:[{isSignal:!0,alias:"dgaRequired",required:!1}]}]}});const Ai="dga-choice shrink-0 cursor-pointer appearance-none border border-border bg-surface checked:border-primary checked:bg-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus disabled:cursor-not-allowed disabled:opacity-50",Ri={sm:"size-lg rounded-xs",md:"size-xl rounded-sm",lg:"size-2xl rounded-sm"};class J{size=i("md",...ngDevMode?[{debugName:"size"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});classes=n(()=>c(Ai,Ri[this.size()],this.invalid()&&"outline outline-2 outline-offset-2 outline-border-error"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:J,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:J,isStandalone:!0,selector:'input[type="checkbox"][dgaCheckbox]',inputs:{size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()","attr.aria-invalid":"invalid() || null","attr.data-size":"size()"}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:J,decorators:[{type:V,args:[{selector:'input[type="checkbox"][dgaCheckbox]',standalone:!0,host:{"[class]":"classes()","[attr.aria-invalid]":"invalid() || null","[attr.data-size]":"size()"}}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],invalid:[{type:a.Input,args:[{isSignal:!0,alias:"dgaInvalid",required:!1}]}]}});const Oi="dga-choice shrink-0 cursor-pointer appearance-none rounded-full border border-border bg-surface checked:border-primary checked:bg-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus disabled:cursor-not-allowed disabled:opacity-50",Ti={sm:"size-lg",md:"size-xl",lg:"size-2xl"};class me{size=i("md",...ngDevMode?[{debugName:"size"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});classes=n(()=>c(Oi,Ti[this.size()],this.invalid()&&"outline outline-2 outline-offset-2 outline-border-error"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:me,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:me,isStandalone:!0,selector:'input[type="radio"][dgaRadio]',inputs:{size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()","attr.aria-invalid":"invalid() || null","attr.data-size":"size()"}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:me,decorators:[{type:V,args:[{selector:'input[type="radio"][dgaRadio]',standalone:!0,host:{"[class]":"classes()","[attr.aria-invalid]":"invalid() || null","[attr.data-size]":"size()"}}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],invalid:[{type:a.Input,args:[{isSignal:!0,alias:"dgaInvalid",required:!1}]}]}});class fe{size=i("md",...ngDevMode?[{debugName:"size"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});status=i("default",...ngDevMode?[{debugName:"status"}]:[]);resolvedStatus=n(()=>this.status()!=="default"?this.status():oe(this.invalid()),...ngDevMode?[{debugName:"resolvedStatus"}]:[]);classes=n(()=>c(rt(this.size(),this.resolvedStatus()),"cursor-pointer"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:fe,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:fe,isStandalone:!0,selector:"select[dgaSelect]",inputs:{size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null},status:{classPropertyName:"status",publicName:"status",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()","attr.aria-invalid":'invalid() || status() === "error" || null',"attr.data-size":"size()","attr.data-status":'resolvedStatus() === "default" ? null : resolvedStatus()'}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:fe,decorators:[{type:V,args:[{selector:"select[dgaSelect]",standalone:!0,host:{"[class]":"classes()","[attr.aria-invalid]":'invalid() || status() === "error" || null',"[attr.data-size]":"size()","[attr.data-status]":'resolvedStatus() === "default" ? null : resolvedStatus()'}}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],invalid:[{type:a.Input,args:[{isSignal:!0,alias:"dgaInvalid",required:!1}]}],status:[{type:a.Input,args:[{isSignal:!0,alias:"status",required:!1}]}]}});class R{static nextId=0;host=h(z);listId=`dga-select-${++R.nextId}`;options=i([],...ngDevMode?[{debugName:"options"}]:[]);valueInput=i("",{...ngDevMode?{debugName:"valueInput"}:{},alias:"value"});value=De(this.valueInput,...ngDevMode?[{debugName:"value"}]:[]);multiple=i(!1,{...ngDevMode?{debugName:"multiple"}:{},transform:u});searchable=i(!1,{...ngDevMode?{debugName:"searchable"}:{},transform:u});openMode=i("dropdown",...ngDevMode?[{debugName:"openMode"}]:[]);clearable=i(!1,{...ngDevMode?{debugName:"clearable"}:{},transform:u});size=i("md",...ngDevMode?[{debugName:"size"}]:[]);status=i("default",...ngDevMode?[{debugName:"status"}]:[]);placeholder=i("اختر…",...ngDevMode?[{debugName:"placeholder"}]:[]);label=i("",...ngDevMode?[{debugName:"label"}]:[]);removeLabel=i("إزالة",...ngDevMode?[{debugName:"removeLabel"}]:[]);clearLabel=i("مسح",...ngDevMode?[{debugName:"clearLabel"}]:[]);emptyLabel=i("لا توجد نتائج",...ngDevMode?[{debugName:"emptyLabel"}]:[]);disabledInput=i(!1,{...ngDevMode?{debugName:"disabledInput"}:{},alias:"disabled",transform:u});cvaDisabled=b(!1,...ngDevMode?[{debugName:"cvaDisabled"}]:[]);disabled=n(()=>this.disabledInput()||this.cvaDisabled(),...ngDevMode?[{debugName:"disabled"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});valueChange=v();searchChange=v();onChange=()=>{};onTouched=()=>{};open=b(!1,...ngDevMode?[{debugName:"open"}]:[]);query=b("",...ngDevMode?[{debugName:"query"}]:[]);activeIndex=b(0,...ngDevMode?[{debugName:"activeIndex"}]:[]);constructor(){S(()=>{if(!this.searchable()||this.multiple())return;const e=this.value();if(typeof e!="string"||!e)return;const t=this.options().find(s=>s.value===e);t&&!this.open()&&this.query.set(t.label)})}resolvedStatus=n(()=>this.status()!=="default"?this.status():oe(this.invalid()),...ngDevMode?[{debugName:"resolvedStatus"}]:[]);listVisible=n(()=>this.openMode()==="always"||this.open(),...ngDevMode?[{debugName:"listVisible"}]:[]);selectedOpts=n(()=>{const e=this.selectedValues(),t=new Set(e);return this.options().filter(s=>t.has(s.value))},...ngDevMode?[{debugName:"selectedOpts"}]:[]);filtered=n(()=>{const e=this.options();if(!this.searchable())return e;const t=this.query().trim().toLowerCase();if(!t)return e;const s=this.selectedOpts()[0];return s&&t===s.label.toLowerCase()?e:e.filter(r=>r.label.toLowerCase().includes(t)||r.value.toLowerCase().includes(t)||(r.keywords?.toLowerCase().includes(t)??!1))},...ngDevMode?[{debugName:"filtered"}]:[]);activeOptionId=n(()=>!this.listVisible()||!this.filtered().length?null:this.optionId(this.activeIndex()),...ngDevMode?[{debugName:"activeOptionId"}]:[]);buttonClasses=n(()=>c(rt(this.size(),this.resolvedStatus()),Ve(this.resolvedStatus()),"cursor-pointer"),...ngDevMode?[{debugName:"buttonClasses"}]:[]);triggerWrapClasses=n(()=>c("dga-form-field flex w-full flex-wrap items-center gap-sm",rt(this.size(),this.resolvedStatus()),Ve(this.resolvedStatus()),"focus-within:border-border-primary",this.disabled()&&"pointer-events-none opacity-70"),...ngDevMode?[{debugName:"triggerWrapClasses"}]:[]);searchInputClasses=n(()=>c("min-w-0 flex-1 border-0 bg-transparent p-0 text-inherit outline-none","placeholder:text-muted focus:outline-none focus-visible:outline-none","disabled:cursor-not-allowed"),...ngDevMode?[{debugName:"searchInputClasses"}]:[]);listClasses=n(()=>c("z-dropdown max-h-8xl w-full overflow-auto rounded-md border border-border bg-elevated py-xs shadow-md",this.openMode()==="always"?"relative mt-sm":"absolute mt-xs"),...ngDevMode?[{debugName:"listClasses"}]:[]);displayPlaceholder(){return this.multiple()&&this.selectedOpts().length?"":!this.multiple()&&this.hasValue()&&!this.query()?this.selectedOpts()[0]?.label??this.placeholder():this.placeholder()}hasValue(){return this.selectedValues().length>0}optionId(e){return`${this.listId}-opt-${e}`}isSelected(e){return this.selectedValues().includes(e)}selectedValues(){const e=this.value();return this.multiple()?Array.isArray(e)?e:e?[e]:[]:Array.isArray(e)?e.length?[e[0]]:[]:e?[e]:[]}toggleOpen(){this.disabled()||this.openMode()==="always"||(this.open.update(e=>!e),this.open()&&this.activeIndex.set(0))}onFocus(){this.disabled()||(this.openMode()==="dropdown"&&this.open.set(!0),this.activeIndex.set(0),this.searchable()&&!this.multiple()&&queueMicrotask(()=>{this.host.nativeElement.querySelector('input[role="combobox"]')?.select()}))}onType(e){this.query.set(e),this.searchChange.emit(e),this.openMode()==="dropdown"&&this.open.set(!0),this.activeIndex.set(0),!this.multiple()&&!e&&this.clearable()&&this.commit("")}onKey(e){const t=this.filtered();if(e.key==="ArrowDown")e.preventDefault(),this.openMode()==="dropdown"&&this.open.set(!0),this.moveActive(1);else if(e.key==="ArrowUp")e.preventDefault(),this.openMode()==="dropdown"&&this.open.set(!0),this.moveActive(-1);else if(e.key==="Home")e.preventDefault(),this.activeIndex.set(this.firstEnabledIndex(t));else if(e.key==="End")e.preventDefault(),this.activeIndex.set(this.lastEnabledIndex(t));else if(e.key==="Enter"&&this.listVisible()){const s=t[this.activeIndex()];s&&!s.disabled&&(e.preventDefault(),this.pick(s))}else if(e.key==="Escape"&&this.openMode()==="dropdown")this.open.set(!1);else if(e.key==="Backspace"&&this.multiple()&&this.searchable()&&!this.query()){const s=this.selectedValues();s.length&&this.toggle(s[s.length-1])}}onBlur(){this.onTouched(),this.openMode()!=="always"&&queueMicrotask(()=>{if(this.open.set(!1),this.searchable()&&!this.multiple()){const e=this.selectedOpts()[0];this.query.set(e?.label??"")}})}onOptionMouseDown(e,t){e.preventDefault(),!t.disabled&&this.pick(t)}pick(e){if(!(this.disabled()||e.disabled)){if(this.multiple()){this.toggle(e.value),this.searchable()&&this.query.set("");return}this.commit(e.value),this.query.set(e.label),this.openMode()==="dropdown"&&this.open.set(!1)}}toggle(e){if(this.disabled())return;const t=new Set(this.selectedValues());t.has(e)?t.delete(e):t.add(e);const s=this.options().map(r=>r.value).filter(r=>t.has(r));this.commit(s)}clear(){this.disabled()||(this.commit(this.multiple()?[]:""),this.query.set(""),this.openMode()==="dropdown"&&this.searchable()&&this.open.set(!0))}onDocClick(e){if(this.openMode()==="always")return;const t=e.target;t&&!this.host.nativeElement.contains(t)&&this.open.set(!1)}commit(e){this.value.set(e),this.valueChange.emit(e),this.onChange(e)}writeValue(e){this.value.set(e??(this.multiple()?[]:""))}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.cvaDisabled.set(e)}moveActive(e){const t=this.filtered(),s=t.length;if(!s){this.activeIndex.set(0);return}let r=this.activeIndex();for(let l=0;l<s;l++)if(r=(r+e+s)%s,!t[r]?.disabled){this.activeIndex.set(r);return}}firstEnabledIndex(e){const t=e.findIndex(s=>!s.disabled);return t<0?0:t}lastEnabledIndex(e){for(let t=e.length-1;t>=0;t--)if(!e[t]?.disabled)return t;return Math.max(e.length-1,0)}static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:R,deps:[],target:a.ɵɵFactoryTarget.Component});static ɵcmp=a.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.5",type:R,isStandalone:!0,selector:"dga-select",inputs:{options:{classPropertyName:"options",publicName:"options",isSignal:!0,isRequired:!1,transformFunction:null},valueInput:{classPropertyName:"valueInput",publicName:"value",isSignal:!0,isRequired:!1,transformFunction:null},multiple:{classPropertyName:"multiple",publicName:"multiple",isSignal:!0,isRequired:!1,transformFunction:null},searchable:{classPropertyName:"searchable",publicName:"searchable",isSignal:!0,isRequired:!1,transformFunction:null},openMode:{classPropertyName:"openMode",publicName:"openMode",isSignal:!0,isRequired:!1,transformFunction:null},clearable:{classPropertyName:"clearable",publicName:"clearable",isSignal:!0,isRequired:!1,transformFunction:null},size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},status:{classPropertyName:"status",publicName:"status",isSignal:!0,isRequired:!1,transformFunction:null},placeholder:{classPropertyName:"placeholder",publicName:"placeholder",isSignal:!0,isRequired:!1,transformFunction:null},label:{classPropertyName:"label",publicName:"label",isSignal:!0,isRequired:!1,transformFunction:null},removeLabel:{classPropertyName:"removeLabel",publicName:"removeLabel",isSignal:!0,isRequired:!1,transformFunction:null},clearLabel:{classPropertyName:"clearLabel",publicName:"clearLabel",isSignal:!0,isRequired:!1,transformFunction:null},emptyLabel:{classPropertyName:"emptyLabel",publicName:"emptyLabel",isSignal:!0,isRequired:!1,transformFunction:null},disabledInput:{classPropertyName:"disabledInput",publicName:"disabled",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{valueChange:"valueChange",searchChange:"searchChange"},host:{listeners:{"document:click":"onDocClick($event)"},classAttribute:"block w-full"},providers:[P(R)],ngImport:a,template:`
245
+ `,host:{"[class]":"classes()","[attr.data-size]":"size()","[attr.data-status]":'status() === "default" ? null : status()',"[attr.data-state]":"stateAttr()","[attr.data-has-start]":"hasStart() || null","[attr.data-has-end]":"hasEnd() || null","(focusin)":"onFocusIn()","(focusout)":"onFocusOut($event)","(input)":"onInput()"},changeDetection:m.OnPush,styles:["dga-form-control.dga-form-control{--_dga-form-accent: var(--dga-form-field-accent, var(--dga-border-primary));--_dga-form-glow: var(--dga-form-field-focus-glow)}dga-form-control.dga-form-control[data-status=error]{--_dga-form-accent: var(--dga-border-error);--_dga-form-glow: color-mix(in srgb, var(--dga-color-red-500) 22%, transparent)}dga-form-control.dga-form-control[data-status=success]{--_dga-form-accent: var(--dga-border-success);--_dga-form-glow: color-mix(in srgb, var(--dga-color-green-500) 22%, transparent)}dga-form-control.dga-form-control[data-status=warning]{--_dga-form-accent: var(--dga-border-warning);--_dga-form-glow: color-mix(in srgb, var(--dga-color-yellow-500) 28%, transparent)}dga-form-control.dga-form-control[data-status=info]{--_dga-form-accent: var(--dga-border-info);--_dga-form-glow: color-mix(in srgb, var(--dga-color-blue-500) 22%, transparent)}dga-form-control.dga-form-control:before{content:\"\";position:absolute;inset-inline:0;bottom:0;height:2px;border-radius:0 0 3px 3px;background-color:var(--_dga-form-accent);transform:scaleX(0);transform-origin:center;opacity:0;transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .22s ease,height .18s ease;z-index:2;pointer-events:none}dga-form-control.dga-form-control[data-state~=focus]:not([data-state~=disabled]){border-color:var(--_dga-form-accent);box-shadow:0 0 0 3px var(--_dga-form-glow)}dga-form-control.dga-form-control[data-state~=focus]:not([data-state~=disabled]):before{transform:scaleX(1);opacity:1;height:2.5px}dga-form-control.dga-form-control[data-state~=active]:not([data-state~=focus]):not([data-state~=disabled]):before{transform:scaleX(1);opacity:.7;height:2px}dga-form-control.dga-form-control .dga-form-control__icon,dga-form-control.dga-form-control .dga-form-control__addon{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;align-self:center;color:var(--dga-text-muted, #6b7280);line-height:0}dga-form-control.dga-form-control .dga-form-control__icon{pointer-events:none;inline-size:1.75rem;block-size:1.75rem}dga-form-control.dga-form-control .dga-form-control__icon dga-icon,dga-form-control.dga-form-control .dga-form-control__addon dga-icon,dga-form-control.dga-form-control button.dga-form-control__addon dga-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}dga-form-control.dga-form-control .dga-form-control__addon button,dga-form-control.dga-form-control button.dga-form-control__addon,dga-form-control.dga-form-control>button{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;align-self:center;margin:0;padding:0;inline-size:1.75rem;block-size:1.75rem;min-width:1.75rem;min-height:1.75rem;border:0;border-radius:var(--dga-radius-sm, 4px);background:transparent;color:var(--dga-text-muted, #6b7280);cursor:pointer;transition:color .16s ease,background-color .16s ease}dga-form-control.dga-form-control .dga-form-control__addon button:hover,dga-form-control.dga-form-control button.dga-form-control__addon:hover:not(:disabled),dga-form-control.dga-form-control>button:hover:not(:disabled){color:var(--dga-text-fg, #111827);background:color-mix(in srgb,var(--dga-color-primary-500, #10b981) 10%,transparent)}dga-form-control.dga-form-control[data-state~=focus] .dga-form-control__icon,dga-form-control.dga-form-control[data-state~=focus] .dga-form-control__addon{color:var(--_dga-form-accent)}dga-form-control.dga-form-control>input,dga-form-control.dga-form-control>select,dga-form-control.dga-form-control>textarea{border:0!important;background:transparent!important;box-shadow:none!important;outline:none!important;border-radius:0!important;min-height:0!important;height:auto;flex:1 1 auto;width:100%;min-width:0;align-self:center;line-height:1.5;padding-block:0!important;padding-inline:0!important}dga-form-control.dga-form-control>input:focus-visible,dga-form-control.dga-form-control>select:focus-visible,dga-form-control.dga-form-control>textarea:focus-visible{outline:none!important;box-shadow:none!important}\n"]}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],status:[{type:a.Input,args:[{isSignal:!0,alias:"status",required:!1}]}],disabled:[{type:a.Input,args:[{isSignal:!0,alias:"disabled",required:!1}]}],filled:[{type:a.Input,args:[{isSignal:!0,alias:"filled",required:!1}]}],startIcon:[{type:a.Input,args:[{isSignal:!0,alias:"startIcon",required:!1}]}],endIcon:[{type:a.Input,args:[{isSignal:!0,alias:"endIcon",required:!1}]}]}});function P(d){return{provide:ii,useExisting:le(()=>d),multi:!0}}class Ue{required=i(!1,{...ngDevMode?{debugName:"required"}:{},alias:"dgaRequired",transform:u});classes=n(()=>c("mb-xs inline-block text-body-sm font-medium text-display",this.required()&&"after:ms-xxs after:text-fg-error after:content-['*']"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:Ue,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:Ue,isStandalone:!0,selector:"label[dgaLabel]",inputs:{required:{classPropertyName:"required",publicName:"dgaRequired",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()"}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:Ue,decorators:[{type:V,args:[{selector:"label[dgaLabel]",standalone:!0,host:{"[class]":"classes()"}}]}],propDecorators:{required:[{type:a.Input,args:[{isSignal:!0,alias:"dgaRequired",required:!1}]}]}});const Ai="dga-choice shrink-0 cursor-pointer appearance-none border border-border bg-surface checked:border-primary checked:bg-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus disabled:cursor-not-allowed disabled:opacity-50",Ri={sm:"size-lg rounded-xs",md:"size-xl rounded-sm",lg:"size-2xl rounded-sm"};class J{size=i("md",...ngDevMode?[{debugName:"size"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});classes=n(()=>c(Ai,Ri[this.size()],this.invalid()&&"outline outline-2 outline-offset-2 outline-border-error"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:J,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:J,isStandalone:!0,selector:'input[type="checkbox"][dgaCheckbox]',inputs:{size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()","attr.aria-invalid":"invalid() || null","attr.data-size":"size()"}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:J,decorators:[{type:V,args:[{selector:'input[type="checkbox"][dgaCheckbox]',standalone:!0,host:{"[class]":"classes()","[attr.aria-invalid]":"invalid() || null","[attr.data-size]":"size()"}}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],invalid:[{type:a.Input,args:[{isSignal:!0,alias:"dgaInvalid",required:!1}]}]}});const Oi="dga-choice shrink-0 cursor-pointer appearance-none rounded-full border border-border bg-surface checked:border-primary checked:bg-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus disabled:cursor-not-allowed disabled:opacity-50",Ti={sm:"size-lg",md:"size-xl",lg:"size-2xl"};class me{size=i("md",...ngDevMode?[{debugName:"size"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});classes=n(()=>c(Oi,Ti[this.size()],this.invalid()&&"outline outline-2 outline-offset-2 outline-border-error"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:me,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:me,isStandalone:!0,selector:'input[type="radio"][dgaRadio]',inputs:{size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()","attr.aria-invalid":"invalid() || null","attr.data-size":"size()"}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:me,decorators:[{type:V,args:[{selector:'input[type="radio"][dgaRadio]',standalone:!0,host:{"[class]":"classes()","[attr.aria-invalid]":"invalid() || null","[attr.data-size]":"size()"}}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],invalid:[{type:a.Input,args:[{isSignal:!0,alias:"dgaInvalid",required:!1}]}]}});class fe{size=i("md",...ngDevMode?[{debugName:"size"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});status=i("default",...ngDevMode?[{debugName:"status"}]:[]);resolvedStatus=n(()=>this.status()!=="default"?this.status():oe(this.invalid()),...ngDevMode?[{debugName:"resolvedStatus"}]:[]);classes=n(()=>c(rt(this.size(),this.resolvedStatus()),"cursor-pointer"),...ngDevMode?[{debugName:"classes"}]:[]);static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:fe,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:fe,isStandalone:!0,selector:"select[dgaSelect]",inputs:{size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null},status:{classPropertyName:"status",publicName:"status",isSignal:!0,isRequired:!1,transformFunction:null}},host:{properties:{class:"classes()","attr.aria-invalid":'invalid() || status() === "error" || null',"attr.data-size":"size()","attr.data-status":'resolvedStatus() === "default" ? null : resolvedStatus()'}},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:fe,decorators:[{type:V,args:[{selector:"select[dgaSelect]",standalone:!0,host:{"[class]":"classes()","[attr.aria-invalid]":'invalid() || status() === "error" || null',"[attr.data-size]":"size()","[attr.data-status]":'resolvedStatus() === "default" ? null : resolvedStatus()'}}]}],propDecorators:{size:[{type:a.Input,args:[{isSignal:!0,alias:"size",required:!1}]}],invalid:[{type:a.Input,args:[{isSignal:!0,alias:"dgaInvalid",required:!1}]}],status:[{type:a.Input,args:[{isSignal:!0,alias:"status",required:!1}]}]}});class R{static nextId=0;host=h(z);listId=`dga-select-${++R.nextId}`;options=i([],...ngDevMode?[{debugName:"options"}]:[]);valueInput=i("",{...ngDevMode?{debugName:"valueInput"}:{},alias:"value"});value=De(this.valueInput,...ngDevMode?[{debugName:"value"}]:[]);multiple=i(!1,{...ngDevMode?{debugName:"multiple"}:{},transform:u});searchable=i(!1,{...ngDevMode?{debugName:"searchable"}:{},transform:u});openMode=i("dropdown",...ngDevMode?[{debugName:"openMode"}]:[]);clearable=i(!1,{...ngDevMode?{debugName:"clearable"}:{},transform:u});size=i("md",...ngDevMode?[{debugName:"size"}]:[]);status=i("default",...ngDevMode?[{debugName:"status"}]:[]);placeholder=i("اختر…",...ngDevMode?[{debugName:"placeholder"}]:[]);label=i("",...ngDevMode?[{debugName:"label"}]:[]);removeLabel=i("إزالة",...ngDevMode?[{debugName:"removeLabel"}]:[]);clearLabel=i("مسح",...ngDevMode?[{debugName:"clearLabel"}]:[]);emptyLabel=i("لا توجد نتائج",...ngDevMode?[{debugName:"emptyLabel"}]:[]);disabledInput=i(!1,{...ngDevMode?{debugName:"disabledInput"}:{},alias:"disabled",transform:u});cvaDisabled=b(!1,...ngDevMode?[{debugName:"cvaDisabled"}]:[]);disabled=n(()=>this.disabledInput()||this.cvaDisabled(),...ngDevMode?[{debugName:"disabled"}]:[]);invalid=i(!1,{...ngDevMode?{debugName:"invalid"}:{},alias:"dgaInvalid",transform:u});valueChange=v();searchChange=v();onChange=()=>{};onTouched=()=>{};open=b(!1,...ngDevMode?[{debugName:"open"}]:[]);query=b("",...ngDevMode?[{debugName:"query"}]:[]);activeIndex=b(0,...ngDevMode?[{debugName:"activeIndex"}]:[]);constructor(){S(()=>{if(!this.searchable()||this.multiple())return;const e=this.value();if(typeof e!="string"||!e)return;const t=this.options().find(s=>s.value===e);t&&!this.open()&&this.query.set(t.label)})}resolvedStatus=n(()=>this.status()!=="default"?this.status():oe(this.invalid()),...ngDevMode?[{debugName:"resolvedStatus"}]:[]);listVisible=n(()=>this.openMode()==="always"||this.open(),...ngDevMode?[{debugName:"listVisible"}]:[]);selectedOpts=n(()=>{const e=this.selectedValues(),t=new Set(e);return this.options().filter(s=>t.has(s.value))},...ngDevMode?[{debugName:"selectedOpts"}]:[]);filtered=n(()=>{const e=this.options();if(!this.searchable())return e;const t=this.query().trim().toLowerCase();if(!t)return e;const s=this.selectedOpts()[0];return s&&t===s.label.toLowerCase()?e:e.filter(r=>r.label.toLowerCase().includes(t)||r.value.toLowerCase().includes(t)||(r.keywords?.toLowerCase().includes(t)??!1))},...ngDevMode?[{debugName:"filtered"}]:[]);activeOptionId=n(()=>!this.listVisible()||!this.filtered().length?null:this.optionId(this.activeIndex()),...ngDevMode?[{debugName:"activeOptionId"}]:[]);buttonClasses=n(()=>c(rt(this.size(),this.resolvedStatus()),Ve(this.resolvedStatus()),"cursor-pointer"),...ngDevMode?[{debugName:"buttonClasses"}]:[]);triggerWrapClasses=n(()=>c("dga-form-field flex w-full flex-wrap items-center gap-sm",rt(this.size(),this.resolvedStatus()),Ve(this.resolvedStatus()),"focus-within:border-border-primary",this.disabled()&&"pointer-events-none opacity-70"),...ngDevMode?[{debugName:"triggerWrapClasses"}]:[]);searchInputClasses=n(()=>c("min-w-0 flex-1 border-0 bg-transparent p-0 text-inherit outline-none","placeholder:text-muted focus:outline-none focus-visible:outline-none","disabled:cursor-not-allowed"),...ngDevMode?[{debugName:"searchInputClasses"}]:[]);listClasses=n(()=>c("z-dropdown max-h-[min(20rem,70vh)] w-full overflow-auto rounded-md border border-border bg-elevated py-xs shadow-md",this.openMode()==="always"?"relative mt-sm":"absolute mt-xs"),...ngDevMode?[{debugName:"listClasses"}]:[]);displayPlaceholder(){return this.multiple()&&this.selectedOpts().length?"":!this.multiple()&&this.hasValue()&&!this.query()?this.selectedOpts()[0]?.label??this.placeholder():this.placeholder()}hasValue(){return this.selectedValues().length>0}optionId(e){return`${this.listId}-opt-${e}`}isSelected(e){return this.selectedValues().includes(e)}selectedValues(){const e=this.value();return this.multiple()?Array.isArray(e)?e:e?[e]:[]:Array.isArray(e)?e.length?[e[0]]:[]:e?[e]:[]}toggleOpen(){this.disabled()||this.openMode()==="always"||(this.open.update(e=>!e),this.open()&&this.activeIndex.set(0))}onFocus(){this.disabled()||(this.openMode()==="dropdown"&&this.open.set(!0),this.activeIndex.set(0),this.searchable()&&!this.multiple()&&queueMicrotask(()=>{this.host.nativeElement.querySelector('input[role="combobox"]')?.select()}))}onType(e){this.query.set(e),this.searchChange.emit(e),this.openMode()==="dropdown"&&this.open.set(!0),this.activeIndex.set(0),!this.multiple()&&!e&&this.clearable()&&this.commit("")}onKey(e){const t=this.filtered();if(e.key==="ArrowDown")e.preventDefault(),this.openMode()==="dropdown"&&this.open.set(!0),this.moveActive(1);else if(e.key==="ArrowUp")e.preventDefault(),this.openMode()==="dropdown"&&this.open.set(!0),this.moveActive(-1);else if(e.key==="Home")e.preventDefault(),this.activeIndex.set(this.firstEnabledIndex(t));else if(e.key==="End")e.preventDefault(),this.activeIndex.set(this.lastEnabledIndex(t));else if(e.key==="Enter"&&this.listVisible()){const s=t[this.activeIndex()];s&&!s.disabled&&(e.preventDefault(),this.pick(s))}else if(e.key==="Escape"&&this.openMode()==="dropdown")this.open.set(!1);else if(e.key==="Backspace"&&this.multiple()&&this.searchable()&&!this.query()){const s=this.selectedValues();s.length&&this.toggle(s[s.length-1])}}onBlur(){this.onTouched(),this.openMode()!=="always"&&queueMicrotask(()=>{if(this.open.set(!1),this.searchable()&&!this.multiple()){const e=this.selectedOpts()[0];this.query.set(e?.label??"")}})}onOptionMouseDown(e,t){e.preventDefault(),!t.disabled&&this.pick(t)}pick(e){if(!(this.disabled()||e.disabled)){if(this.multiple()){this.toggle(e.value),this.searchable()&&this.query.set("");return}this.commit(e.value),this.query.set(e.label),this.openMode()==="dropdown"&&this.open.set(!1)}}toggle(e){if(this.disabled())return;const t=new Set(this.selectedValues());t.has(e)?t.delete(e):t.add(e);const s=this.options().map(r=>r.value).filter(r=>t.has(r));this.commit(s)}clear(){this.disabled()||(this.commit(this.multiple()?[]:""),this.query.set(""),this.openMode()==="dropdown"&&this.searchable()&&this.open.set(!0))}onDocClick(e){if(this.openMode()==="always")return;const t=e.target;t&&!this.host.nativeElement.contains(t)&&this.open.set(!1)}commit(e){this.value.set(e),this.valueChange.emit(e),this.onChange(e)}writeValue(e){this.value.set(e??(this.multiple()?[]:""))}registerOnChange(e){this.onChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.cvaDisabled.set(e)}moveActive(e){const t=this.filtered(),s=t.length;if(!s){this.activeIndex.set(0);return}let r=this.activeIndex();for(let l=0;l<s;l++)if(r=(r+e+s)%s,!t[r]?.disabled){this.activeIndex.set(r);return}}firstEnabledIndex(e){const t=e.findIndex(s=>!s.disabled);return t<0?0:t}lastEnabledIndex(e){for(let t=e.length-1;t>=0;t--)if(!e[t]?.disabled)return t;return Math.max(e.length-1,0)}static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:R,deps:[],target:a.ɵɵFactoryTarget.Component});static ɵcmp=a.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.5",type:R,isStandalone:!0,selector:"dga-select",inputs:{options:{classPropertyName:"options",publicName:"options",isSignal:!0,isRequired:!1,transformFunction:null},valueInput:{classPropertyName:"valueInput",publicName:"value",isSignal:!0,isRequired:!1,transformFunction:null},multiple:{classPropertyName:"multiple",publicName:"multiple",isSignal:!0,isRequired:!1,transformFunction:null},searchable:{classPropertyName:"searchable",publicName:"searchable",isSignal:!0,isRequired:!1,transformFunction:null},openMode:{classPropertyName:"openMode",publicName:"openMode",isSignal:!0,isRequired:!1,transformFunction:null},clearable:{classPropertyName:"clearable",publicName:"clearable",isSignal:!0,isRequired:!1,transformFunction:null},size:{classPropertyName:"size",publicName:"size",isSignal:!0,isRequired:!1,transformFunction:null},status:{classPropertyName:"status",publicName:"status",isSignal:!0,isRequired:!1,transformFunction:null},placeholder:{classPropertyName:"placeholder",publicName:"placeholder",isSignal:!0,isRequired:!1,transformFunction:null},label:{classPropertyName:"label",publicName:"label",isSignal:!0,isRequired:!1,transformFunction:null},removeLabel:{classPropertyName:"removeLabel",publicName:"removeLabel",isSignal:!0,isRequired:!1,transformFunction:null},clearLabel:{classPropertyName:"clearLabel",publicName:"clearLabel",isSignal:!0,isRequired:!1,transformFunction:null},emptyLabel:{classPropertyName:"emptyLabel",publicName:"emptyLabel",isSignal:!0,isRequired:!1,transformFunction:null},disabledInput:{classPropertyName:"disabledInput",publicName:"disabled",isSignal:!0,isRequired:!1,transformFunction:null},invalid:{classPropertyName:"invalid",publicName:"dgaInvalid",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{valueChange:"valueChange",searchChange:"searchChange"},host:{listeners:{"document:click":"onDocClick($event)"},classAttribute:"block w-full"},providers:[P(R)],ngImport:a,template:`
246
246
  <div class="relative w-full">
247
247
  @if (searchable()) {
248
248
  <div [class]="triggerWrapClasses()">
@@ -3172,7 +3172,7 @@ import{DOCUMENT as ot,NgTemplateOutlet as Qa,APP_BASE_HREF as bt,PlatformLocatio
3172
3172
  </div>
3173
3173
  }
3174
3174
  </div>
3175
- `,changeDetection:m.OnPush,host:{"[class]":"hostClass()"},styles:[":host{display:block;width:100%;max-width:var(--container-md, 40rem)}.dga-feedback{display:flex;flex-direction:column;gap:var(--dga-spacing-2xl, 1.25rem);padding:var(--dga-spacing-2xl, 1.25rem);border:1px solid var(--dga-border-neutral-subtle, var(--dga-color-neutral-200));border-radius:var(--dga-radius-lg, 12px);background:linear-gradient(165deg,color-mix(in srgb,var(--dga-color-primary-50, #ecfdf5) 55%,transparent) 0%,var(--dga-bg-card, #fff) 42%);box-shadow:var(--dga-shadow-xs, 0 1px 2px rgb(0 0 0 / 6%))}.dga-feedback__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--dga-spacing-lg, .75rem);padding-bottom:var(--dga-spacing-lg, .75rem);border-bottom:1px solid color-mix(in srgb,var(--dga-border-neutral-subtle) 80%,transparent)}.dga-feedback__head-text{min-width:0;display:flex;flex-direction:column;gap:var(--dga-spacing-xs, .25rem)}.dga-feedback__title{margin:0;font-size:var(--dga-font-text-md, 1rem);line-height:var(--dga-leading-text-md, 1.5rem);font-weight:650;color:var(--dga-text-display, #161b26)}.dga-feedback__subtitle{margin:0;font-size:var(--dga-font-text-sm, .875rem);line-height:1.4;color:var(--dga-text-paragraph, #384250)}.dga-feedback__badge{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;color:var(--dga-color-yellow-600, #d97706);background:color-mix(in srgb,var(--dga-color-yellow-400, #fbbf24) 18%,transparent)}.dga-feedback__body{display:flex;flex-direction:column;gap:var(--dga-spacing-xl, 1rem)}.dga-feedback__rating,.dga-feedback__comment{display:flex;flex-direction:column;gap:var(--dga-spacing-sm, .375rem)}.dga-feedback__label{font-size:var(--dga-font-text-sm, .875rem);font-weight:600;color:var(--dga-text-display, #161b26)}.dga-feedback__hint{font-size:var(--dga-font-text-xs, .75rem);color:var(--dga-text-muted, #6b7280)}.dga-feedback__textarea{width:100%;min-height:6.5rem;resize:vertical;padding:var(--dga-spacing-lg, .75rem) var(--dga-spacing-xl, 1rem);border:1px solid var(--dga-border-border, var(--dga-color-neutral-300));border-radius:var(--dga-radius-md, 8px);background:var(--dga-bg-surface, #fff);color:var(--dga-text-fg, #111827);font:inherit;font-size:var(--dga-font-text-md, 1rem);line-height:1.5;transition:border-color .16s ease,box-shadow .16s ease}.dga-feedback__textarea::placeholder{color:var(--dga-text-muted, #9da4ae)}.dga-feedback__textarea:hover{border-color:var(--dga-border-primary-light, var(--dga-color-primary-200))}.dga-feedback__textarea:focus{outline:none;border-color:var(--dga-border-primary, var(--dga-color-primary-600));box-shadow:0 0 0 3px var(--dga-form-field-focus-glow, rgb(16 185 129 / 18%))}.dga-feedback__actions{display:flex;justify-content:flex-end;padding-top:var(--dga-spacing-xs, .25rem)}.dga-feedback__success{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dga-spacing-lg, .75rem);padding:var(--dga-spacing-xl, 1rem);border-radius:var(--dga-radius-md, 8px);background:color-mix(in srgb,var(--dga-color-primary-50, #ecfdf5) 80%,transparent);border:1px solid color-mix(in srgb,var(--dga-color-primary-200, #a7f3d0) 70%,transparent)}.dga-feedback__success-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;color:var(--dga-color-primary-700, #047857);background:color-mix(in srgb,var(--dga-color-primary-500, #10b981) 16%,transparent)}.dga-feedback__success-copy{flex:1 1 10rem;min-width:0}.dga-feedback__success-title{margin:0;font-size:var(--dga-font-text-sm, .875rem);font-weight:650;color:var(--dga-text-display, #161b26)}.dga-feedback__success-body{margin:.15rem 0 0;font-size:var(--dga-font-text-sm, .875rem);color:var(--dga-text-paragraph, #384250)}\n"]}]}],propDecorators:{rating:[{type:a.Input,args:[{isSignal:!0,alias:"rating",required:!1}]},{type:a.Output,args:["ratingChange"]}],submitted:[{type:a.Output,args:["submitted"]}],title:[{type:a.Input,args:[{isSignal:!0,alias:"title",required:!1}]}],subtitle:[{type:a.Input,args:[{isSignal:!0,alias:"subtitle",required:!1}]}],ratingLabel:[{type:a.Input,args:[{isSignal:!0,alias:"ratingLabel",required:!1}]}],commentLabel:[{type:a.Input,args:[{isSignal:!0,alias:"commentLabel",required:!1}]}],commentPlaceholder:[{type:a.Input,args:[{isSignal:!0,alias:"commentPlaceholder",required:!1}]}],submitLabel:[{type:a.Input,args:[{isSignal:!0,alias:"submitLabel",required:!1}]}],againLabel:[{type:a.Input,args:[{isSignal:!0,alias:"againLabel",required:!1}]}],successTitle:[{type:a.Input,args:[{isSignal:!0,alias:"successTitle",required:!1}]}],successBody:[{type:a.Input,args:[{isSignal:!0,alias:"successBody",required:!1}]}]}});const ys=/^(javascript|data|vbscript|blob):/i,xs=/^(https?:|mailto:|tel:)/i;function Ft(d,e="/"){const t=d.trim();if(!t)return t;if(ys.test(t))return"#";if(t==="#"||t.startsWith("#")||xs.test(t)||t.startsWith("//")||!t.startsWith("/"))return t;const s=e.replace(/\/+$/,"");return!s||s==="/"?t:`${s}${t}`}function $(d,e="/"){return d==null?"#":Ft(String(d),e)||"#"}class _e{question=i("هل كانت هذه الصفحة مفيدة؟",...ngDevMode?[{debugName:"question"}]:[]);yesLabel=i("نعم",...ngDevMode?[{debugName:"yesLabel"}]:[]);noLabel=i("لا",...ngDevMode?[{debugName:"noLabel"}]:[]);closeLabel=i("إغلاق",...ngDevMode?[{debugName:"closeLabel"}]:[]);whyLabel=i("أخبرنا بالسبب",...ngDevMode?[{debugName:"whyLabel"}]:[]);whyHint=i("(يمكنك اختيار أكثر من خيار)",...ngDevMode?[{debugName:"whyHint"}]:[]);genderLabel=i("أنا",...ngDevMode?[{debugName:"genderLabel"}]:[]);commentLabel=i("ملاحظات",...ngDevMode?[{debugName:"commentLabel"}]:[]);commentPlaceholder=i("اكتب رسالتك…",...ngDevMode?[{debugName:"commentPlaceholder"}]:[]);submitLabel=i("إرسال",...ngDevMode?[{debugName:"submitLabel"}]:[]);statistic=i("",...ngDevMode?[{debugName:"statistic"}]:[]);thankYouMessage=i("شكرًا لملاحظاتك",...ngDevMode?[{debugName:"thankYouMessage"}]:[]);agreementBefore=i("لمزيد من المعلومات يمكنك مراجعة ",...ngDevMode?[{debugName:"agreementBefore"}]:[]);participationLabel=i("بيان المشاركة الإلكترونية",...ngDevMode?[{debugName:"participationLabel"}]:[]);participationHref=i("#",...ngDevMode?[{debugName:"participationHref"}]:[]);agreementAnd=i(" و ",...ngDevMode?[{debugName:"agreementAnd"}]:[]);rulesLabel=i("قواعد المشاركة",...ngDevMode?[{debugName:"rulesLabel"}]:[]);rulesHref=i("#",...ngDevMode?[{debugName:"rulesHref"}]:[]);agreementAfter=i(".",...ngDevMode?[{debugName:"agreementAfter"}]:[]);defaultAgreement=i(!0,{...ngDevMode?{debugName:"defaultAgreement"}:{},transform:u});yesReasons=i([{value:"relevant",label:"المحتوى ذو صلة"},{value:"well-written",label:"كان مكتوبًا بشكل جيد"},{value:"easy-layout",label:"التصميم سهّل القراءة"},{value:"other",label:"سبب آخر"}],...ngDevMode?[{debugName:"yesReasons"}]:[]);noReasons=i([{value:"not-relevant",label:"المحتوى غير ذي صلة"},{value:"inaccurate",label:"المحتوى غير دقيق"},{value:"too-long",label:"المحتوى طويل جدًا"},{value:"other",label:"سبب آخر"}],...ngDevMode?[{debugName:"noReasons"}]:[]);genderOptions=i([{value:"male",label:"ذكر"},{value:"female",label:"أنثى"}],...ngDevMode?[{debugName:"genderOptions"}]:[]);bordered=i(!0,{...ngDevMode?{debugName:"bordered"}:{},transform:u});submitted=v();closed=v();answer=b(null,...ngDevMode?[{debugName:"answer"}]:[]);phase=b("idle",...ngDevMode?[{debugName:"phase"}]:[]);reasons=b([],...ngDevMode?[{debugName:"reasons"}]:[]);gender=b("",...ngDevMode?[{debugName:"gender"}]:[]);comment=b("",...ngDevMode?[{debugName:"comment"}]:[]);dismissed=b(!1,...ngDevMode?[{debugName:"dismissed"}]:[]);statusMessage=b("",...ngDevMode?[{debugName:"statusMessage"}]:[]);static nextId=0;uid=++_e.nextId;commentId=`dga-page-feedback-comment-${this.uid}`;genderName=`dga-page-feedback-gender-${this.uid}`;activeReasons=n(()=>this.answer()==="no"?this.noReasons():this.yesReasons(),...ngDevMode?[{debugName:"activeReasons"}]:[]);canSubmit=n(()=>this.reasons().length>0||this.comment().trim().length>0,...ngDevMode?[{debugName:"canSubmit"}]:[]);showDefaultAgreement=n(()=>this.defaultAgreement(),...ngDevMode?[{debugName:"showDefaultAgreement"}]:[]);panelClasses=n(()=>c("block w-full bg-surface",this.bordered()&&"border-t-2 border-border-primary"),...ngDevMode?[{debugName:"panelClasses"}]:[]);choose(e){this.answer.set(e),this.phase.set("details"),this.reasons.set([]),this.gender.set(""),this.comment.set(""),this.statusMessage.set("")}toggleReason(e,t){const s=t.target.checked;this.reasons.update(r=>s?[...r,e]:r.filter(l=>l!==e))}onComment(e){this.comment.set(e.target.value)}onSubmit(e){e.preventDefault();const t=this.answer();!t||!this.canSubmit()||(this.submitted.emit({answer:t,reasons:this.reasons(),gender:this.gender(),comment:this.comment().trim()}),this.statusMessage.set(this.thankYouMessage()),this.phase.set("thanks"),this.reasons.set([]),this.gender.set(""),this.comment.set(""))}close(){if(this.phase()==="thanks"){this.dismissed.set(!0),this.closed.emit();return}this.answer.set(null),this.phase.set("idle"),this.reasons.set([]),this.gender.set(""),this.comment.set(""),this.statusMessage.set("")}safeHref(e){return $(e)}static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:_e,deps:[],target:a.ɵɵFactoryTarget.Component});static ɵcmp=a.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.5",type:_e,isStandalone:!0,selector:"dga-page-feedback",inputs:{question:{classPropertyName:"question",publicName:"question",isSignal:!0,isRequired:!1,transformFunction:null},yesLabel:{classPropertyName:"yesLabel",publicName:"yesLabel",isSignal:!0,isRequired:!1,transformFunction:null},noLabel:{classPropertyName:"noLabel",publicName:"noLabel",isSignal:!0,isRequired:!1,transformFunction:null},closeLabel:{classPropertyName:"closeLabel",publicName:"closeLabel",isSignal:!0,isRequired:!1,transformFunction:null},whyLabel:{classPropertyName:"whyLabel",publicName:"whyLabel",isSignal:!0,isRequired:!1,transformFunction:null},whyHint:{classPropertyName:"whyHint",publicName:"whyHint",isSignal:!0,isRequired:!1,transformFunction:null},genderLabel:{classPropertyName:"genderLabel",publicName:"genderLabel",isSignal:!0,isRequired:!1,transformFunction:null},commentLabel:{classPropertyName:"commentLabel",publicName:"commentLabel",isSignal:!0,isRequired:!1,transformFunction:null},commentPlaceholder:{classPropertyName:"commentPlaceholder",publicName:"commentPlaceholder",isSignal:!0,isRequired:!1,transformFunction:null},submitLabel:{classPropertyName:"submitLabel",publicName:"submitLabel",isSignal:!0,isRequired:!1,transformFunction:null},statistic:{classPropertyName:"statistic",publicName:"statistic",isSignal:!0,isRequired:!1,transformFunction:null},thankYouMessage:{classPropertyName:"thankYouMessage",publicName:"thankYouMessage",isSignal:!0,isRequired:!1,transformFunction:null},agreementBefore:{classPropertyName:"agreementBefore",publicName:"agreementBefore",isSignal:!0,isRequired:!1,transformFunction:null},participationLabel:{classPropertyName:"participationLabel",publicName:"participationLabel",isSignal:!0,isRequired:!1,transformFunction:null},participationHref:{classPropertyName:"participationHref",publicName:"participationHref",isSignal:!0,isRequired:!1,transformFunction:null},agreementAnd:{classPropertyName:"agreementAnd",publicName:"agreementAnd",isSignal:!0,isRequired:!1,transformFunction:null},rulesLabel:{classPropertyName:"rulesLabel",publicName:"rulesLabel",isSignal:!0,isRequired:!1,transformFunction:null},rulesHref:{classPropertyName:"rulesHref",publicName:"rulesHref",isSignal:!0,isRequired:!1,transformFunction:null},agreementAfter:{classPropertyName:"agreementAfter",publicName:"agreementAfter",isSignal:!0,isRequired:!1,transformFunction:null},defaultAgreement:{classPropertyName:"defaultAgreement",publicName:"defaultAgreement",isSignal:!0,isRequired:!1,transformFunction:null},yesReasons:{classPropertyName:"yesReasons",publicName:"yesReasons",isSignal:!0,isRequired:!1,transformFunction:null},noReasons:{classPropertyName:"noReasons",publicName:"noReasons",isSignal:!0,isRequired:!1,transformFunction:null},genderOptions:{classPropertyName:"genderOptions",publicName:"genderOptions",isSignal:!0,isRequired:!1,transformFunction:null},bordered:{classPropertyName:"bordered",publicName:"bordered",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{submitted:"submitted",closed:"closed"},host:{properties:{"attr.data-phase":"phase()","attr.data-answer":"answer() || null"},classAttribute:"block"},ngImport:a,template:`
3175
+ `,changeDetection:m.OnPush,host:{"[class]":"hostClass()"},styles:[":host{display:block;width:100%;max-width:var(--container-md, 40rem)}.dga-feedback{display:flex;flex-direction:column;gap:var(--dga-spacing-2xl, 1.25rem);padding:var(--dga-spacing-2xl, 1.25rem);border:1px solid var(--dga-border-neutral-subtle, var(--dga-color-neutral-200));border-radius:var(--dga-radius-lg, 12px);background:linear-gradient(165deg,color-mix(in srgb,var(--dga-color-primary-50, #ecfdf5) 55%,transparent) 0%,var(--dga-bg-card, #fff) 42%);box-shadow:var(--dga-shadow-xs, 0 1px 2px rgb(0 0 0 / 6%))}.dga-feedback__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--dga-spacing-lg, .75rem);padding-bottom:var(--dga-spacing-lg, .75rem);border-bottom:1px solid color-mix(in srgb,var(--dga-border-neutral-subtle) 80%,transparent)}.dga-feedback__head-text{min-width:0;display:flex;flex-direction:column;gap:var(--dga-spacing-xs, .25rem)}.dga-feedback__title{margin:0;font-size:var(--dga-font-text-md, 1rem);line-height:var(--dga-leading-text-md, 1.5rem);font-weight:650;color:var(--dga-text-display, #161b26)}.dga-feedback__subtitle{margin:0;font-size:var(--dga-font-text-sm, .875rem);line-height:1.4;color:var(--dga-text-paragraph, #384250)}.dga-feedback__badge{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;color:var(--dga-color-yellow-600, #d97706);background:color-mix(in srgb,var(--dga-color-yellow-400, #fbbf24) 18%,transparent)}.dga-feedback__body{display:flex;flex-direction:column;gap:var(--dga-spacing-xl, 1rem)}.dga-feedback__rating,.dga-feedback__comment{display:flex;flex-direction:column;gap:var(--dga-spacing-sm, .375rem)}.dga-feedback__label{font-size:var(--dga-font-text-sm, .875rem);font-weight:600;color:var(--dga-text-display, #161b26)}.dga-feedback__hint{font-size:var(--dga-font-text-xs, .75rem);color:var(--dga-text-muted, #6b7280)}.dga-feedback__textarea{width:100%;min-height:6.5rem;resize:vertical;padding:var(--dga-spacing-lg, .75rem) var(--dga-spacing-xl, 1rem);border:1px solid var(--dga-border-border, var(--dga-color-neutral-300));border-radius:var(--dga-radius-md, 8px);background:var(--dga-bg-surface, #fff);color:var(--dga-text-fg, #111827);font:inherit;font-size:var(--dga-font-text-md, 1rem);line-height:1.5;transition:border-color .16s ease,box-shadow .16s ease}.dga-feedback__textarea::placeholder{color:var(--dga-text-muted, #9da4ae)}.dga-feedback__textarea:hover{border-color:var(--dga-border-primary-light, var(--dga-color-primary-200))}.dga-feedback__textarea:focus{outline:none;border-color:var(--dga-border-primary, var(--dga-color-primary-600));box-shadow:0 0 0 3px var(--dga-form-field-focus-glow, rgb(16 185 129 / 18%))}.dga-feedback__actions{display:flex;justify-content:flex-end;padding-top:var(--dga-spacing-xs, .25rem)}.dga-feedback__success{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dga-spacing-lg, .75rem);padding:var(--dga-spacing-xl, 1rem);border-radius:var(--dga-radius-md, 8px);background:color-mix(in srgb,var(--dga-color-primary-50, #ecfdf5) 80%,transparent);border:1px solid color-mix(in srgb,var(--dga-color-primary-200, #a7f3d0) 70%,transparent)}.dga-feedback__success-icon{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:999px;color:var(--dga-color-primary-700, #047857);background:color-mix(in srgb,var(--dga-color-primary-500, #10b981) 16%,transparent)}.dga-feedback__success-copy{flex:1 1 10rem;min-width:0}.dga-feedback__success-title{margin:0;font-size:var(--dga-font-text-sm, .875rem);font-weight:650;color:var(--dga-text-display, #161b26)}.dga-feedback__success-body{margin:.15rem 0 0;font-size:var(--dga-font-text-sm, .875rem);color:var(--dga-text-paragraph, #384250)}\n"]}]}],propDecorators:{rating:[{type:a.Input,args:[{isSignal:!0,alias:"rating",required:!1}]},{type:a.Output,args:["ratingChange"]}],submitted:[{type:a.Output,args:["submitted"]}],title:[{type:a.Input,args:[{isSignal:!0,alias:"title",required:!1}]}],subtitle:[{type:a.Input,args:[{isSignal:!0,alias:"subtitle",required:!1}]}],ratingLabel:[{type:a.Input,args:[{isSignal:!0,alias:"ratingLabel",required:!1}]}],commentLabel:[{type:a.Input,args:[{isSignal:!0,alias:"commentLabel",required:!1}]}],commentPlaceholder:[{type:a.Input,args:[{isSignal:!0,alias:"commentPlaceholder",required:!1}]}],submitLabel:[{type:a.Input,args:[{isSignal:!0,alias:"submitLabel",required:!1}]}],againLabel:[{type:a.Input,args:[{isSignal:!0,alias:"againLabel",required:!1}]}],successTitle:[{type:a.Input,args:[{isSignal:!0,alias:"successTitle",required:!1}]}],successBody:[{type:a.Input,args:[{isSignal:!0,alias:"successBody",required:!1}]}]}});const ys=/^(javascript|data|vbscript|blob):/i,xs=/^(https?:|mailto:|tel:)/i;function Ft(d,e="/"){const t=d.trim();if(!t)return t;if(ys.test(t))return"#";if(t==="#"||t.startsWith("#")||xs.test(t)||t.startsWith("//")||!t.startsWith("/"))return t;const s=e.replace(/\/+$/,"");return!s||s==="/"?t:`${s}${t}`}function $(d,e="/"){return d==null?"#":Ft(String(d),e)||"#"}class _e{question=i("هل كانت هذه الصفحة مفيدة؟",...ngDevMode?[{debugName:"question"}]:[]);yesLabel=i("نعم",...ngDevMode?[{debugName:"yesLabel"}]:[]);noLabel=i("لا",...ngDevMode?[{debugName:"noLabel"}]:[]);closeLabel=i("إغلاق",...ngDevMode?[{debugName:"closeLabel"}]:[]);whyLabel=i("أخبرنا بالسبب",...ngDevMode?[{debugName:"whyLabel"}]:[]);whyHint=i("(يمكنك اختيار أكثر من خيار)",...ngDevMode?[{debugName:"whyHint"}]:[]);genderLabel=i("أنا",...ngDevMode?[{debugName:"genderLabel"}]:[]);commentLabel=i("ملاحظات",...ngDevMode?[{debugName:"commentLabel"}]:[]);commentPlaceholder=i("اكتب رسالتك…",...ngDevMode?[{debugName:"commentPlaceholder"}]:[]);submitLabel=i("إرسال",...ngDevMode?[{debugName:"submitLabel"}]:[]);statistic=i("",...ngDevMode?[{debugName:"statistic"}]:[]);thankYouMessage=i("شكرًا لملاحظاتك",...ngDevMode?[{debugName:"thankYouMessage"}]:[]);agreementBefore=i("لمزيد من المعلومات، يمكنك مراجعة ",...ngDevMode?[{debugName:"agreementBefore"}]:[]);participationLabel=i("بيان المشاركة الإلكترونية",...ngDevMode?[{debugName:"participationLabel"}]:[]);participationHref=i("#",...ngDevMode?[{debugName:"participationHref"}]:[]);agreementAnd=i(" و ",...ngDevMode?[{debugName:"agreementAnd"}]:[]);rulesLabel=i("قواعد المشاركة",...ngDevMode?[{debugName:"rulesLabel"}]:[]);rulesHref=i("#",...ngDevMode?[{debugName:"rulesHref"}]:[]);agreementAfter=i("",...ngDevMode?[{debugName:"agreementAfter"}]:[]);agreementLinks=i([],...ngDevMode?[{debugName:"agreementLinks"}]:[]);defaultAgreement=i(!0,{...ngDevMode?{debugName:"defaultAgreement"}:{},transform:u});ageLabel=i("الفئة العمرية",...ngDevMode?[{debugName:"ageLabel"}]:[]);ageOptions=i([],...ngDevMode?[{debugName:"ageOptions"}]:[]);yesReasons=i([{value:"relevant",label:"المحتوى ذو صلة"},{value:"well-written",label:"كان مكتوبًا بشكل جيد"},{value:"easy-layout",label:"التصميم سهّل القراءة"},{value:"other",label:"سبب آخر"}],...ngDevMode?[{debugName:"yesReasons"}]:[]);noReasons=i([{value:"not-relevant",label:"المحتوى غير ذي صلة"},{value:"inaccurate",label:"المحتوى غير دقيق"},{value:"too-long",label:"المحتوى طويل جدًا"},{value:"other",label:"سبب آخر"}],...ngDevMode?[{debugName:"noReasons"}]:[]);genderOptions=i([{value:"male",label:"ذكر"},{value:"female",label:"أنثى"}],...ngDevMode?[{debugName:"genderOptions"}]:[]);bordered=i(!0,{...ngDevMode?{debugName:"bordered"}:{},transform:u});submitted=v();closed=v();answer=b(null,...ngDevMode?[{debugName:"answer"}]:[]);phase=b("idle",...ngDevMode?[{debugName:"phase"}]:[]);reasons=b([],...ngDevMode?[{debugName:"reasons"}]:[]);gender=b("",...ngDevMode?[{debugName:"gender"}]:[]);ageRange=b("",...ngDevMode?[{debugName:"ageRange"}]:[]);comment=b("",...ngDevMode?[{debugName:"comment"}]:[]);dismissed=b(!1,...ngDevMode?[{debugName:"dismissed"}]:[]);statusMessage=b("",...ngDevMode?[{debugName:"statusMessage"}]:[]);static nextId=0;uid=++_e.nextId;commentId=`dga-page-feedback-comment-${this.uid}`;genderName=`dga-page-feedback-gender-${this.uid}`;ageName=`dga-page-feedback-age-${this.uid}`;activeReasons=n(()=>this.answer()==="no"?this.noReasons():this.yesReasons(),...ngDevMode?[{debugName:"activeReasons"}]:[]);canSubmit=n(()=>this.reasons().length>0||this.comment().trim().length>0,...ngDevMode?[{debugName:"canSubmit"}]:[]);resolvedAgreementLinks=n(()=>{const e=this.agreementLinks().filter(t=>!!t?.label?.trim());return e.length?e:[{label:this.participationLabel(),href:this.participationHref()},{label:this.rulesLabel(),href:this.rulesHref()}].filter(t=>!!t.label?.trim())},...ngDevMode?[{debugName:"resolvedAgreementLinks"}]:[]);showDefaultAgreement=n(()=>this.defaultAgreement()&&this.resolvedAgreementLinks().length>0,...ngDevMode?[{debugName:"showDefaultAgreement"}]:[]);panelClasses=n(()=>c("block w-full bg-surface",this.bordered()&&"border-t-2 border-border-primary"),...ngDevMode?[{debugName:"panelClasses"}]:[]);choose(e){this.answer.set(e),this.phase.set("details"),this.reasons.set([]),this.gender.set(""),this.ageRange.set(""),this.comment.set(""),this.statusMessage.set("")}toggleReason(e,t){const s=t.target.checked;this.reasons.update(r=>s?[...r,e]:r.filter(l=>l!==e))}onComment(e){this.comment.set(e.target.value)}onSubmit(e){e.preventDefault();const t=this.answer();!t||!this.canSubmit()||(this.submitted.emit({answer:t,reasons:this.reasons(),gender:this.gender(),ageRange:this.ageRange(),comment:this.comment().trim()}),this.statusMessage.set(this.thankYouMessage()),this.phase.set("thanks"),this.reasons.set([]),this.gender.set(""),this.ageRange.set(""),this.comment.set(""))}close(){if(this.phase()==="thanks"){this.dismissed.set(!0),this.closed.emit();return}this.answer.set(null),this.phase.set("idle"),this.reasons.set([]),this.gender.set(""),this.ageRange.set(""),this.comment.set(""),this.statusMessage.set("")}safeHref(e){return $(e)}static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:_e,deps:[],target:a.ɵɵFactoryTarget.Component});static ɵcmp=a.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"22.1.5",type:_e,isStandalone:!0,selector:"dga-page-feedback",inputs:{question:{classPropertyName:"question",publicName:"question",isSignal:!0,isRequired:!1,transformFunction:null},yesLabel:{classPropertyName:"yesLabel",publicName:"yesLabel",isSignal:!0,isRequired:!1,transformFunction:null},noLabel:{classPropertyName:"noLabel",publicName:"noLabel",isSignal:!0,isRequired:!1,transformFunction:null},closeLabel:{classPropertyName:"closeLabel",publicName:"closeLabel",isSignal:!0,isRequired:!1,transformFunction:null},whyLabel:{classPropertyName:"whyLabel",publicName:"whyLabel",isSignal:!0,isRequired:!1,transformFunction:null},whyHint:{classPropertyName:"whyHint",publicName:"whyHint",isSignal:!0,isRequired:!1,transformFunction:null},genderLabel:{classPropertyName:"genderLabel",publicName:"genderLabel",isSignal:!0,isRequired:!1,transformFunction:null},commentLabel:{classPropertyName:"commentLabel",publicName:"commentLabel",isSignal:!0,isRequired:!1,transformFunction:null},commentPlaceholder:{classPropertyName:"commentPlaceholder",publicName:"commentPlaceholder",isSignal:!0,isRequired:!1,transformFunction:null},submitLabel:{classPropertyName:"submitLabel",publicName:"submitLabel",isSignal:!0,isRequired:!1,transformFunction:null},statistic:{classPropertyName:"statistic",publicName:"statistic",isSignal:!0,isRequired:!1,transformFunction:null},thankYouMessage:{classPropertyName:"thankYouMessage",publicName:"thankYouMessage",isSignal:!0,isRequired:!1,transformFunction:null},agreementBefore:{classPropertyName:"agreementBefore",publicName:"agreementBefore",isSignal:!0,isRequired:!1,transformFunction:null},participationLabel:{classPropertyName:"participationLabel",publicName:"participationLabel",isSignal:!0,isRequired:!1,transformFunction:null},participationHref:{classPropertyName:"participationHref",publicName:"participationHref",isSignal:!0,isRequired:!1,transformFunction:null},agreementAnd:{classPropertyName:"agreementAnd",publicName:"agreementAnd",isSignal:!0,isRequired:!1,transformFunction:null},rulesLabel:{classPropertyName:"rulesLabel",publicName:"rulesLabel",isSignal:!0,isRequired:!1,transformFunction:null},rulesHref:{classPropertyName:"rulesHref",publicName:"rulesHref",isSignal:!0,isRequired:!1,transformFunction:null},agreementAfter:{classPropertyName:"agreementAfter",publicName:"agreementAfter",isSignal:!0,isRequired:!1,transformFunction:null},agreementLinks:{classPropertyName:"agreementLinks",publicName:"agreementLinks",isSignal:!0,isRequired:!1,transformFunction:null},defaultAgreement:{classPropertyName:"defaultAgreement",publicName:"defaultAgreement",isSignal:!0,isRequired:!1,transformFunction:null},ageLabel:{classPropertyName:"ageLabel",publicName:"ageLabel",isSignal:!0,isRequired:!1,transformFunction:null},ageOptions:{classPropertyName:"ageOptions",publicName:"ageOptions",isSignal:!0,isRequired:!1,transformFunction:null},yesReasons:{classPropertyName:"yesReasons",publicName:"yesReasons",isSignal:!0,isRequired:!1,transformFunction:null},noReasons:{classPropertyName:"noReasons",publicName:"noReasons",isSignal:!0,isRequired:!1,transformFunction:null},genderOptions:{classPropertyName:"genderOptions",publicName:"genderOptions",isSignal:!0,isRequired:!1,transformFunction:null},bordered:{classPropertyName:"bordered",publicName:"bordered",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{submitted:"submitted",closed:"closed"},host:{properties:{"attr.data-phase":"phase()","attr.data-answer":"answer() || null"},classAttribute:"block"},ngImport:a,template:`
3176
3176
  @if (!dismissed()) {
3177
3177
  <section [class]="panelClasses()" [attr.aria-label]="question()">
3178
3178
  <div class="mx-auto w-full px-(--wrapper-padding) py-4xl lg:py-5xl">
@@ -3286,6 +3286,30 @@ import{DOCUMENT as ot,NgTemplateOutlet as Qa,APP_BASE_HREF as bt,PlatformLocatio
3286
3286
  }
3287
3287
  </div>
3288
3288
  </fieldset>
3289
+ @if (ageOptions().length) {
3290
+ <fieldset class="m-0 flex flex-col gap-lg border-0 p-0">
3291
+ <legend class="mb-0 text-body-md font-medium text-display">
3292
+ {{ ageLabel() }}
3293
+ </legend>
3294
+ <div class="flex flex-wrap gap-xl">
3295
+ @for (a of ageOptions(); track a.value) {
3296
+ <label
3297
+ class="inline-flex cursor-pointer items-center gap-md text-body-md text-fg"
3298
+ >
3299
+ <input
3300
+ dgaRadio
3301
+ type="radio"
3302
+ [name]="ageName"
3303
+ [value]="a.value"
3304
+ [checked]="ageRange() === a.value"
3305
+ (change)="ageRange.set(a.value)"
3306
+ />
3307
+ <span>{{ a.label }}</span>
3308
+ </label>
3309
+ }
3310
+ </div>
3311
+ </fieldset>
3312
+ }
3289
3313
  </div>
3290
3314
 
3291
3315
  <div class="flex min-w-0 w-full flex-col gap-sm lg:basis-2/5">
@@ -3307,25 +3331,26 @@ import{DOCUMENT as ot,NgTemplateOutlet as Qa,APP_BASE_HREF as bt,PlatformLocatio
3307
3331
  </div>
3308
3332
  </div>
3309
3333
 
3310
- <div
3311
- class="flex flex-col gap-xl sm:flex-row sm:items-center sm:justify-between sm:gap-4xl"
3312
- >
3313
- <p class="m-0 max-w-(--spacing-180) text-body-sm text-muted">
3334
+ <div class="flex flex-col gap-xl">
3335
+ <p class="m-0 w-full min-w-0 text-body-sm text-muted">
3314
3336
  <ng-content select="[dgaPageFeedbackAgreement]" />
3315
3337
  @if (showDefaultAgreement()) {
3316
- <span class="inline">
3317
- {{ agreementBefore() }}<a dgaLink [href]="safeHref(participationHref())">{{
3318
- participationLabel()
3319
- }}</a
3320
- >{{ agreementAnd() }}<a dgaLink [href]="safeHref(rulesHref())">{{ rulesLabel() }}</a
3321
- >{{ agreementAfter() }}
3338
+ <span>
3339
+ {{ agreementBefore() }}
3340
+ @for (link of resolvedAgreementLinks(); track $index; let last = $last) {
3341
+ <a dgaLink [href]="safeHref(link.href)">{{ link.label }}</a>
3342
+ @if (!last) {
3343
+ {{ agreementAnd() }}
3344
+ }
3345
+ }
3346
+ {{ agreementAfter() }}
3322
3347
  </span>
3323
3348
  }
3324
3349
  </p>
3325
3350
  <button
3326
3351
  type="submit"
3327
3352
  dgaButton
3328
- class="shrink-0 self-start sm:self-auto"
3353
+ class="shrink-0 self-start"
3329
3354
  [disabled]="!canSubmit()"
3330
3355
  >
3331
3356
  {{ submitLabel() }}
@@ -3451,6 +3476,30 @@ import{DOCUMENT as ot,NgTemplateOutlet as Qa,APP_BASE_HREF as bt,PlatformLocatio
3451
3476
  }
3452
3477
  </div>
3453
3478
  </fieldset>
3479
+ @if (ageOptions().length) {
3480
+ <fieldset class="m-0 flex flex-col gap-lg border-0 p-0">
3481
+ <legend class="mb-0 text-body-md font-medium text-display">
3482
+ {{ ageLabel() }}
3483
+ </legend>
3484
+ <div class="flex flex-wrap gap-xl">
3485
+ @for (a of ageOptions(); track a.value) {
3486
+ <label
3487
+ class="inline-flex cursor-pointer items-center gap-md text-body-md text-fg"
3488
+ >
3489
+ <input
3490
+ dgaRadio
3491
+ type="radio"
3492
+ [name]="ageName"
3493
+ [value]="a.value"
3494
+ [checked]="ageRange() === a.value"
3495
+ (change)="ageRange.set(a.value)"
3496
+ />
3497
+ <span>{{ a.label }}</span>
3498
+ </label>
3499
+ }
3500
+ </div>
3501
+ </fieldset>
3502
+ }
3454
3503
  </div>
3455
3504
 
3456
3505
  <div class="flex min-w-0 w-full flex-col gap-sm lg:basis-2/5">
@@ -3472,25 +3521,26 @@ import{DOCUMENT as ot,NgTemplateOutlet as Qa,APP_BASE_HREF as bt,PlatformLocatio
3472
3521
  </div>
3473
3522
  </div>
3474
3523
 
3475
- <div
3476
- class="flex flex-col gap-xl sm:flex-row sm:items-center sm:justify-between sm:gap-4xl"
3477
- >
3478
- <p class="m-0 max-w-(--spacing-180) text-body-sm text-muted">
3524
+ <div class="flex flex-col gap-xl">
3525
+ <p class="m-0 w-full min-w-0 text-body-sm text-muted">
3479
3526
  <ng-content select="[dgaPageFeedbackAgreement]" />
3480
3527
  @if (showDefaultAgreement()) {
3481
- <span class="inline">
3482
- {{ agreementBefore() }}<a dgaLink [href]="safeHref(participationHref())">{{
3483
- participationLabel()
3484
- }}</a
3485
- >{{ agreementAnd() }}<a dgaLink [href]="safeHref(rulesHref())">{{ rulesLabel() }}</a
3486
- >{{ agreementAfter() }}
3528
+ <span>
3529
+ {{ agreementBefore() }}
3530
+ @for (link of resolvedAgreementLinks(); track $index; let last = $last) {
3531
+ <a dgaLink [href]="safeHref(link.href)">{{ link.label }}</a>
3532
+ @if (!last) {
3533
+ {{ agreementAnd() }}
3534
+ }
3535
+ }
3536
+ {{ agreementAfter() }}
3487
3537
  </span>
3488
3538
  }
3489
3539
  </p>
3490
3540
  <button
3491
3541
  type="submit"
3492
3542
  dgaButton
3493
- class="shrink-0 self-start sm:self-auto"
3543
+ class="shrink-0 self-start"
3494
3544
  [disabled]="!canSubmit()"
3495
3545
  >
3496
3546
  {{ submitLabel() }}
@@ -3502,7 +3552,7 @@ import{DOCUMENT as ot,NgTemplateOutlet as Qa,APP_BASE_HREF as bt,PlatformLocatio
3502
3552
  </div>
3503
3553
  </section>
3504
3554
  }
3505
- `,changeDetection:m.OnPush,host:{class:"block","[attr.data-phase]":"phase()","[attr.data-answer]":"answer() || null"}}]}],propDecorators:{question:[{type:a.Input,args:[{isSignal:!0,alias:"question",required:!1}]}],yesLabel:[{type:a.Input,args:[{isSignal:!0,alias:"yesLabel",required:!1}]}],noLabel:[{type:a.Input,args:[{isSignal:!0,alias:"noLabel",required:!1}]}],closeLabel:[{type:a.Input,args:[{isSignal:!0,alias:"closeLabel",required:!1}]}],whyLabel:[{type:a.Input,args:[{isSignal:!0,alias:"whyLabel",required:!1}]}],whyHint:[{type:a.Input,args:[{isSignal:!0,alias:"whyHint",required:!1}]}],genderLabel:[{type:a.Input,args:[{isSignal:!0,alias:"genderLabel",required:!1}]}],commentLabel:[{type:a.Input,args:[{isSignal:!0,alias:"commentLabel",required:!1}]}],commentPlaceholder:[{type:a.Input,args:[{isSignal:!0,alias:"commentPlaceholder",required:!1}]}],submitLabel:[{type:a.Input,args:[{isSignal:!0,alias:"submitLabel",required:!1}]}],statistic:[{type:a.Input,args:[{isSignal:!0,alias:"statistic",required:!1}]}],thankYouMessage:[{type:a.Input,args:[{isSignal:!0,alias:"thankYouMessage",required:!1}]}],agreementBefore:[{type:a.Input,args:[{isSignal:!0,alias:"agreementBefore",required:!1}]}],participationLabel:[{type:a.Input,args:[{isSignal:!0,alias:"participationLabel",required:!1}]}],participationHref:[{type:a.Input,args:[{isSignal:!0,alias:"participationHref",required:!1}]}],agreementAnd:[{type:a.Input,args:[{isSignal:!0,alias:"agreementAnd",required:!1}]}],rulesLabel:[{type:a.Input,args:[{isSignal:!0,alias:"rulesLabel",required:!1}]}],rulesHref:[{type:a.Input,args:[{isSignal:!0,alias:"rulesHref",required:!1}]}],agreementAfter:[{type:a.Input,args:[{isSignal:!0,alias:"agreementAfter",required:!1}]}],defaultAgreement:[{type:a.Input,args:[{isSignal:!0,alias:"defaultAgreement",required:!1}]}],yesReasons:[{type:a.Input,args:[{isSignal:!0,alias:"yesReasons",required:!1}]}],noReasons:[{type:a.Input,args:[{isSignal:!0,alias:"noReasons",required:!1}]}],genderOptions:[{type:a.Input,args:[{isSignal:!0,alias:"genderOptions",required:!1}]}],bordered:[{type:a.Input,args:[{isSignal:!0,alias:"bordered",required:!1}]}],submitted:[{type:a.Output,args:["submitted"]}],closed:[{type:a.Output,args:["closed"]}]}});class ae{el=h(z);destroyRef=h(D);toasts=h(ee);value=i("",{...ngDevMode?{debugName:"value"}:{},alias:"dgaCopy"});target=i("",...ngDevMode?[{debugName:"target"}]:[]);successLabel=i("",...ngDevMode?[{debugName:"successLabel"}]:[]);message=i("",...ngDevMode?[{debugName:"message"}]:[]);toastTitle=i("",...ngDevMode?[{debugName:"toastTitle"}]:[]);showToast=i(!0,{...ngDevMode?{debugName:"showToast"}:{},transform:u});duration=i(2e3,...ngDevMode?[{debugName:"duration"}]:[]);copied=v();status=b(null,...ngDevMode?[{debugName:"status"}]:[]);restoreTimer=null;labelEl=null;previousLabel="";iconSlot=null;previousIconHtml="";constructor(){Ns(),this.destroyRef.onDestroy(()=>this.clearTimer())}async onClick(e){e.preventDefault();const t=this.resolveText();!t||!await At(t)||(this.flash(),this.copied.emit(t),this.notify())}static writeText(e){return At(e)}notify(){const e=st(),t=this.message()||this.successLabel()||(e?"تم نسخ المحتوى إلى الحافظة":"Content copied to clipboard");ks(t),this.showToast()&&this.toasts.copied(t,this.toastTitle()||(e?"تم النسخ":"Copied"))}resolveText(){const e=this.value().trim();if(e)return e;const t=this.target().trim();if(t)return document.querySelector(t)?.textContent?.trim()??"";const s=this.el.nativeElement;return(s.closest("[dga-code], .dga-code, dga-code")?.querySelector("code")??s.parentElement?.querySelector("code"))?.textContent?.trim()??""}flash(){this.clearTimer(),this.status.set("success");const e=this.el.nativeElement;this.labelEl=e.querySelector(".dga-copy-label, [dgaCopyLabel]")??e.querySelector("span:not([aria-hidden]):not(dga-icon span)"),this.labelEl&&this.successLabel()&&(this.previousLabel=this.labelEl.textContent??"",this.labelEl.textContent=this.successLabel());const t=e.querySelector("dga-icon");this.iconSlot=t?.querySelector("span:first-child")??e.querySelector("dga-icon, i, svg"),this.iconSlot&&(this.previousIconHtml=this.iconSlot.innerHTML,this.iconSlot.innerHTML=Oe.check,this.iconSlot.classList.add("text-fg-success")),this.restoreTimer=setTimeout(()=>this.restore(),this.duration())}restore(){this.status.set(null),this.labelEl&&this.successLabel()&&(this.labelEl.textContent=this.previousLabel),this.iconSlot&&(this.iconSlot.innerHTML=this.previousIconHtml,this.iconSlot.classList.remove("text-fg-success")),this.labelEl=null,this.iconSlot=null,this.restoreTimer=null}clearTimer(){this.restoreTimer!==null&&(clearTimeout(this.restoreTimer),this.restoreTimer=null)}static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:ae,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:ae,isStandalone:!0,selector:"button[dgaCopy], a[dgaCopy]",inputs:{value:{classPropertyName:"value",publicName:"dgaCopy",isSignal:!0,isRequired:!1,transformFunction:null},target:{classPropertyName:"target",publicName:"target",isSignal:!0,isRequired:!1,transformFunction:null},successLabel:{classPropertyName:"successLabel",publicName:"successLabel",isSignal:!0,isRequired:!1,transformFunction:null},message:{classPropertyName:"message",publicName:"message",isSignal:!0,isRequired:!1,transformFunction:null},toastTitle:{classPropertyName:"toastTitle",publicName:"toastTitle",isSignal:!0,isRequired:!1,transformFunction:null},showToast:{classPropertyName:"showToast",publicName:"showToast",isSignal:!0,isRequired:!1,transformFunction:null},duration:{classPropertyName:"duration",publicName:"duration",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{copied:"copied"},host:{listeners:{click:"onClick($event)"},properties:{"attr.data-status":"status() || null","attr.aria-live":'"polite"'},classAttribute:"dga-copy"},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:ae,decorators:[{type:V,args:[{selector:"button[dgaCopy], a[dgaCopy]",standalone:!0,host:{class:"dga-copy","[attr.data-status]":"status() || null","[attr.aria-live]":'"polite"'}}]}],ctorParameters:()=>[],propDecorators:{value:[{type:a.Input,args:[{isSignal:!0,alias:"dgaCopy",required:!1}]}],target:[{type:a.Input,args:[{isSignal:!0,alias:"target",required:!1}]}],successLabel:[{type:a.Input,args:[{isSignal:!0,alias:"successLabel",required:!1}]}],message:[{type:a.Input,args:[{isSignal:!0,alias:"message",required:!1}]}],toastTitle:[{type:a.Input,args:[{isSignal:!0,alias:"toastTitle",required:!1}]}],showToast:[{type:a.Input,args:[{isSignal:!0,alias:"showToast",required:!1}]}],duration:[{type:a.Input,args:[{isSignal:!0,alias:"duration",required:!1}]}],copied:[{type:a.Output,args:["copied"]}],onClick:[{type:L,args:["click",["$event"]]}]}});async function At(d){try{if(typeof navigator<"u"&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(d),!0}catch{}return ws(d)}function ws(d){if(typeof document>"u")return!1;const e=document.createElement("textarea");e.value=d,e.setAttribute("readonly",""),e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();let t=!1;try{t=document.execCommand("copy")}catch{t=!1}return document.body.removeChild(e),t}let G=null;function ks(d){typeof document>"u"||!d||(G||(G=document.createElement("div"),G.setAttribute("aria-live","polite"),G.setAttribute("aria-atomic","true"),G.className="sr-only",document.body.appendChild(G)),G.textContent="",requestAnimationFrame(()=>{G&&(G.textContent=d)}))}let Rt=!1;function Ns(){if(Rt||typeof document>"u")return;Rt=!0;const d=document.createElement("style");d.setAttribute("data-dga-copy",""),d.textContent=`
3555
+ `,changeDetection:m.OnPush,host:{class:"block","[attr.data-phase]":"phase()","[attr.data-answer]":"answer() || null"}}]}],propDecorators:{question:[{type:a.Input,args:[{isSignal:!0,alias:"question",required:!1}]}],yesLabel:[{type:a.Input,args:[{isSignal:!0,alias:"yesLabel",required:!1}]}],noLabel:[{type:a.Input,args:[{isSignal:!0,alias:"noLabel",required:!1}]}],closeLabel:[{type:a.Input,args:[{isSignal:!0,alias:"closeLabel",required:!1}]}],whyLabel:[{type:a.Input,args:[{isSignal:!0,alias:"whyLabel",required:!1}]}],whyHint:[{type:a.Input,args:[{isSignal:!0,alias:"whyHint",required:!1}]}],genderLabel:[{type:a.Input,args:[{isSignal:!0,alias:"genderLabel",required:!1}]}],commentLabel:[{type:a.Input,args:[{isSignal:!0,alias:"commentLabel",required:!1}]}],commentPlaceholder:[{type:a.Input,args:[{isSignal:!0,alias:"commentPlaceholder",required:!1}]}],submitLabel:[{type:a.Input,args:[{isSignal:!0,alias:"submitLabel",required:!1}]}],statistic:[{type:a.Input,args:[{isSignal:!0,alias:"statistic",required:!1}]}],thankYouMessage:[{type:a.Input,args:[{isSignal:!0,alias:"thankYouMessage",required:!1}]}],agreementBefore:[{type:a.Input,args:[{isSignal:!0,alias:"agreementBefore",required:!1}]}],participationLabel:[{type:a.Input,args:[{isSignal:!0,alias:"participationLabel",required:!1}]}],participationHref:[{type:a.Input,args:[{isSignal:!0,alias:"participationHref",required:!1}]}],agreementAnd:[{type:a.Input,args:[{isSignal:!0,alias:"agreementAnd",required:!1}]}],rulesLabel:[{type:a.Input,args:[{isSignal:!0,alias:"rulesLabel",required:!1}]}],rulesHref:[{type:a.Input,args:[{isSignal:!0,alias:"rulesHref",required:!1}]}],agreementAfter:[{type:a.Input,args:[{isSignal:!0,alias:"agreementAfter",required:!1}]}],agreementLinks:[{type:a.Input,args:[{isSignal:!0,alias:"agreementLinks",required:!1}]}],defaultAgreement:[{type:a.Input,args:[{isSignal:!0,alias:"defaultAgreement",required:!1}]}],ageLabel:[{type:a.Input,args:[{isSignal:!0,alias:"ageLabel",required:!1}]}],ageOptions:[{type:a.Input,args:[{isSignal:!0,alias:"ageOptions",required:!1}]}],yesReasons:[{type:a.Input,args:[{isSignal:!0,alias:"yesReasons",required:!1}]}],noReasons:[{type:a.Input,args:[{isSignal:!0,alias:"noReasons",required:!1}]}],genderOptions:[{type:a.Input,args:[{isSignal:!0,alias:"genderOptions",required:!1}]}],bordered:[{type:a.Input,args:[{isSignal:!0,alias:"bordered",required:!1}]}],submitted:[{type:a.Output,args:["submitted"]}],closed:[{type:a.Output,args:["closed"]}]}});class ae{el=h(z);destroyRef=h(D);toasts=h(ee);value=i("",{...ngDevMode?{debugName:"value"}:{},alias:"dgaCopy"});target=i("",...ngDevMode?[{debugName:"target"}]:[]);successLabel=i("",...ngDevMode?[{debugName:"successLabel"}]:[]);message=i("",...ngDevMode?[{debugName:"message"}]:[]);toastTitle=i("",...ngDevMode?[{debugName:"toastTitle"}]:[]);showToast=i(!0,{...ngDevMode?{debugName:"showToast"}:{},transform:u});duration=i(2e3,...ngDevMode?[{debugName:"duration"}]:[]);copied=v();status=b(null,...ngDevMode?[{debugName:"status"}]:[]);restoreTimer=null;labelEl=null;previousLabel="";iconSlot=null;previousIconHtml="";constructor(){Ns(),this.destroyRef.onDestroy(()=>this.clearTimer())}async onClick(e){e.preventDefault();const t=this.resolveText();!t||!await At(t)||(this.flash(),this.copied.emit(t),this.notify())}static writeText(e){return At(e)}notify(){const e=st(),t=this.message()||this.successLabel()||(e?"تم نسخ المحتوى إلى الحافظة":"Content copied to clipboard");ks(t),this.showToast()&&this.toasts.copied(t,this.toastTitle()||(e?"تم النسخ":"Copied"))}resolveText(){const e=this.value().trim();if(e)return e;const t=this.target().trim();if(t)return document.querySelector(t)?.textContent?.trim()??"";const s=this.el.nativeElement;return(s.closest("[dga-code], .dga-code, dga-code")?.querySelector("code")??s.parentElement?.querySelector("code"))?.textContent?.trim()??""}flash(){this.clearTimer(),this.status.set("success");const e=this.el.nativeElement;this.labelEl=e.querySelector(".dga-copy-label, [dgaCopyLabel]")??e.querySelector("span:not([aria-hidden]):not(dga-icon span)"),this.labelEl&&this.successLabel()&&(this.previousLabel=this.labelEl.textContent??"",this.labelEl.textContent=this.successLabel());const t=e.querySelector("dga-icon");this.iconSlot=t?.querySelector("span:first-child")??e.querySelector("dga-icon, i, svg"),this.iconSlot&&(this.previousIconHtml=this.iconSlot.innerHTML,this.iconSlot.innerHTML=Oe.check,this.iconSlot.classList.add("text-fg-success")),this.restoreTimer=setTimeout(()=>this.restore(),this.duration())}restore(){this.status.set(null),this.labelEl&&this.successLabel()&&(this.labelEl.textContent=this.previousLabel),this.iconSlot&&(this.iconSlot.innerHTML=this.previousIconHtml,this.iconSlot.classList.remove("text-fg-success")),this.labelEl=null,this.iconSlot=null,this.restoreTimer=null}clearTimer(){this.restoreTimer!==null&&(clearTimeout(this.restoreTimer),this.restoreTimer=null)}static ɵfac=a.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:ae,deps:[],target:a.ɵɵFactoryTarget.Directive});static ɵdir=a.ɵɵngDeclareDirective({minVersion:"17.1.0",version:"22.1.5",type:ae,isStandalone:!0,selector:"button[dgaCopy], a[dgaCopy]",inputs:{value:{classPropertyName:"value",publicName:"dgaCopy",isSignal:!0,isRequired:!1,transformFunction:null},target:{classPropertyName:"target",publicName:"target",isSignal:!0,isRequired:!1,transformFunction:null},successLabel:{classPropertyName:"successLabel",publicName:"successLabel",isSignal:!0,isRequired:!1,transformFunction:null},message:{classPropertyName:"message",publicName:"message",isSignal:!0,isRequired:!1,transformFunction:null},toastTitle:{classPropertyName:"toastTitle",publicName:"toastTitle",isSignal:!0,isRequired:!1,transformFunction:null},showToast:{classPropertyName:"showToast",publicName:"showToast",isSignal:!0,isRequired:!1,transformFunction:null},duration:{classPropertyName:"duration",publicName:"duration",isSignal:!0,isRequired:!1,transformFunction:null}},outputs:{copied:"copied"},host:{listeners:{click:"onClick($event)"},properties:{"attr.data-status":"status() || null","attr.aria-live":'"polite"'},classAttribute:"dga-copy"},ngImport:a})}a.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"22.1.5",ngImport:a,type:ae,decorators:[{type:V,args:[{selector:"button[dgaCopy], a[dgaCopy]",standalone:!0,host:{class:"dga-copy","[attr.data-status]":"status() || null","[attr.aria-live]":'"polite"'}}]}],ctorParameters:()=>[],propDecorators:{value:[{type:a.Input,args:[{isSignal:!0,alias:"dgaCopy",required:!1}]}],target:[{type:a.Input,args:[{isSignal:!0,alias:"target",required:!1}]}],successLabel:[{type:a.Input,args:[{isSignal:!0,alias:"successLabel",required:!1}]}],message:[{type:a.Input,args:[{isSignal:!0,alias:"message",required:!1}]}],toastTitle:[{type:a.Input,args:[{isSignal:!0,alias:"toastTitle",required:!1}]}],showToast:[{type:a.Input,args:[{isSignal:!0,alias:"showToast",required:!1}]}],duration:[{type:a.Input,args:[{isSignal:!0,alias:"duration",required:!1}]}],copied:[{type:a.Output,args:["copied"]}],onClick:[{type:L,args:["click",["$event"]]}]}});async function At(d){try{if(typeof navigator<"u"&&navigator.clipboard?.writeText)return await navigator.clipboard.writeText(d),!0}catch{}return ws(d)}function ws(d){if(typeof document>"u")return!1;const e=document.createElement("textarea");e.value=d,e.setAttribute("readonly",""),e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select();let t=!1;try{t=document.execCommand("copy")}catch{t=!1}return document.body.removeChild(e),t}let G=null;function ks(d){typeof document>"u"||!d||(G||(G=document.createElement("div"),G.setAttribute("aria-live","polite"),G.setAttribute("aria-atomic","true"),G.className="sr-only",document.body.appendChild(G)),G.textContent="",requestAnimationFrame(()=>{G&&(G.textContent=d)}))}let Rt=!1;function Ns(){if(Rt||typeof document>"u")return;Rt=!0;const d=document.createElement("style");d.setAttribute("data-dga-copy",""),d.textContent=`
3506
3556
  .dga-copy {
3507
3557
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease,
3508
3558
  box-shadow 180ms ease, transform 180ms ease;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a.nemreen/dga-ui",
3
- "version": "0.3.10",
3
+ "version": "0.3.12",
4
4
  "description": "DGA Angular UI library — standalone forms, overlays, navigation, and portal shell with RTL-first Tailwind styling",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -298,7 +298,7 @@ declare class DgaHeader {
298
298
  /** Emits when a language is chosen from the locale menu. */
299
299
  readonly localeSelect: _angular_core.OutputEmitterRef<string>;
300
300
  /** Emits on click of any top-level nav link or dropdown link (desktop + mobile). */
301
- readonly navLinkClick: _angular_core.OutputEmitterRef<DgaNavItem | DgaNavLink>;
301
+ readonly navLinkClick: _angular_core.OutputEmitterRef<DgaNavLink | DgaNavItem>;
302
302
  readonly mobileOpen: _angular_core.WritableSignal<boolean>;
303
303
  readonly openDropdown: _angular_core.WritableSignal<number | null>;
304
304
  readonly searchOpen: _angular_core.WritableSignal<boolean>;
@@ -39,7 +39,7 @@ declare class DgaPageTransition {
39
39
  */
40
40
  readonly key: _angular_core.InputSignal<string | number | null>;
41
41
  readonly phase: _angular_core.WritableSignal<"idle" | "enter">;
42
- readonly resolvedName: _angular_core.Signal<"none" | "fade-up" | "slide-stack" | "curtain-wipe" | "zoom-blur" | "book-flip" | "circle-reveal" | "shared-axis" | "glitch" | "iris-open" | "split-reveal" | "stagger-cascade" | "liquid-swipe" | "push-depth" | "skew-slide" | "bounce-in" | "film-strip" | "portal-warp" | "ripple-expand" | "origami-fold" | "swipe-cards">;
42
+ readonly resolvedName: _angular_core.Signal<"fade-up" | "slide-stack" | "curtain-wipe" | "zoom-blur" | "book-flip" | "circle-reveal" | "shared-axis" | "glitch" | "iris-open" | "split-reveal" | "stagger-cascade" | "liquid-swipe" | "push-depth" | "skew-slide" | "bounce-in" | "film-strip" | "portal-warp" | "ripple-expand" | "origami-fold" | "swipe-cards" | "none">;
43
43
  readonly durationCss: _angular_core.Signal<string>;
44
44
  private htmlAttr;
45
45
  private keyPrimed;
@@ -1049,7 +1049,7 @@ declare class DgaToast implements OnDestroy {
1049
1049
  readonly edgeTop: _angular_core.Signal<"calc(var(--dga-announcement-offset, 0px) + 1rem)" | null>;
1050
1050
  readonly edgeBottom: _angular_core.Signal<"1rem" | null>;
1051
1051
  readonly iconName: _angular_core.Signal<DgaIconName>;
1052
- readonly iconTone: _angular_core.Signal<"warning" | "error" | "success" | "current" | "muted">;
1052
+ readonly iconTone: _angular_core.Signal<"error" | "success" | "warning" | "muted" | "current">;
1053
1053
  readonly showCountdown: _angular_core.Signal<boolean>;
1054
1054
  readonly reduceMotion: _angular_core.WritableSignal<boolean>;
1055
1055
  readonly ringDashOffset: _angular_core.Signal<number>;
@@ -1681,7 +1681,7 @@ declare class DgaAlert {
1681
1681
  readonly titleClasses: _angular_core.Signal<string>;
1682
1682
  readonly descriptionClasses: _angular_core.Signal<string>;
1683
1683
  readonly iconName: _angular_core.Signal<DgaIconName>;
1684
- readonly iconTone: _angular_core.Signal<"warning" | "error" | "success" | "current" | "muted">;
1684
+ readonly iconTone: _angular_core.Signal<"error" | "success" | "warning" | "muted" | "current">;
1685
1685
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaAlert, never>;
1686
1686
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaAlert, "dga-alert", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "display": { "alias": "display"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, ["*", "[dgaAlertActions]"], true, never>;
1687
1687
  }
@@ -1737,6 +1737,7 @@ interface DgaPageFeedbackSubmit {
1737
1737
  answer: DgaPageFeedbackAnswer;
1738
1738
  reasons: string[];
1739
1739
  gender: string;
1740
+ ageRange: string;
1740
1741
  comment: string;
1741
1742
  }
1742
1743
  interface DgaPageFeedbackAgreementLink {
@@ -1759,6 +1760,7 @@ declare class DgaPageFeedback {
1759
1760
  readonly submitLabel: _angular_core.InputSignal<string>;
1760
1761
  readonly statistic: _angular_core.InputSignal<string>;
1761
1762
  readonly thankYouMessage: _angular_core.InputSignal<string>;
1763
+ /** Text before the first agreement link. */
1762
1764
  readonly agreementBefore: _angular_core.InputSignal<string>;
1763
1765
  readonly participationLabel: _angular_core.InputSignal<string>;
1764
1766
  readonly participationHref: _angular_core.InputSignal<string>;
@@ -1766,8 +1768,15 @@ declare class DgaPageFeedback {
1766
1768
  readonly rulesLabel: _angular_core.InputSignal<string>;
1767
1769
  readonly rulesHref: _angular_core.InputSignal<string>;
1768
1770
  readonly agreementAfter: _angular_core.InputSignal<string>;
1771
+ /**
1772
+ * Extra / override links for the e-participation footer.
1773
+ * When empty, `participationLabel` + `rulesLabel` are used.
1774
+ */
1775
+ readonly agreementLinks: _angular_core.InputSignal<DgaPageFeedbackAgreementLink[]>;
1769
1776
  /** When false, only projected `[dgaPageFeedbackAgreement]` content is shown. */
1770
1777
  readonly defaultAgreement: _angular_core.InputSignalWithTransform<boolean, unknown>;
1778
+ readonly ageLabel: _angular_core.InputSignal<string>;
1779
+ readonly ageOptions: _angular_core.InputSignal<DgaPageFeedbackOption[]>;
1771
1780
  readonly yesReasons: _angular_core.InputSignal<DgaPageFeedbackOption[]>;
1772
1781
  readonly noReasons: _angular_core.InputSignal<DgaPageFeedbackOption[]>;
1773
1782
  readonly genderOptions: _angular_core.InputSignal<DgaPageFeedbackOption[]>;
@@ -1778,6 +1787,7 @@ declare class DgaPageFeedback {
1778
1787
  readonly phase: _angular_core.WritableSignal<DgaPageFeedbackPhase>;
1779
1788
  readonly reasons: _angular_core.WritableSignal<string[]>;
1780
1789
  readonly gender: _angular_core.WritableSignal<string>;
1790
+ readonly ageRange: _angular_core.WritableSignal<string>;
1781
1791
  readonly comment: _angular_core.WritableSignal<string>;
1782
1792
  readonly dismissed: _angular_core.WritableSignal<boolean>;
1783
1793
  readonly statusMessage: _angular_core.WritableSignal<string>;
@@ -1785,8 +1795,10 @@ declare class DgaPageFeedback {
1785
1795
  private readonly uid;
1786
1796
  readonly commentId: string;
1787
1797
  readonly genderName: string;
1798
+ readonly ageName: string;
1788
1799
  readonly activeReasons: _angular_core.Signal<DgaPageFeedbackOption[]>;
1789
1800
  readonly canSubmit: _angular_core.Signal<boolean>;
1801
+ readonly resolvedAgreementLinks: _angular_core.Signal<DgaPageFeedbackAgreementLink[]>;
1790
1802
  readonly showDefaultAgreement: _angular_core.Signal<boolean>;
1791
1803
  readonly panelClasses: _angular_core.Signal<string>;
1792
1804
  choose(value: DgaPageFeedbackAnswer): void;
@@ -1797,7 +1809,7 @@ declare class DgaPageFeedback {
1797
1809
  close(): void;
1798
1810
  safeHref(href: string | undefined | null): string;
1799
1811
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DgaPageFeedback, never>;
1800
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaPageFeedback, "dga-page-feedback", never, { "question": { "alias": "question"; "required": false; "isSignal": true; }; "yesLabel": { "alias": "yesLabel"; "required": false; "isSignal": true; }; "noLabel": { "alias": "noLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "whyLabel": { "alias": "whyLabel"; "required": false; "isSignal": true; }; "whyHint": { "alias": "whyHint"; "required": false; "isSignal": true; }; "genderLabel": { "alias": "genderLabel"; "required": false; "isSignal": true; }; "commentLabel": { "alias": "commentLabel"; "required": false; "isSignal": true; }; "commentPlaceholder": { "alias": "commentPlaceholder"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "statistic": { "alias": "statistic"; "required": false; "isSignal": true; }; "thankYouMessage": { "alias": "thankYouMessage"; "required": false; "isSignal": true; }; "agreementBefore": { "alias": "agreementBefore"; "required": false; "isSignal": true; }; "participationLabel": { "alias": "participationLabel"; "required": false; "isSignal": true; }; "participationHref": { "alias": "participationHref"; "required": false; "isSignal": true; }; "agreementAnd": { "alias": "agreementAnd"; "required": false; "isSignal": true; }; "rulesLabel": { "alias": "rulesLabel"; "required": false; "isSignal": true; }; "rulesHref": { "alias": "rulesHref"; "required": false; "isSignal": true; }; "agreementAfter": { "alias": "agreementAfter"; "required": false; "isSignal": true; }; "defaultAgreement": { "alias": "defaultAgreement"; "required": false; "isSignal": true; }; "yesReasons": { "alias": "yesReasons"; "required": false; "isSignal": true; }; "noReasons": { "alias": "noReasons"; "required": false; "isSignal": true; }; "genderOptions": { "alias": "genderOptions"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, { "submitted": "submitted"; "closed": "closed"; }, never, ["[dgaPageFeedbackAgreement]"], true, never>;
1812
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DgaPageFeedback, "dga-page-feedback", never, { "question": { "alias": "question"; "required": false; "isSignal": true; }; "yesLabel": { "alias": "yesLabel"; "required": false; "isSignal": true; }; "noLabel": { "alias": "noLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "whyLabel": { "alias": "whyLabel"; "required": false; "isSignal": true; }; "whyHint": { "alias": "whyHint"; "required": false; "isSignal": true; }; "genderLabel": { "alias": "genderLabel"; "required": false; "isSignal": true; }; "commentLabel": { "alias": "commentLabel"; "required": false; "isSignal": true; }; "commentPlaceholder": { "alias": "commentPlaceholder"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "statistic": { "alias": "statistic"; "required": false; "isSignal": true; }; "thankYouMessage": { "alias": "thankYouMessage"; "required": false; "isSignal": true; }; "agreementBefore": { "alias": "agreementBefore"; "required": false; "isSignal": true; }; "participationLabel": { "alias": "participationLabel"; "required": false; "isSignal": true; }; "participationHref": { "alias": "participationHref"; "required": false; "isSignal": true; }; "agreementAnd": { "alias": "agreementAnd"; "required": false; "isSignal": true; }; "rulesLabel": { "alias": "rulesLabel"; "required": false; "isSignal": true; }; "rulesHref": { "alias": "rulesHref"; "required": false; "isSignal": true; }; "agreementAfter": { "alias": "agreementAfter"; "required": false; "isSignal": true; }; "agreementLinks": { "alias": "agreementLinks"; "required": false; "isSignal": true; }; "defaultAgreement": { "alias": "defaultAgreement"; "required": false; "isSignal": true; }; "ageLabel": { "alias": "ageLabel"; "required": false; "isSignal": true; }; "ageOptions": { "alias": "ageOptions"; "required": false; "isSignal": true; }; "yesReasons": { "alias": "yesReasons"; "required": false; "isSignal": true; }; "noReasons": { "alias": "noReasons"; "required": false; "isSignal": true; }; "genderOptions": { "alias": "genderOptions"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, { "submitted": "submitted"; "closed": "closed"; }, never, ["[dgaPageFeedbackAgreement]"], true, never>;
1801
1813
  }
1802
1814
 
1803
1815
  type DgaRatingSize = 'sm' | 'md' | 'lg';
@@ -2304,7 +2316,7 @@ declare class DgaSideNav {
2304
2316
  /**
2305
2317
  * `auto` = horizontal chips below lg; `vertical` = always sidebar (use in drawers).
2306
2318
  */
2307
- readonly layout: _angular_core.InputSignal<"auto" | "vertical">;
2319
+ readonly layout: _angular_core.InputSignal<"vertical" | "auto">;
2308
2320
  readonly label: _angular_core.InputSignal<string>;
2309
2321
  readonly toggleLabel: _angular_core.InputSignal<string>;
2310
2322
  readonly select: _angular_core.OutputEmitterRef<DgaSideNavItem>;
@@ -2409,9 +2421,9 @@ declare class DgaNavRail {
2409
2421
  readonly smoothScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
2410
2422
  readonly select: _angular_core.OutputEmitterRef<DgaNavRailItem>;
2411
2423
  readonly expandChange: _angular_core.OutputEmitterRef<boolean>;
2412
- readonly edgeAttr: _angular_core.Signal<"end" | "start" | "left" | "right" | null>;
2424
+ readonly edgeAttr: _angular_core.Signal<"start" | "end" | "left" | "right" | null>;
2413
2425
  readonly offsetCss: _angular_core.Signal<string>;
2414
- readonly tooltipPlacement: _angular_core.Signal<"end" | "start">;
2426
+ readonly tooltipPlacement: _angular_core.Signal<"start" | "end">;
2415
2427
  readonly iconSize: _angular_core.Signal<"sm" | "md" | "lg">;
2416
2428
  readonly expandIcon: _angular_core.Signal<"chevronLeft" | "chevronRight">;
2417
2429
  readonly listGapClass: _angular_core.Signal<"gap-xs" | "gap-sm" | "gap-md">;