plutonium 0.56.2 → 0.56.3

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.
@@ -161,7 +161,7 @@ this.ifd0Offset: ${this.ifd0Offset}, file.byteLength: ${e.byteLength}`),e.tiff&&
161
161
  </svg>
162
162
  `)}function yh(i){let e={color:"#838999",icon:$E()};if(!i)return e;let t=i.split("/")[0],r=i.split("/")[1];return t==="text"?{color:"#5a5e69",icon:VE()}:t==="image"?{color:"#686de0",icon:UE()}:t==="audio"?{color:"#068dbb",icon:zE()}:t==="video"?{color:"#19af67",icon:HE()}:t==="application"&&r==="pdf"?{color:"#e25149",icon:jE()}:t==="application"&&["zip","x-7z-compressed","x-rar-compressed","x-tar","x-gzip","x-apple-diskimage"].indexOf(r)!==-1?{color:"#00C469",icon:qE()}:e}var Ma=class extends ${static targets=["thumbnail","thumbnailLink"];static values={mimeType:String,thumbnailUrl:String};connect(){this.hasThumbnailTarget&&(this.thumbnailUrlValue?this.useThumbnailPreview():this.useMimeIconPreview())}remove(){this.element.remove()}useThumbnailPreview(){let i=tt.fromTemplate(`
163
163
  <img src="${this.thumbnailUrlValue}" class="w-full h-full object-cover" />
164
- `);this.thumbnailLinkTarget.innerHTML=null,this.thumbnailLinkTarget.appendChild(i)}useMimeIconPreview(){let i=yh(this.mimeTypeValue);i.icon.classList.add("w-3/5","h-4/5","rounded-lg","shadow-lg","bg-white","p-2"),this.thumbnailLinkTarget.classList.add("flex","items-center","justify-center"),this.thumbnailLinkTarget.style.backgroundColor=i.color,this.thumbnailLinkTarget.innerHTML=null,this.thumbnailLinkTarget.appendChild(i.icon)}};var Ia=class extends ${connect(){}append(i){this.element.appendChild(i)}clear(){this.element.innerHTML=null}};var Xg=0,Da=class extends ${static targets=["scroll"];connect(){this.beforeRender=this.beforeRender.bind(this),this.afterRender=this.afterRender.bind(this),document.addEventListener("turbo:before-render",this.beforeRender),document.addEventListener("turbo:render",this.afterRender)}disconnect(){document.removeEventListener("turbo:before-render",this.beforeRender),document.removeEventListener("turbo:render",this.afterRender)}beforeRender(){this.hasScrollTarget&&(Xg=this.scrollTarget.scrollTop)}afterRender(){this.hasScrollTarget&&(this.scrollTarget.scrollTop=Xg)}};var Na=class extends ${static targets=["password","checkbox"];connect(){this.checkboxTarget.checked=!1}toggle(){this.passwordTarget.type=="password"?this.passwordTargets.forEach(i=>i.type="text"):this.passwordTargets.forEach(i=>i.type="password")}};var Ba=class extends ${connect(){this.originalScrollPosition=window.scrollY,this.originalOverflow=document.body.style.overflow,this.bodyStateRestored=!1,this._closing=!1,document.body.style.overflow="hidden",this.element.showModal(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.element.setAttribute("data-open","")})}),this.onCancel=this.#e.bind(this),this.onClose=this.#t.bind(this),this.onRequestClose=()=>this.#i(),this.element.addEventListener("cancel",this.onCancel),this.element.addEventListener("close",this.onClose),this.element.addEventListener("modal:request-close",this.onRequestClose)}disconnect(){this.element.removeEventListener("cancel",this.onCancel),this.element.removeEventListener("close",this.onClose),this.element.removeEventListener("modal:request-close",this.onRequestClose),this.#r()}close(){this.#i()}#e(i){i.target===this.element&&(i.defaultPrevented||(i.preventDefault(),this.#i()))}#t(){this.#r()}async#i(){if(this._closing)return;this._closing=!0,this.element.removeAttribute("data-open");let i=this.element.getAnimations({subtree:!0});await Promise.allSettled(i.map(e=>e.finished)),this.element.close()}#r(){this.bodyStateRestored||(this.bodyStateRestored=!0,document.body.style.overflow=this.originalOverflow||"",window.scrollTo(0,this.originalScrollPosition))}};var Ua=class extends ${static targets=["container","pair","template","addButton","keyInput","valueInput"];static values={limit:Number};connect(){this.updateIndices(),this.updateAddButtonState()}addPair(i){if(i.preventDefault(),this.pairTargets.length>=this.limitValue)return;let t=this.templateTarget.content.cloneNode(!0),r=this.pairTargets.length;this.updatePairIndices(t,r),this.containerTarget.appendChild(t),this.updateIndices(),this.updateAddButtonState();let s=this.containerTarget.lastElementChild.querySelector('[data-key-value-store-target="keyInput"]');s&&s.focus()}removePair(i){i.preventDefault();let e=i.target.closest('[data-key-value-store-target="pair"]');e&&(e.remove(),this.updateIndices(),this.updateAddButtonState())}updateIndices(){this.pairTargets.forEach((i,e)=>{let t=i.querySelector('[data-key-value-store-target="keyInput"]'),r=i.querySelector('[data-key-value-store-target="valueInput"]');t&&(t.name=t.name.replace(/\[\d+\]/,`[${e}]`),t.id=t.id.replace(/_\d+_/,`_${e}_`)),r&&(r.name=r.name.replace(/\[\d+\]/,`[${e}]`),r.id=r.id.replace(/_\d+_/,`_${e}_`))})}updatePairIndices(i,e){i.querySelectorAll("input").forEach(r=>{r.name&&(r.name=r.name.replace("__INDEX__",e)),r.id&&(r.id=r.id.replace("___INDEX___",`_${e}_`))})}updateAddButtonState(){let i=this.addButtonTarget;this.pairTargets.length>=this.limitValue?(i.disabled=!0,i.classList.add("opacity-50","cursor-not-allowed")):(i.disabled=!1,i.classList.remove("opacity-50","cursor-not-allowed"))}toJSON(){let i={};return this.pairTargets.forEach(e=>{let t=e.querySelector('[data-key-value-store-target="keyInput"]'),r=e.querySelector('[data-key-value-store-target="valueInput"]');t&&r&&t.value.trim()&&(i[t.value.trim()]=r.value)}),JSON.stringify(i)}toObject(){let i={};return this.pairTargets.forEach(e=>{let t=e.querySelector('[data-key-value-store-target="keyInput"]'),r=e.querySelector('[data-key-value-store-target="valueInput"]');t&&r&&t.value.trim()&&(i[t.value.trim()]=r.value)}),i}};var za=class extends ${static targets=["checkbox","checkboxAll","toolbar","selectedCount","actionButton","filterPills"];toggle(){this.updateUI()}toggleAll(i){let e=i.target.checked;this.checkboxTargets.forEach(t=>t.checked=e),this.updateUI()}updateUI(){let i=this.checked,e=this.checkboxTargets.length;this.hasCheckboxAllTarget&&(this.checkboxAllTarget.checked=i.length===e&&e>0,this.checkboxAllTarget.indeterminate=i.length>0&&i.length<e),this.hasToolbarTarget&&this.toolbarTarget.classList.toggle("hidden",i.length===0),this.hasFilterPillsTarget&&this.filterPillsTarget.classList.toggle("hidden",i.length>0),this.hasSelectedCountTarget&&(this.selectedCountTarget.textContent=i.length),this.updateActionButtons()}updateActionButtons(){let i=this.checked,t=i.map(s=>s.value).map(s=>`ids[]=${encodeURIComponent(s)}`).join("&"),r=this.computeAllowedActions(i);this.actionButtonTargets.forEach(s=>{let n=s.dataset.bulkActionUrl,o=s.dataset.bulkActionName;n&&(s.href=t?`${n}?${t}`:n),s.style.display=r.has(o)?"":"none"})}computeAllowedActions(i){if(i.length===0)return new Set;let e=new Set(this.getAllowedActionsForCheckbox(i[0]));for(let t=1;t<i.length;t++){let r=this.getAllowedActionsForCheckbox(i[t]);e=new Set([...e].filter(s=>r.includes(s)))}return e}getAllowedActionsForCheckbox(i){let e=i.dataset.allowedActions;return e?e.split(",").filter(t=>t):[]}clearSelection(){this.checkboxTargets.forEach(i=>i.checked=!1),this.hasCheckboxAllTarget&&(this.checkboxAllTarget.checked=!1,this.checkboxAllTarget.indeterminate=!1),this.updateUI()}get checked(){return this.checkboxTargets.filter(i=>i.checked)}get unchecked(){return this.checkboxTargets.filter(i=>!i.checked)}};var Ha=class extends ${static targets=["panel","backdrop"];connect(){this._onKeydown=this._onKeydown.bind(this)}disconnect(){this.isOpen&&(document.removeEventListener("keydown",this._onKeydown),this._unlockBodyScroll())}toggle(){this.isOpen?this.close():this.open()}open(){this.hasPanelTarget&&(this.panelTarget.setAttribute("data-open",""),this.panelTarget.setAttribute("aria-hidden","false")),this.hasBackdropTarget&&this.backdropTarget.setAttribute("data-open",""),this._lockBodyScroll(),document.addEventListener("keydown",this._onKeydown)}close(){this.hasPanelTarget&&(this.panelTarget.removeAttribute("data-open"),this.panelTarget.setAttribute("aria-hidden","true")),this.hasBackdropTarget&&this.backdropTarget.removeAttribute("data-open"),this._unlockBodyScroll(),document.removeEventListener("keydown",this._onKeydown)}_lockBodyScroll(){this._previousBodyOverflow==null&&(this._previousBodyOverflow=document.body.style.overflow,document.body.style.overflow="hidden")}_unlockBodyScroll(){this._previousBodyOverflow!=null&&(document.body.style.overflow=this._previousBodyOverflow,this._previousBodyOverflow=null)}clear(){this.element.querySelectorAll("input, select, textarea").forEach(e=>{e.type==="checkbox"||e.type==="radio"?e.checked=!1:e.tagName==="SELECT"?e.selectedIndex=0:e.type==="hidden"?e.dataset.controller==="flatpickr"&&(e.value=""):e.value=""}),this.element.querySelectorAll('[data-controller="flatpickr"]').forEach(e=>{let t=this.application.getControllerForElementAndIdentifier(e,"flatpickr");t?.picker&&t.picker.clear()});let i=this.element.querySelector("form");i&&i.requestSubmit()}get isOpen(){return this.hasPanelTarget&&this.panelTarget.hasAttribute("data-open")}_onKeydown(i){i.key==="Escape"&&this.close()}};var ja=class extends ${static values={maxHeight:{type:Number,default:0}};connect(){this.resize(),this.element.addEventListener("input",this.resize),window.addEventListener("resize",this.resize)}disconnect(){this.element.removeEventListener("input",this.resize),window.removeEventListener("resize",this.resize)}resize=()=>{let i=this.element,e=this.#e();i.style.height="auto",i.style.overflow="hidden";let t=i.scrollHeight;e>0&&t>e?(i.style.height=`${e}px`,i.style.overflow="auto"):i.style.height=`${t}px`};#e(){if(this.maxHeightValue>0)return this.maxHeightValue;let e=window.getComputedStyle(this.element).maxHeight;if(e&&e!=="none"){let t=parseFloat(e);if(!isNaN(t)&&t>0)return t}return 300}};var qa=class extends ${static targets=["source"];copy(i){let e=this.sourceTarget.value||this.sourceTarget.textContent,t=i.currentTarget,r=t.textContent;navigator.clipboard.writeText(e).then(()=>{t.textContent="Copied!",setTimeout(()=>{t.textContent=r},2e3)}).catch(s=>{console.warn("Clipboard API failed, using fallback:",s),this.fallbackCopy(e),t.textContent="Copied!",setTimeout(()=>{t.textContent=r},2e3)})}fallbackCopy(i){let e=document.createElement("textarea");e.value=i,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}};var $a=class extends ${static values={storageKey:{type:String,default:"pu_rail_pinned"}};connect(){localStorage.getItem(this.storageKeyValue)==="true"&&document.body.classList.add("pu-rail-pinned")}togglePin(){let i=document.body.classList.toggle("pu-rail-pinned");localStorage.setItem(this.storageKeyValue,i)}};var Va=class extends ${static targets=["trigger","panel"];static values={closeDelay:{type:Number,default:150}};connect(){this._closeTimer=null,this._open=!1,this._panel=null,this._panelHome=null,this._onPanelEnter=()=>{this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null)},this._onPanelLeave=()=>this.scheduleClose()}disconnect(){this._returnPanel()}open(){this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),!this._open&&(!this._panel&&!this.hasPanelTarget||(this._open=!0,this.element.dataset.flyoutOpen="true",this._portalPanel(),this._position()))}scheduleClose(){this._closeTimer&&clearTimeout(this._closeTimer),this._closeTimer=setTimeout(()=>this.close(),this.closeDelayValue)}close(){this._open&&(this._open=!1,delete this.element.dataset.flyoutOpen,this._returnPanel())}toggle(i){i.preventDefault(),this._open?this.close():this.open()}closeOnEsc(i){i.key==="Escape"&&this.close()}_portalPanel(){if(this._panel)return;let i=this.panelTarget;i&&(this._panel=i,this._panelHome=i.parentElement,i.addEventListener("mouseenter",this._onPanelEnter),i.addEventListener("mouseleave",this._onPanelLeave),document.body.appendChild(i),i.style.display="block")}_returnPanel(){if(!this._panel)return;let i=this._panel;i.removeEventListener("mouseenter",this._onPanelEnter),i.removeEventListener("mouseleave",this._onPanelLeave),i.style.position="",i.style.left="",i.style.top="",i.style.display="",this._panelHome&&document.contains(this._panelHome)?this._panelHome.appendChild(i):i.remove(),this._panel=null,this._panelHome=null}_position(){if(!this._panel||!this.hasTriggerTarget)return;let i=this._panel,e=this.triggerTarget.getBoundingClientRect();i.style.position="fixed",i.style.left=`${e.right+4}px`,i.style.top=`${e.top}px`,requestAnimationFrame(()=>{let t=i.getBoundingClientRect(),r=window.innerHeight;if(t.bottom>r-8){let s=t.bottom-(r-8),n=Math.max(8,parseFloat(i.style.top)-s);i.style.top=`${n}px`}})}};var Wa=class extends ${headerClick(i){if(!i.shiftKey)return;let t=i.currentTarget.dataset.tableHeaderMultiHref;t&&(i.preventDefault(),Turbo.visit(t))}};var Ga=class extends ${static targets=["panel"];connect(){this._onDocClick=this._onDocClick.bind(this)}toggle(i){i.preventDefault(),i.stopPropagation(),this.hasPanelTarget&&(!this.panelTarget.classList.toggle("hidden")?(document.addEventListener("click",this._onDocClick),this._onKey=t=>{t.key==="Escape"&&this._close()},document.addEventListener("keydown",this._onKey)):this._unbind())}_close(){this.hasPanelTarget&&this.panelTarget.classList.add("hidden"),this._unbind()}_unbind(){document.removeEventListener("click",this._onDocClick),this._onKey&&(document.removeEventListener("keydown",this._onKey),this._onKey=null)}_onDocClick(i){this.element.contains(i.target)||this._close()}};var Ka=class extends ${connect(){if(!("value"in this.element))return;let i=this.element.value;if(!i)return;let{hash:e}=window.location;e&&(this.element.value=i.split("#")[0]+e)}};var Xa=class extends ${click(i){i.target.closest("a, button, input, label, select, textarea, [data-row-click-ignore]")||this.element.querySelector('[data-row-click-target="show"]')?.click()}};var Ya=class extends ${static values={cookieName:String,cookiePath:{type:String,default:"/"}};select(i){let e=i.params.view;if(!e||!this.cookieNameValue)return;let t=3600*24*365,r=this.cookiePathValue||"/";document.cookie=`${this.cookieNameValue}=${encodeURIComponent(e)}; Path=${r}; Max-Age=${t}; SameSite=Lax`;let s=new URL(window.location.href);s.searchParams.delete("view"),window.location.href=s.toString()}};var Za=class extends ${static values={delay:{type:Number,default:300}};connect(){this._timer=null}disconnect(){this._timer&&clearTimeout(this._timer)}submit(){this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>{this.element.closest("form")?.requestSubmit()},this.delayValue)}};var Qa=class extends ${static targets=["confirmDialog"];static IGNORED_KEYS=new Set(["authenticity_token","return_to","pre_submit"]);static NON_EDITING_KEYS=new Set(["Tab","Escape","Shift","Control","Alt","Meta"]);connect(){this.dialog=this.element.closest("dialog"),this.dialog&&(this.baseline=null,this.forceClose=!1,this.submitting=!1,this.onFirstIntent=this.#t.bind(this),this.onCancel=this.#l.bind(this),this.onSubmit=this.#s.bind(this),this.onCloseButtonClick=this.#a.bind(this),this.onConfirmCancel=this.#p.bind(this),this.onKeydown=this.#n.bind(this),this.element.addEventListener("pointerdown",this.onFirstIntent,!0),this.element.addEventListener("keydown",this.onFirstIntent,!0),document.addEventListener("keydown",this.onKeydown,!0),this.dialog.addEventListener("cancel",this.onCancel,!0),this.element.addEventListener("submit",this.onSubmit),this.#e().forEach(i=>i.addEventListener("click",this.onCloseButtonClick,!0)),this.hasConfirmDialogTarget&&this.confirmDialogTarget.addEventListener("cancel",this.onConfirmCancel))}disconnect(){this.dialog&&(this.element.removeEventListener("pointerdown",this.onFirstIntent,!0),this.element.removeEventListener("keydown",this.onFirstIntent,!0),document.removeEventListener("keydown",this.onKeydown,!0),this.dialog.removeEventListener("cancel",this.onCancel,!0),this.element.removeEventListener("submit",this.onSubmit),this.#e().forEach(i=>i.removeEventListener("click",this.onCloseButtonClick,!0)),this.hasConfirmDialogTarget&&this.confirmDialogTarget.removeEventListener("cancel",this.onConfirmCancel))}discard(){this.forceClose=!0,this.#h(),this.dialog.dispatchEvent(new CustomEvent("modal:request-close"))}keepEditing(){this.#u()}#e(){return this.dialog?this.dialog.querySelectorAll('[data-action~="remote-modal#close"]'):[]}#t(i){this.baseline==null&&i.isTrusted&&(i.type==="keydown"&&this.constructor.NON_EDITING_KEYS.has(i.key)||(this.baseline=this.#i()))}#i(){let i=new FormData(this.element),e=encodeURIComponent;return[...i.entries()].filter(([t])=>!this.constructor.IGNORED_KEYS.has(t)).map(([t,r])=>{let s=r instanceof File?r.name:r;return`${e(t)}=${e(s)}`}).sort().join("&")}#r(){return this.baseline!=null&&this.#i()!==this.baseline}#s(){this.submitting=!0}#o(){return this.hasConfirmDialogTarget&&this.confirmDialogTarget.open}#n(i){if(i.key==="Escape"&&this.dialog.open){if(this.#o()){i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation();return}this.forceClose||this.submitting||this.#r()&&(i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation(),this.#c())}}#l(i){i.target===this.dialog&&(this.forceClose||this.submitting||this.#r()&&(i.preventDefault(),this.#c()))}#a(i){this.forceClose||this.submitting||this.#r()&&(i.preventDefault(),i.stopPropagation(),this.#c())}#p(i){i.preventDefault()}#c(){if(this.hasConfirmDialogTarget){let i=this.confirmDialogTarget;i.showModal(),requestAnimationFrame(()=>{requestAnimationFrame(()=>i.setAttribute("data-open",""))})}else window.confirm("Discard your changes?")&&(this.forceClose=!0,this.dialog.dispatchEvent(new CustomEvent("modal:request-close")))}#h(){if(!this.hasConfirmDialogTarget)return;let i=this.confirmDialogTarget;i.removeAttribute("data-open"),i.open&&i.close()}async#u(){if(!this.hasConfirmDialogTarget)return;let i=this.confirmDialogTarget;if(!i.open)return;i.removeAttribute("data-open");let e=i.getAnimations({subtree:!0});await Promise.allSettled(e.map(t=>t.finished)),i.close()}};function vh(i){i.register("password-visibility",Na),i.register("sidebar",Da),i.register("resource-header",po),i.register("nested-resource-form-fields",fo),i.register("structured-input-row",mo),i.register("form",go),i.register("resource-drop-down",To),i.register("resource-collapse",xo),i.register("resource-dismiss",ko),i.register("frame-navigator",_o),i.register("color-mode",Co),i.register("easymde",Io),i.register("slim-select",Do),i.register("flatpickr",No),i.register("intl-tel-input",Bo),i.register("select-navigator",Uo),i.register("resource-tab-list",zo),i.register("attachment-input",La),i.register("attachment-preview",Ma),i.register("attachment-preview-container",Ia),i.register("remote-modal",Ba),i.register("key-value-store",Ua),i.register("bulk-actions",za),i.register("filter-panel",Ha),i.register("textarea-autogrow",ja),i.register("clipboard",qa),i.register("icon-rail",$a),i.register("icon-rail-flyout",Va),i.register("table-header",Wa),i.register("table-column-menu",Ga),i.register("capture-url",Ka),i.register("row-click",Xa),i.register("view-switcher",Ya),i.register("autosubmit",Za),i.register("dirty-form-guard",Qa)}Turbo.StreamActions.redirect=function(){Turbo.cache.clear();let i=this.getAttribute("url");Turbo.visit(i)};Turbo.StreamActions.close_frame=function(){let i=this.getAttribute("target");if(!i)return;let e=document.getElementById(i);if(!e)return;let t=e.querySelector("dialog");t&&typeof t.close=="function"&&t.close(),e.innerHTML="",e.removeAttribute("src")};Turbo.StreamActions.reload_frame=function(){let i=this.getAttribute("target");if(!i)return;let e=document.getElementById(i);!e||typeof e.reload!="function"||e.reload()};var it,Mn,Xi,_r;function WE(){if(it){it.isConnected||document.body.appendChild(it);return}it=document.createElement("dialog"),it.className=["pu-dialog","top-1/2","-translate-y-1/2","left-1/2","-translate-x-1/2","w-full","max-w-md","p-0","open:flex","flex-col","opacity-0","scale-95","data-[open]:opacity-100","data-[open]:scale-100","transition-[opacity,transform]","duration-200","ease-out"].join(" "),it.setAttribute("aria-labelledby","pu-turbo-confirm-message");let i=document.createElement("div");i.className="px-6 pt-5 pb-4 border-b border-[var(--pu-border)]",Mn=document.createElement("h2"),Mn.id="pu-turbo-confirm-message",Mn.className="text-lg font-semibold text-[var(--pu-text)]",i.appendChild(Mn);let e=document.createElement("div");e.className="flex items-center justify-end gap-2 px-6 py-4",_r=document.createElement("button"),_r.type="button",_r.className="pu-btn pu-btn-md pu-btn-outline",_r.textContent="Cancel",Xi=document.createElement("button"),Xi.type="button",Xi.className="pu-btn pu-btn-md pu-btn-primary",Xi.textContent="Confirm",e.appendChild(_r),e.appendChild(Xi),it.appendChild(i),it.appendChild(e),document.body.appendChild(it)}async function GE(){it.removeAttribute("data-open");let i=it.getAnimations({subtree:!0});await Promise.allSettled(i.map(e=>e.finished)),it.open&&it.close()}function Yg(i){return WE(),Mn.textContent=i||"Are you sure?",new Promise(e=>{let t=!1,r=l=>{t||(t=!0,a(),e(l),GE())},s=()=>r(!0),n=()=>r(!1),o=()=>r(!1),a=()=>{Xi.removeEventListener("click",s),_r.removeEventListener("click",n),it.removeEventListener("close",o)};Xi.addEventListener("click",s),_r.addEventListener("click",n),it.addEventListener("close",o),it.showModal(),requestAnimationFrame(()=>{requestAnimationFrame(()=>it.setAttribute("data-open",""))}),Xi.focus()})}typeof window<"u"&&window.Turbo&&(window.Turbo.config?.forms?window.Turbo.config.forms.confirm=Yg:window.Turbo.setConfirmMethod&&window.Turbo.setConfirmMethod(Yg));var KE=uo.start();vh(KE);})();
164
+ `);this.thumbnailLinkTarget.innerHTML=null,this.thumbnailLinkTarget.appendChild(i)}useMimeIconPreview(){let i=yh(this.mimeTypeValue);i.icon.classList.add("w-3/5","h-4/5","rounded-lg","shadow-lg","bg-white","p-2"),this.thumbnailLinkTarget.classList.add("flex","items-center","justify-center"),this.thumbnailLinkTarget.style.backgroundColor=i.color,this.thumbnailLinkTarget.innerHTML=null,this.thumbnailLinkTarget.appendChild(i.icon)}};var Ia=class extends ${connect(){}append(i){this.element.appendChild(i)}clear(){this.element.innerHTML=null}};var Xg=0,Da=class extends ${static targets=["scroll"];connect(){this.beforeRender=this.beforeRender.bind(this),this.afterRender=this.afterRender.bind(this),document.addEventListener("turbo:before-render",this.beforeRender),document.addEventListener("turbo:render",this.afterRender)}disconnect(){document.removeEventListener("turbo:before-render",this.beforeRender),document.removeEventListener("turbo:render",this.afterRender)}beforeRender(){this.hasScrollTarget&&(Xg=this.scrollTarget.scrollTop)}afterRender(){this.hasScrollTarget&&(this.scrollTarget.scrollTop=Xg)}};var Na=class extends ${static targets=["password","checkbox"];connect(){this.checkboxTarget.checked=!1}toggle(){this.passwordTarget.type=="password"?this.passwordTargets.forEach(i=>i.type="text"):this.passwordTargets.forEach(i=>i.type="password")}};var Ba=class extends ${connect(){this.originalScrollPosition=window.scrollY,this.originalOverflow=document.body.style.overflow,this.bodyStateRestored=!1,this._closing=!1,document.body.style.overflow="hidden",this.element.showModal(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.element.setAttribute("data-open","")})}),this.onCancel=this.#e.bind(this),this.onClose=this.#t.bind(this),this.onRequestClose=()=>this.#i(),this.element.addEventListener("cancel",this.onCancel),this.element.addEventListener("close",this.onClose),this.element.addEventListener("modal:request-close",this.onRequestClose)}disconnect(){this.element.removeEventListener("cancel",this.onCancel),this.element.removeEventListener("close",this.onClose),this.element.removeEventListener("modal:request-close",this.onRequestClose),this.#r()}close(){this.#i()}#e(i){i.target===this.element&&(i.defaultPrevented||(i.preventDefault(),this.#i()))}#t(){this.#r()}async#i(){if(this._closing)return;this._closing=!0,this.element.removeAttribute("data-open");let i=this.element.getAnimations({subtree:!0});await Promise.allSettled(i.map(e=>e.finished)),this.element.close()}#r(){this.bodyStateRestored||(this.bodyStateRestored=!0,document.body.style.overflow=this.originalOverflow||"",window.scrollTo(0,this.originalScrollPosition))}};var Ua=class extends ${static targets=["container","pair","template","addButton","keyInput","valueInput"];static values={limit:Number};connect(){this.updateIndices(),this.updateAddButtonState()}addPair(i){if(i.preventDefault(),this.pairTargets.length>=this.limitValue)return;let t=this.templateTarget.content.cloneNode(!0),r=this.pairTargets.length;this.updatePairIndices(t,r),this.containerTarget.appendChild(t),this.updateIndices(),this.updateAddButtonState();let s=this.containerTarget.lastElementChild.querySelector('[data-key-value-store-target="keyInput"]');s&&s.focus()}removePair(i){i.preventDefault();let e=i.target.closest('[data-key-value-store-target="pair"]');e&&(e.remove(),this.updateIndices(),this.updateAddButtonState())}updateIndices(){this.pairTargets.forEach((i,e)=>{let t=i.querySelector('[data-key-value-store-target="keyInput"]'),r=i.querySelector('[data-key-value-store-target="valueInput"]');t&&(t.name=t.name.replace(/\[\d+\]/,`[${e}]`),t.id=t.id.replace(/_\d+_/,`_${e}_`)),r&&(r.name=r.name.replace(/\[\d+\]/,`[${e}]`),r.id=r.id.replace(/_\d+_/,`_${e}_`))})}updatePairIndices(i,e){i.querySelectorAll("input").forEach(r=>{r.name&&(r.name=r.name.replace("__INDEX__",e)),r.id&&(r.id=r.id.replace("___INDEX___",`_${e}_`))})}updateAddButtonState(){let i=this.addButtonTarget;this.pairTargets.length>=this.limitValue?(i.disabled=!0,i.classList.add("opacity-50","cursor-not-allowed")):(i.disabled=!1,i.classList.remove("opacity-50","cursor-not-allowed"))}toJSON(){let i={};return this.pairTargets.forEach(e=>{let t=e.querySelector('[data-key-value-store-target="keyInput"]'),r=e.querySelector('[data-key-value-store-target="valueInput"]');t&&r&&t.value.trim()&&(i[t.value.trim()]=r.value)}),JSON.stringify(i)}toObject(){let i={};return this.pairTargets.forEach(e=>{let t=e.querySelector('[data-key-value-store-target="keyInput"]'),r=e.querySelector('[data-key-value-store-target="valueInput"]');t&&r&&t.value.trim()&&(i[t.value.trim()]=r.value)}),i}};var za=class extends ${static targets=["checkbox","checkboxAll","toolbar","selectedCount","actionButton","filterPills"];toggle(){this.updateUI()}toggleAll(i){let e=i.target.checked;this.checkboxTargets.forEach(t=>t.checked=e),this.updateUI()}updateUI(){let i=this.checked,e=this.checkboxTargets.length;this.hasCheckboxAllTarget&&(this.checkboxAllTarget.checked=i.length===e&&e>0,this.checkboxAllTarget.indeterminate=i.length>0&&i.length<e),this.hasToolbarTarget&&this.toolbarTarget.classList.toggle("hidden",i.length===0),this.hasFilterPillsTarget&&this.filterPillsTarget.classList.toggle("hidden",i.length>0),this.hasSelectedCountTarget&&(this.selectedCountTarget.textContent=i.length),this.updateActionButtons()}updateActionButtons(){let i=this.checked,t=i.map(s=>s.value).map(s=>`ids[]=${encodeURIComponent(s)}`).join("&"),r=this.computeAllowedActions(i);this.actionButtonTargets.forEach(s=>{let n=s.dataset.bulkActionUrl,o=s.dataset.bulkActionName;n&&(s.href=t?`${n}?${t}`:n),s.style.display=r.has(o)?"":"none"})}computeAllowedActions(i){if(i.length===0)return new Set;let e=new Set(this.getAllowedActionsForCheckbox(i[0]));for(let t=1;t<i.length;t++){let r=this.getAllowedActionsForCheckbox(i[t]);e=new Set([...e].filter(s=>r.includes(s)))}return e}getAllowedActionsForCheckbox(i){let e=i.dataset.allowedActions;return e?e.split(",").filter(t=>t):[]}clearSelection(){this.checkboxTargets.forEach(i=>i.checked=!1),this.hasCheckboxAllTarget&&(this.checkboxAllTarget.checked=!1,this.checkboxAllTarget.indeterminate=!1),this.updateUI()}get checked(){return this.checkboxTargets.filter(i=>i.checked)}get unchecked(){return this.checkboxTargets.filter(i=>!i.checked)}};var Ha=class extends ${static targets=["panel","backdrop"];connect(){this._onKeydown=this._onKeydown.bind(this)}disconnect(){this.isOpen&&(document.removeEventListener("keydown",this._onKeydown),this._unlockBodyScroll())}toggle(){this.isOpen?this.close():this.open()}open(){this.hasPanelTarget&&(this.panelTarget.setAttribute("data-open",""),this.panelTarget.setAttribute("aria-hidden","false")),this.hasBackdropTarget&&this.backdropTarget.setAttribute("data-open",""),this._lockBodyScroll(),document.addEventListener("keydown",this._onKeydown)}close(){this.hasPanelTarget&&(this.panelTarget.removeAttribute("data-open"),this.panelTarget.setAttribute("aria-hidden","true")),this.hasBackdropTarget&&this.backdropTarget.removeAttribute("data-open"),this._unlockBodyScroll(),document.removeEventListener("keydown",this._onKeydown)}_lockBodyScroll(){this._previousBodyOverflow==null&&(this._previousBodyOverflow=document.body.style.overflow,document.body.style.overflow="hidden")}_unlockBodyScroll(){this._previousBodyOverflow!=null&&(document.body.style.overflow=this._previousBodyOverflow,this._previousBodyOverflow=null)}clear(){this.element.querySelectorAll("input, select, textarea").forEach(e=>{e.type==="checkbox"||e.type==="radio"?e.checked=!1:e.tagName==="SELECT"?e.selectedIndex=0:e.type==="hidden"?e.dataset.controller==="flatpickr"&&(e.value=""):e.value=""}),this.element.querySelectorAll('[data-controller="flatpickr"]').forEach(e=>{let t=this.application.getControllerForElementAndIdentifier(e,"flatpickr");t?.picker&&t.picker.clear()});let i=this.element.querySelector("form");i&&i.requestSubmit()}get isOpen(){return this.hasPanelTarget&&this.panelTarget.hasAttribute("data-open")}_onKeydown(i){i.key==="Escape"&&this.close()}};var ja=class extends ${static values={maxHeight:{type:Number,default:0}};connect(){this.resize(),this.element.addEventListener("input",this.resize),window.addEventListener("resize",this.resize)}disconnect(){this.element.removeEventListener("input",this.resize),window.removeEventListener("resize",this.resize)}resize=()=>{let i=this.element,e=this.#e();i.style.height="auto",i.style.overflow="hidden";let t=i.scrollHeight;e>0&&t>e?(i.style.height=`${e}px`,i.style.overflow="auto"):i.style.height=`${t}px`};#e(){if(this.maxHeightValue>0)return this.maxHeightValue;let e=window.getComputedStyle(this.element).maxHeight;if(e&&e!=="none"){let t=parseFloat(e);if(!isNaN(t)&&t>0)return t}return 300}};var qa=class extends ${static targets=["source"];copy(i){let e=this.sourceTarget.value||this.sourceTarget.textContent,t=i.currentTarget,r=t.textContent;navigator.clipboard.writeText(e).then(()=>{t.textContent="Copied!",setTimeout(()=>{t.textContent=r},2e3)}).catch(s=>{console.warn("Clipboard API failed, using fallback:",s),this.fallbackCopy(e),t.textContent="Copied!",setTimeout(()=>{t.textContent=r},2e3)})}fallbackCopy(i){let e=document.createElement("textarea");e.value=i,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}};var $a=class extends ${static values={storageKey:{type:String,default:"pu_rail_pinned"}};connect(){let i=localStorage.getItem(this.storageKeyValue)!=="false";document.body.classList.toggle("pu-rail-pinned",i)}togglePin(){let i=document.body.classList.toggle("pu-rail-pinned");localStorage.setItem(this.storageKeyValue,i)}};var Va=class extends ${static targets=["trigger","panel"];static values={closeDelay:{type:Number,default:150}};connect(){this._closeTimer=null,this._open=!1,this._panel=null,this._panelHome=null,this._onPanelEnter=()=>{this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null)},this._onPanelLeave=()=>this.scheduleClose()}disconnect(){this._returnPanel()}open(){this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),!this._open&&(!this._panel&&!this.hasPanelTarget||(this._open=!0,this.element.dataset.flyoutOpen="true",this._portalPanel(),this._position()))}scheduleClose(){this._closeTimer&&clearTimeout(this._closeTimer),this._closeTimer=setTimeout(()=>this.close(),this.closeDelayValue)}close(){this._open&&(this._open=!1,delete this.element.dataset.flyoutOpen,this._returnPanel())}toggle(i){i.preventDefault(),this._open?this.close():this.open()}closeOnEsc(i){i.key==="Escape"&&this.close()}_portalPanel(){if(this._panel)return;let i=this.panelTarget;i&&(this._panel=i,this._panelHome=i.parentElement,i.addEventListener("mouseenter",this._onPanelEnter),i.addEventListener("mouseleave",this._onPanelLeave),document.body.appendChild(i),i.style.display="block")}_returnPanel(){if(!this._panel)return;let i=this._panel;i.removeEventListener("mouseenter",this._onPanelEnter),i.removeEventListener("mouseleave",this._onPanelLeave),i.style.position="",i.style.left="",i.style.top="",i.style.display="",this._panelHome&&document.contains(this._panelHome)?this._panelHome.appendChild(i):i.remove(),this._panel=null,this._panelHome=null}_position(){if(!this._panel||!this.hasTriggerTarget)return;let i=this._panel,e=this.triggerTarget.getBoundingClientRect();i.style.position="fixed",i.style.left=`${e.right+4}px`,i.style.top=`${e.top}px`,requestAnimationFrame(()=>{let t=i.getBoundingClientRect(),r=window.innerHeight;if(t.bottom>r-8){let s=t.bottom-(r-8),n=Math.max(8,parseFloat(i.style.top)-s);i.style.top=`${n}px`}})}};var Wa=class extends ${headerClick(i){if(!i.shiftKey)return;let t=i.currentTarget.dataset.tableHeaderMultiHref;t&&(i.preventDefault(),Turbo.visit(t))}};var Ga=class extends ${static targets=["panel"];connect(){this._onDocClick=this._onDocClick.bind(this)}toggle(i){i.preventDefault(),i.stopPropagation(),this.hasPanelTarget&&(!this.panelTarget.classList.toggle("hidden")?(document.addEventListener("click",this._onDocClick),this._onKey=t=>{t.key==="Escape"&&this._close()},document.addEventListener("keydown",this._onKey)):this._unbind())}_close(){this.hasPanelTarget&&this.panelTarget.classList.add("hidden"),this._unbind()}_unbind(){document.removeEventListener("click",this._onDocClick),this._onKey&&(document.removeEventListener("keydown",this._onKey),this._onKey=null)}_onDocClick(i){this.element.contains(i.target)||this._close()}};var Ka=class extends ${connect(){if(!("value"in this.element))return;let i=this.element.value;if(!i)return;let{hash:e}=window.location;e&&(this.element.value=i.split("#")[0]+e)}};var Xa=class extends ${click(i){i.target.closest("a, button, input, label, select, textarea, [data-row-click-ignore]")||this.element.querySelector('[data-row-click-target="show"]')?.click()}};var Ya=class extends ${static values={cookieName:String,cookiePath:{type:String,default:"/"}};select(i){let e=i.params.view;if(!e||!this.cookieNameValue)return;let t=3600*24*365,r=this.cookiePathValue||"/";document.cookie=`${this.cookieNameValue}=${encodeURIComponent(e)}; Path=${r}; Max-Age=${t}; SameSite=Lax`;let s=new URL(window.location.href);s.searchParams.delete("view"),window.location.href=s.toString()}};var Za=class extends ${static values={delay:{type:Number,default:300}};connect(){this._timer=null}disconnect(){this._timer&&clearTimeout(this._timer)}submit(){this._timer&&clearTimeout(this._timer),this._timer=setTimeout(()=>{this.element.closest("form")?.requestSubmit()},this.delayValue)}};var Qa=class extends ${static targets=["confirmDialog"];static IGNORED_KEYS=new Set(["authenticity_token","return_to","pre_submit"]);static NON_EDITING_KEYS=new Set(["Tab","Escape","Shift","Control","Alt","Meta"]);connect(){this.dialog=this.element.closest("dialog"),this.dialog&&(this.baseline=null,this.forceClose=!1,this.submitting=!1,this.onFirstIntent=this.#t.bind(this),this.onCancel=this.#l.bind(this),this.onSubmit=this.#s.bind(this),this.onCloseButtonClick=this.#a.bind(this),this.onConfirmCancel=this.#p.bind(this),this.onKeydown=this.#n.bind(this),this.element.addEventListener("pointerdown",this.onFirstIntent,!0),this.element.addEventListener("keydown",this.onFirstIntent,!0),document.addEventListener("keydown",this.onKeydown,!0),this.dialog.addEventListener("cancel",this.onCancel,!0),this.element.addEventListener("submit",this.onSubmit),this.#e().forEach(i=>i.addEventListener("click",this.onCloseButtonClick,!0)),this.hasConfirmDialogTarget&&this.confirmDialogTarget.addEventListener("cancel",this.onConfirmCancel))}disconnect(){this.dialog&&(this.element.removeEventListener("pointerdown",this.onFirstIntent,!0),this.element.removeEventListener("keydown",this.onFirstIntent,!0),document.removeEventListener("keydown",this.onKeydown,!0),this.dialog.removeEventListener("cancel",this.onCancel,!0),this.element.removeEventListener("submit",this.onSubmit),this.#e().forEach(i=>i.removeEventListener("click",this.onCloseButtonClick,!0)),this.hasConfirmDialogTarget&&this.confirmDialogTarget.removeEventListener("cancel",this.onConfirmCancel))}discard(){this.forceClose=!0,this.#h(),this.dialog.dispatchEvent(new CustomEvent("modal:request-close"))}keepEditing(){this.#u()}#e(){return this.dialog?this.dialog.querySelectorAll('[data-action~="remote-modal#close"]'):[]}#t(i){this.baseline==null&&i.isTrusted&&(i.type==="keydown"&&this.constructor.NON_EDITING_KEYS.has(i.key)||(this.baseline=this.#i()))}#i(){let i=new FormData(this.element),e=encodeURIComponent;return[...i.entries()].filter(([t])=>!this.constructor.IGNORED_KEYS.has(t)).map(([t,r])=>{let s=r instanceof File?r.name:r;return`${e(t)}=${e(s)}`}).sort().join("&")}#r(){return this.baseline!=null&&this.#i()!==this.baseline}#s(){this.submitting=!0}#o(){return this.hasConfirmDialogTarget&&this.confirmDialogTarget.open}#n(i){if(i.key==="Escape"&&this.dialog.open){if(this.#o()){i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation();return}this.forceClose||this.submitting||this.#r()&&(i.preventDefault(),i.stopPropagation(),i.stopImmediatePropagation(),this.#c())}}#l(i){i.target===this.dialog&&(this.forceClose||this.submitting||this.#r()&&(i.preventDefault(),this.#c()))}#a(i){this.forceClose||this.submitting||this.#r()&&(i.preventDefault(),i.stopPropagation(),this.#c())}#p(i){i.preventDefault()}#c(){if(this.hasConfirmDialogTarget){let i=this.confirmDialogTarget;i.showModal(),requestAnimationFrame(()=>{requestAnimationFrame(()=>i.setAttribute("data-open",""))})}else window.confirm("Discard your changes?")&&(this.forceClose=!0,this.dialog.dispatchEvent(new CustomEvent("modal:request-close")))}#h(){if(!this.hasConfirmDialogTarget)return;let i=this.confirmDialogTarget;i.removeAttribute("data-open"),i.open&&i.close()}async#u(){if(!this.hasConfirmDialogTarget)return;let i=this.confirmDialogTarget;if(!i.open)return;i.removeAttribute("data-open");let e=i.getAnimations({subtree:!0});await Promise.allSettled(e.map(t=>t.finished)),i.close()}};function vh(i){i.register("password-visibility",Na),i.register("sidebar",Da),i.register("resource-header",po),i.register("nested-resource-form-fields",fo),i.register("structured-input-row",mo),i.register("form",go),i.register("resource-drop-down",To),i.register("resource-collapse",xo),i.register("resource-dismiss",ko),i.register("frame-navigator",_o),i.register("color-mode",Co),i.register("easymde",Io),i.register("slim-select",Do),i.register("flatpickr",No),i.register("intl-tel-input",Bo),i.register("select-navigator",Uo),i.register("resource-tab-list",zo),i.register("attachment-input",La),i.register("attachment-preview",Ma),i.register("attachment-preview-container",Ia),i.register("remote-modal",Ba),i.register("key-value-store",Ua),i.register("bulk-actions",za),i.register("filter-panel",Ha),i.register("textarea-autogrow",ja),i.register("clipboard",qa),i.register("icon-rail",$a),i.register("icon-rail-flyout",Va),i.register("table-header",Wa),i.register("table-column-menu",Ga),i.register("capture-url",Ka),i.register("row-click",Xa),i.register("view-switcher",Ya),i.register("autosubmit",Za),i.register("dirty-form-guard",Qa)}Turbo.StreamActions.redirect=function(){Turbo.cache.clear();let i=this.getAttribute("url");Turbo.visit(i)};Turbo.StreamActions.close_frame=function(){let i=this.getAttribute("target");if(!i)return;let e=document.getElementById(i);if(!e)return;let t=e.querySelector("dialog");t&&typeof t.close=="function"&&t.close(),e.innerHTML="",e.removeAttribute("src")};Turbo.StreamActions.reload_frame=function(){let i=this.getAttribute("target");if(!i)return;let e=document.getElementById(i);!e||typeof e.reload!="function"||e.reload()};var it,Mn,Xi,_r;function WE(){if(it){it.isConnected||document.body.appendChild(it);return}it=document.createElement("dialog"),it.className=["pu-dialog","top-1/2","-translate-y-1/2","left-1/2","-translate-x-1/2","w-full","max-w-md","p-0","open:flex","flex-col","opacity-0","scale-95","data-[open]:opacity-100","data-[open]:scale-100","transition-[opacity,transform]","duration-200","ease-out"].join(" "),it.setAttribute("aria-labelledby","pu-turbo-confirm-message");let i=document.createElement("div");i.className="px-6 pt-5 pb-4 border-b border-[var(--pu-border)]",Mn=document.createElement("h2"),Mn.id="pu-turbo-confirm-message",Mn.className="text-lg font-semibold text-[var(--pu-text)]",i.appendChild(Mn);let e=document.createElement("div");e.className="flex items-center justify-end gap-2 px-6 py-4",_r=document.createElement("button"),_r.type="button",_r.className="pu-btn pu-btn-md pu-btn-outline",_r.textContent="Cancel",Xi=document.createElement("button"),Xi.type="button",Xi.className="pu-btn pu-btn-md pu-btn-primary",Xi.textContent="Confirm",e.appendChild(_r),e.appendChild(Xi),it.appendChild(i),it.appendChild(e),document.body.appendChild(it)}async function GE(){it.removeAttribute("data-open");let i=it.getAnimations({subtree:!0});await Promise.allSettled(i.map(e=>e.finished)),it.open&&it.close()}function Yg(i){return WE(),Mn.textContent=i||"Are you sure?",new Promise(e=>{let t=!1,r=l=>{t||(t=!0,a(),e(l),GE())},s=()=>r(!0),n=()=>r(!1),o=()=>r(!1),a=()=>{Xi.removeEventListener("click",s),_r.removeEventListener("click",n),it.removeEventListener("close",o)};Xi.addEventListener("click",s),_r.addEventListener("click",n),it.addEventListener("close",o),it.showModal(),requestAnimationFrame(()=>{requestAnimationFrame(()=>it.setAttribute("data-open",""))}),Xi.focus()})}typeof window<"u"&&window.Turbo&&(window.Turbo.config?.forms?window.Turbo.config.forms.confirm=Yg:window.Turbo.setConfirmMethod&&window.Turbo.setConfirmMethod(Yg));var KE=uo.start();vh(KE);})();
165
165
  /*!
166
166
  * Sanitize an HTML node
167
167
  */