@prolibu-suite/cobalt-core 0.11.8 → 0.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/custom-elements.json +44 -1
  2. package/dist/cjs/co-color-picker.cjs.entry.js +1 -1
  3. package/dist/cjs/co-file-field.cjs.entry.js +30 -8
  4. package/dist/cjs/co-sidebar-nav.cjs.entry.js +29 -8
  5. package/dist/cjs/cobalt.cjs.js +1 -1
  6. package/dist/cjs/{fileI18n-6sdbKvo6.js → fileI18n-Bz8zbHlB.js} +3 -0
  7. package/dist/cjs/index-bHoidDwv.js +4 -4
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cobalt/cobalt.esm.js +1 -1
  10. package/dist/cobalt/{p-cd43d372.entry.js → p-15d995b4.entry.js} +1 -1
  11. package/dist/cobalt/p-438cc876.entry.js +1 -0
  12. package/dist/cobalt/p-b6463d35.entry.js +1 -0
  13. package/dist/cobalt/p-z0tbse7d.js +1 -0
  14. package/dist/collection/components/co-file-field/co-file-field.js +50 -8
  15. package/dist/collection/components/co-file-field/co-file-field.utils.js +14 -0
  16. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +5 -189
  17. package/dist/collection/components/co-sidebar-nav/sidebar-icon-map.js +205 -0
  18. package/dist/collection/utils/fileI18n.js +3 -0
  19. package/dist/components/co-color-picker.js +1 -1
  20. package/dist/components/co-file-field.js +1 -1
  21. package/dist/components/co-sidebar-nav.js +1 -1
  22. package/dist/components/p-z0tbse7d.js +1 -0
  23. package/dist/esm/co-color-picker.entry.js +1 -1
  24. package/dist/esm/co-file-field.entry.js +30 -8
  25. package/dist/esm/co-sidebar-nav.entry.js +29 -8
  26. package/dist/esm/cobalt.js +1 -1
  27. package/dist/esm/{fileI18n-gKnOhsd2.js → fileI18n-z0tbse7d.js} +3 -0
  28. package/dist/esm/index-DJkaRtbb.js +4 -4
  29. package/dist/esm/loader.js +1 -1
  30. package/dist/types/components/co-file-field/co-file-field.d.ts +13 -0
  31. package/dist/types/components/co-file-field/co-file-field.utils.d.ts +6 -0
  32. package/dist/types/components/co-sidebar-nav/sidebar-icon-map.d.ts +6 -0
  33. package/dist/types/components.d.ts +16 -0
  34. package/dist/types/utils/fileI18n.d.ts +1 -0
  35. package/package.json +3 -3
  36. package/dist/cobalt/p-99781b0b.entry.js +0 -1
  37. package/dist/cobalt/p-c31b9b51.entry.js +0 -1
  38. package/dist/cobalt/p-gKnOhsd2.js +0 -1
  39. package/dist/components/p-gKnOhsd2.js +0 -1
@@ -1 +1 @@
1
- import{t as e,p as i,H as o,c as t,h as r}from"./index.js";import{R as a}from"./p-CWneqh4n.js";import{g as s,f as c}from"./p-gKnOhsd2.js";import{d as n}from"./p-qMNHMnvI.js";import{d as l}from"./p-DldA2IL3.js";import{d}from"./p-BMyWdiVO.js";import{d as f}from"./p-DRL-a5hO.js";import{d as h}from"./p-COCcx0DN.js";function p(e){if(null==e||isNaN(e))return"";if(e<1024)return e+" B";const i=e=>e.toFixed(2).replace(/\.?0+$/,"");return e<1048576?i(e/1024)+" KB":i(e/1048576)+" MB"}const u=new Set(["png","jpg","jpeg","gif","webp","svg","avif","bmp"]),v=new Set(["mp4","mov","webm","m4v","ogv"]);function m(e){const i=(e||"").split("?")[0],o=i.lastIndexOf(".");return o>=0?i.slice(o+1).toLowerCase():""}function b(e){return m(e.name)||m(e.url)}function _(e){return u.has(b(e))}function g(e){return v.has(b(e))}function y(e){return"done"===e.status&&!!e.url&&g(e)}function x(e){return g(e)||_(e)?e.url||e.thumbnail:e.thumbnail||e.url}const w={image:u,video:v},k=i(class extends o{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coFilesSelected=t(this,"coFilesSelected",3),this.coRemove=t(this,"coRemove",3),this.coClear=t(this,"coClear",3),this.coReorder=t(this,"coReorder",3),this.coCopy=t(this,"coCopy",3),this.coPreviewOpen=t(this,"coPreviewOpen",3),this.disabled=!1,this.readonly=!1,this.required=!1,this.multiple=!1,this.maxFiles=100,this.status="default",this.layout="vertical",this.reorderable=!0,this.files="[]",this.dragOver=!1,this.localError="",this.copiedKey="",this.armedKey="",this.dragKey="",this.overKey="",this.failedPreviews=new Set,this.tempSeq=0,this.lastFilesStr="",this.lastParsed=[],this.handleDragOver=e=>{this.disabled||this.readonly||this.dragKey||(e.preventDefault(),this.dragOver=!0)},this.handleDragLeave=e=>{const i=e.relatedTarget;i&&e.currentTarget instanceof Node&&e.currentTarget.contains(i)||(this.dragOver=!1)},this.handleDrop=e=>{var i;e.preventDefault(),this.dragOver=!1,this.dragKey||(null===(i=e.dataTransfer)||void 0===i?void 0:i.files)&&this.handleFiles(e.dataTransfer.files)},this.handleBrowse=e=>{var i;this.disabled||this.readonly||e&&this.fromActionsSlot(e)||null===(i=this.inputEl)||void 0===i||i.click()},this.handleInputChange=e=>{const i=e.target;i.files&&this.handleFiles(i.files),i.value=""},this.disarmDrag=()=>{this.armedKey&&!this.dragKey&&(this.armedKey="")},this.handleRowDragEnd=()=>{this.resetDragState()}}componentWillLoad(){this.failedPreviews||(this.failedPreviews=new Set)}connectedCallback(){window.addEventListener("mouseup",this.disarmDrag)}disconnectedCallback(){window.removeEventListener("mouseup",this.disarmDrag),clearTimeout(this.copiedTimer),this.closeLightbox()}get parsedFiles(){const e=this.files;if("string"!=typeof e||!e.trim())return[];if(e===this.lastFilesStr)return this.lastParsed;let i=[];try{const o=JSON.parse(e);Array.isArray(o)&&(i=o)}catch(e){}return this.lastFilesStr=e,this.lastParsed=i,i}get strings(){return s(this.locale)}get acceptList(){const e=this.accept;if(!e)return[];let i=[];try{const o=JSON.parse(e);Array.isArray(o)&&(i=o.map(String))}catch(o){i=e.split(",")}return i.map((e=>e.trim().toLowerCase().replace(/^\./,""))).filter((e=>e&&"*"!==e))}get isInvalid(){return"error"===this.status||!!this.localError}get inputAccept(){const e=this.acceptList;if(e.length)return e.map((e=>e.includes("/")?e:"."+e)).join(",")}extOf(e){const i=e.lastIndexOf(".");return i>=0?e.slice(i+1).toLowerCase():""}validate(e){return function(e,i){if(!e.length)return!0;const o=m(i.name),t=(i.type||"").toLowerCase();return e.some((e=>{var i;if(!e.includes("/"))return e===o;if(!e.endsWith("/*"))return t===e;const r=e.slice(0,-2);return t?t.startsWith(r+"/"):!!(null===(i=w[r])||void 0===i?void 0:i.has(o))}))}(this.acceptList,e)?this.maxBytes&&e.size>this.maxBytes?c(this.strings.errTooLarge,{x:p(e.size)}):null:c(this.strings.errInvalidFormat,{x:this.extOf(e.name)})}onDownloadClick(e,i){if(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||!i.url)return;e.preventDefault();const o=i.url;(async function(e,i,o={}){const{fetchImpl:t=globalThis.fetch,doc:r=globalThis.document,urlApi:a=URL}=o;try{const o=await t(e);if(!o.ok)return!1;const s=a.createObjectURL(await o.blob()),c=r.createElement("a");return c.href=s,c.download=i||"download",c.rel="noopener noreferrer",r.body.appendChild(c),c.click(),setTimeout((()=>{c.remove(),a.revokeObjectURL(s)}),2e3),!0}catch(e){return!1}})(o,i.name).then((e=>{e||window.open(o,"_blank","noopener,noreferrer")}))}handleFiles(e){if(this.disabled||this.readonly)return;this.localError="";const i=Array.from(e);if(!i.length)return;const o=this.multiple?i:i.slice(0,1);if(this.multiple){const e=this.maxFiles-this.parsedFiles.length;if(e<=0)return void(this.localError=c(this.strings.errMaxFiles,{n:this.maxFiles}));o.length>e&&(o.length=e)}const t=[],r=[];for(const e of o){const i=this.validate(e);i?this.localError=i:(t.push(e),r.push(`tmp-${Date.now()}-${this.tempSeq++}`))}t.length&&this.coFilesSelected.emit({files:t,tempIds:r})}fromActionsSlot(e){return e.composedPath().some((e=>{var i,o;return"actions"===(null===(o=(i=e).getAttribute)||void 0===o?void 0:o.call(i,"slot"))}))}keyFor(e){var i;return e.id||e.tempId||`${e.name}:${null!==(i=e.size)&&void 0!==i?i:""}`}handleCopy(e){var i;const o=e.url||"";if(!o)return;const t=this.keyFor(e);this.coCopy.emit({id:t,url:o}),(null===(i=navigator.clipboard)||void 0===i?void 0:i.writeText)&&navigator.clipboard.writeText(o).then((()=>{this.copiedKey=t,clearTimeout(this.copiedTimer),this.copiedTimer=setTimeout((()=>this.copiedKey=""),1500)})).catch((()=>{}))}previewItems(){return this.parsedFiles.filter((e=>function(e){return function(e){return"done"===e.status&&!y(e)&&!(!e.thumbnail&&!e.url)&&(!!e.thumbnail||_(e))}(e)||y(e)}(e)&&(y(e)||!this.failedPreviews.has(this.keyFor(e)))))}handlePreviewOpen(e){const i=e.url||e.thumbnail;if(!i)return;this.coPreviewOpen.emit({id:this.keyFor(e),url:i});const o=this.previewItems(),t=o.map((e=>y(e)?{src:x(e),thumbnail:e.thumbnail,alt:e.name,kind:"video",poster:e.thumbnail}:{src:x(e),thumbnail:e.thumbnail,alt:e.name,original:e.url})),r=Math.max(0,o.findIndex((i=>this.keyFor(i)===this.keyFor(e))));this.closeLightbox();const a=document.createElement("co-lightbox");a.images=JSON.stringify(t),a.startIndex=r,this.locale&&(a.locale=this.locale),a.addEventListener("coClose",(()=>this.closeLightbox())),document.body.appendChild(a),this.lightboxEl=a,requestAnimationFrame((()=>{a.open=!0}))}closeLightbox(){const e=this.lightboxEl;this.lightboxEl=void 0,e&&(e.open=!1,setTimeout((()=>e.remove()),220))}handlePreviewError(e){this.failedPreviews=new Set([...this.failedPreviews,this.keyFor(e)])}handleRowDragStart(e,i){this.armedKey===i?(this.dragKey=i,e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",i))):e.preventDefault()}handleRowDragOver(e,i){this.dragKey&&this.dragKey!==i&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),this.overKey=i)}handleRowDrop(e,i){e.preventDefault(),e.stopPropagation();const o=this.parsedFiles.map((e=>this.keyFor(e))),t=o.indexOf(this.dragKey),r=o.indexOf(i);this.resetDragState(),t<0||r<0||t===r||(o.splice(r,0,...o.splice(t,1)),this.coReorder.emit(o))}resetDragState(){this.armedKey="",this.dragKey="",this.overKey=""}capacityHint(e){const i=this.maxBytes?p(this.maxBytes):"";return this.multiple&&this.maxBytes?c(e.helperBoth,{n:this.maxFiles,x:i}):this.multiple?c(e.helperFiles,{n:this.maxFiles}):this.maxBytes?c(e.helperBytes,{x:i}):""}render(){const e=this.strings,i=this.parsedFiles,o=this.localError||this.helperText,t=!(this.readonly||(this.multiple?this.multiple&&i.length>=this.maxFiles:0!==i.length)),s="default"!==this.status?"co-file-field--"+this.status:"",c=this.previewItems(),n=this.reorderable&&this.multiple&&!this.disabled&&!this.readonly&&i.length>1,l=this.capacityHint(e);return r("div",{key:"4a6cea48737c68e53f90a32e962660473f49ce5a",class:{"co-file-field":!0,"co-file-field--disabled":this.disabled,"co-file-field--invalid":this.isInvalid,[s]:!!s},part:"wrapper"},this.label&&r("div",{key:"3532e314c63b19208c7a7665dd025ff38585a598",class:"co-file-field__labels"},r("label",{key:"ae8aa6da81d6b959233218473086ecabe5ab8017",class:"co-file-field__label",part:"label"},this.label,r(a,{key:"78d12c0e676217fd208bc03cc6a119b6fbf521e7",required:this.required}))),t&&r("div",{key:"a6e5764aa57090d6b9383b1f8148bcba1239ff3a",class:{"co-file-field__dropzone":!0,"co-file-field__dropzone--drag":this.dragOver},part:"dropzone",role:"button",tabIndex:this.disabled?-1:0,onClick:this.handleBrowse,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||this.fromActionsSlot(e)||(e.preventDefault(),this.handleBrowse())},onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave,onDrop:this.handleDrop},r("button",{key:"44558c1a5d15c5aca23a7e204bcccf5e57d6b740",class:"co-file-field__upload-btn",part:"upload-button",type:"button",tabIndex:-1},r("co-icon",{key:"662340ae54f1d070606c0fd8226155b0360e803e",name:"file-arrow-up",size:18}),r("span",{key:"752f18e7121040eb4edf571a54a9a5308825cb13"},this.uploadButtonText||e.uploadButton)),r("span",{key:"b92332ee8e7e658b33814b8c1ae34a4630045819",class:"co-file-field__dropzone-text"},this.dropText||e.dropHint),l&&r("span",{key:"ed1f7c9093145ecbb49446b72a3d3bc99ee232e2",class:"co-file-field__dropzone-hint"},l),r("div",{key:"fd4953e9dfebf35936ae836d6f28ccdc17ccf951",class:"co-file-field__actions",part:"actions"},r("slot",{key:"c2e568fabd1512ecfa298c2ab281d310fbe21664",name:"actions"})),r("input",{key:"17acb79e8d066c18f7c1ac051a365d4282c852af",ref:e=>this.inputEl=e,class:"co-file-field__input",type:"file",multiple:this.multiple,accept:this.inputAccept,disabled:this.disabled,onChange:this.handleInputChange,"aria-hidden":"true",tabIndex:-1})),i.length>0&&r("div",{key:"a793e2b836269abaafe71fd56b07b3d54155cf75",class:"co-file-field__uploaded"},this.multiple&&r("div",{key:"2a265874db718faf1e78f2dd46e5ff14bbfbbff2",class:"co-file-field__uploaded-title",part:"uploaded-title"},`${this.uploadedTitle||e.uploadedTitle} (${i.length})`),c.length>0&&r("div",{key:"a4ebb3fae5ad4b2b29263381f9eb5ae03a98867d",class:"co-file-field__previews",part:"previews"},c.map((i=>{const o=this.keyFor(i),t=y(i),a=this.failedPreviews.has(o)?"":i.thumbnail;return r("button",{class:{"co-file-field__preview":!0,"co-file-field__preview--video":t},part:"preview",type:"button",key:"prev-"+o,title:i.name,"aria-label":`${t?e.playVideo:e.openPreview}: ${i.name}`,onClick:()=>this.handlePreviewOpen(i)},(!t||!!a)&&r("img",{src:t?a:i.thumbnail||i.url,alt:i.name,loading:"lazy",onError:()=>this.handlePreviewError(i)}),t&&r("span",{class:"co-file-field__preview-play","aria-hidden":"true"},r("span",{class:"co-file-field__preview-play-badge"},r("co-icon",{name:"play",size:20,weight:"fill"})),!a&&r("span",{class:"co-file-field__preview-ext"},b(i).toUpperCase())))}))),r("ul",{key:"97ead2383d036b1ed2b09d6e931be2bfbcce25d2",class:"co-file-field__list",part:"list"},i.map((i=>{const o=this.keyFor(i),t=n&&"done"===i.status;return r("li",{class:{"co-file-field__row":!0,["co-file-field__row--"+i.status]:!0,"co-file-field__row--dragging":this.dragKey===o,"co-file-field__row--drop-target":this.overKey===o},part:"row",key:o,draggable:this.armedKey===o,onDragStart:e=>this.handleRowDragStart(e,o),onDragOver:e=>this.handleRowDragOver(e,o),onDrop:e=>this.handleRowDrop(e,o),onDragEnd:this.handleRowDragEnd},t?r("co-tooltip",{content:e.dragToReorder},r("span",{class:"co-file-field__drag-handle",part:"drag-handle",onMouseDown:()=>this.armedKey=o},r("co-icon",{name:"list",size:18}))):r("co-icon",{name:"error"===i.status?"warning-circle":"uploading"===i.status?"spinner-gap":"file",size:18,class:{"co-file-field__row-icon":!0,"co-file-field__row-icon--spin":"uploading"===i.status}}),r("div",{class:"co-file-field__row-body"},r("span",{class:"co-file-field__row-name",title:i.name},function(e,i=35){return!e||e.length<=i?e:"..."+e.slice(-i)}(i.name)),"uploading"===i.status&&r("div",{class:"co-file-field__progress"},r("div",{class:"co-file-field__progress-bar",style:"number"==typeof i.progress?{width:i.progress+"%"}:void 0})),"error"===i.status&&i.error&&r("span",{class:"co-file-field__row-error"},i.error)),null!=i.size&&r("span",{class:"co-file-field__row-size"},p(i.size)),"done"===i.status&&!!i.url&&r("co-tooltip",{content:e.downloadFile},r("a",{class:"co-file-field__action",href:i.url,target:"_blank",rel:"noopener noreferrer",download:i.name,tabIndex:-1,"aria-label":e.downloadFile,onClick:e=>this.onDownloadClick(e,i)},r("co-icon",{name:"download",size:18}))),"done"===i.status&&!!i.url&&r("co-tooltip",{content:this.copiedKey===o?e.copied:e.copyUrl},r("button",{class:{"co-file-field__action":!0,"co-file-field__action--copied":this.copiedKey===o},type:"button",tabIndex:-1,"aria-label":e.copyUrl,onClick:()=>this.handleCopy(i)},r("co-icon",{name:this.copiedKey===o?"check":"copy",size:18}))),!this.disabled&&!this.readonly&&r("co-tooltip",{content:e.removeFile},r("button",{class:"co-file-field__action",type:"button",tabIndex:-1,"aria-label":e.removeFile,onClick:()=>this.coRemove.emit(o)},r("co-icon",{name:"trash",size:18}))))})))),o&&r("div",{key:"d4fef1bb2aa10f90ca7cd5e01bb5fed9ea917637",class:{"co-file-field__helper":!0,"co-file-field__helper--error":this.isInvalid},part:"helper"},this.isInvalid&&r("co-icon",{key:"2fb9d5d28732c239bcec4b0a30dfe194367e8b5d",name:"warning-circle",size:14,class:"co-file-field__helper-icon"}),r("span",{key:"09bd101388c52a7fb8d0139c20f52f2da733543b",class:"co-file-field__helper-text"},o)))}get el(){return this}static get style(){return":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-file-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-file-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-file-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-field-required{margin-left:2px;color:var(--co-semantic-text-error, var(--co-color-status-error))}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}.co-file-field__dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--co-spacing-md);padding:var(--co-spacing-4xl) var(--co-spacing-2xl);background:color-mix(in srgb, var(--co-semantic-surface-hover) 55%, transparent);border:1px dashed var(--co-semantic-border-field);border-radius:var(--co-border-radius-sm);cursor:pointer;text-align:center;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-file-field__dropzone:hover{border-color:var(--co-semantic-border-focus)}.co-file-field__dropzone--drag{border-color:var(--co-semantic-border-focus);background:var(--co-semantic-surface-hover)}.co-file-field__upload-btn{display:inline-flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-md) var(--co-spacing-xl);margin-bottom:var(--co-spacing-xs);background:var(--co-semantic-surface-secondary);color:var(--co-semantic-text-default);border:none;border-radius:var(--co-border-radius-full);box-shadow:var(--co-shadow-lg);font-family:inherit;font-size:var(--co-font-size-16);font-weight:400;letter-spacing:var(--co-font-letter-spacing-body);line-height:1;cursor:pointer;transition:box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-file-field__upload-btn:hover{box-shadow:var(--co-shadow-xl, var(--co-shadow-lg));transform:translateY(-1px)}.co-file-field__upload-btn co-icon{display:inline-flex;flex-shrink:0}.co-file-field__dropzone-text{color:var(--co-semantic-text-default);font-size:var(--co-font-size-18);line-height:1.25}.co-file-field__dropzone-hint{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);line-height:1.25}.co-file-field__actions{display:contents}.co-file-field__input{display:none}.co-file-field__uploaded{display:flex;flex-direction:column;gap:var(--co-spacing-lg);margin-top:var(--co-spacing-sm2)}.co-file-field__uploaded-title{color:var(--co-semantic-text-default);font-size:var(--co-font-size-22);font-weight:500;letter-spacing:-0.03em;line-height:1.25}.co-file-field__previews{display:grid;grid-template-columns:repeat(auto-fill, minmax(150px, 180px));gap:var(--co-spacing-md)}.co-file-field__preview{padding:0;border:none;border-radius:var(--co-border-radius-sm);overflow:hidden;aspect-ratio:3 / 2;background:var(--co-semantic-surface-hover);cursor:pointer}.co-file-field__preview img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-file-field__preview:hover img{transform:scale(1.02)}.co-file-field__preview--video{position:relative;background:var(--co-color-base-negro)}.co-file-field__preview-play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--co-spacing-sm2);color:var(--co-color-base-blanco);pointer-events:none}.co-file-field__preview-play-badge{display:flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--co-border-radius-full);background:var(--co-color-opacity-negro-80);box-shadow:inset 0 0 0 1px var(--co-color-opacity-blanco-25);transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-file-field__preview--video:hover .co-file-field__preview-play-badge{transform:scale(1.08)}.co-file-field__preview-play-badge co-icon{transform:translateX(1px)}.co-file-field__preview-ext{font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-overline);color:var(--co-color-opacity-blanco-80)}.co-file-field__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-file-field__row{display:flex;align-items:center;gap:var(--co-spacing-lg);padding:var(--co-spacing-xl);background:var(--co-semantic-surface-hover);border:1px solid transparent;border-radius:var(--co-border-radius-sm)}.co-file-field__row--error{border-color:var(--co-semantic-border-error, var(--co-semantic-status-error))}.co-file-field__row--dragging{opacity:0.5}.co-file-field__row--drop-target{border-color:var(--co-semantic-border-focus);background:var(--co-semantic-surface-hover)}.co-file-field__drag-handle{flex-shrink:0;display:flex;align-items:center;color:var(--co-semantic-text-secondary);cursor:grab}.co-file-field__drag-handle:active{cursor:grabbing}.co-file-field__row-icon{flex-shrink:0;color:var(--co-semantic-text-secondary);display:flex;align-items:center}.co-file-field__row--error .co-file-field__row-icon{color:var(--co-semantic-text-error, var(--co-semantic-status-error))}.co-file-field__row-icon--spin{animation:co-file-spin 0.8s linear infinite}@keyframes co-file-spin{to{transform:rotate(360deg)}}.co-file-field__row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--co-spacing-xs)}.co-file-field__row-name{color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-file-field__row-error{color:var(--co-semantic-text-error, var(--co-semantic-status-error));font-size:var(--co-font-size-12)}.co-file-field__row-size{flex-shrink:0;color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);line-height:1;white-space:nowrap}.co-file-field__progress{position:relative;height:4px;border-radius:var(--co-border-radius-full);background:var(--co-semantic-surface-hover);overflow:hidden}.co-file-field__progress-bar{position:absolute;inset:0;width:40%;border-radius:var(--co-border-radius-full);background:var(--co-semantic-status-info);transition:width var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-file-field__progress-bar:not([style]){animation:co-file-indeterminate 1.2s ease-in-out infinite}@keyframes co-file-indeterminate{0%{left:-40%}100%{left:100%}}.co-file-field__action{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer;text-decoration:none;color:var(--co-semantic-text-secondary);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-file-field__action:hover{color:var(--co-semantic-text-default)}.co-file-field__action--copied,.co-file-field__action--copied:hover{color:var(--co-color-primary-verde)}.co-file-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-file-field__helper-icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-file-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);line-height:1}.co-file-field--disabled{opacity:0.6;pointer-events:none}.co-file-field--invalid .co-file-field__dropzone,.co-file-field--error .co-file-field__dropzone{border-color:var(--co-semantic-border-error, var(--co-semantic-status-error))}.co-file-field__helper--error .co-file-field__helper-icon,.co-file-field__helper--error .co-file-field__helper-text{color:var(--co-semantic-text-error, var(--co-semantic-status-error))}:host([layout='horizontal']) .co-file-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-file-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-file-field__label{white-space:normal}:host([layout='horizontal']) .co-file-field>:not(.co-file-field__labels){grid-column:2;min-width:0}@supports not (background: color-mix(in srgb, red, transparent)){.co-file-field__dropzone{background:var(--co-semantic-surface-hover)}}"}},[257,"co-file-field",{label:[1],disabled:[4],readonly:[4],required:[4],multiple:[4],accept:[1],maxFiles:[2,"max-files"],maxBytes:[2,"max-bytes"],status:[1],helperText:[1,"helper-text"],layout:[513],locale:[1],uploadButtonText:[1,"upload-button-text"],dropText:[1,"drop-text"],uploadedTitle:[1,"uploaded-title"],reorderable:[4],files:[1],dragOver:[32],localError:[32],copiedKey:[32],armedKey:[32],dragKey:[32],overKey:[32],failedPreviews:[32]}]);function z(){"undefined"!=typeof customElements&&["co-file-field","co-icon","co-kbd","co-lightbox","co-tooltip","co-video"].forEach((i=>{switch(i){case"co-file-field":customElements.get(e(i))||customElements.define(e(i),k);break;case"co-icon":customElements.get(e(i))||n();break;case"co-kbd":customElements.get(e(i))||l();break;case"co-lightbox":customElements.get(e(i))||d();break;case"co-tooltip":customElements.get(e(i))||f();break;case"co-video":customElements.get(e(i))||h()}}))}z();const D=k,j=z;export{D as CoFileField,j as defineCustomElement}
1
+ import{t as e,p as i,H as o,c as t,h as r}from"./index.js";import{R as a}from"./p-CWneqh4n.js";import{g as s,f as n}from"./p-z0tbse7d.js";import{d as c}from"./p-qMNHMnvI.js";import{d as l}from"./p-DldA2IL3.js";import{d}from"./p-BMyWdiVO.js";import{d as f}from"./p-DRL-a5hO.js";import{d as h}from"./p-COCcx0DN.js";function p(e){if(null==e||isNaN(e))return"";if(e<1024)return e+" B";const i=e=>e.toFixed(2).replace(/\.?0+$/,"");return e<1048576?i(e/1024)+" KB":i(e/1048576)+" MB"}const u=new Set(["png","jpg","jpeg","gif","webp","svg","avif","bmp"]),v=new Set(["mp4","mov","webm","m4v","ogv"]);function m(e){const i=(e||"").split("?")[0],o=i.lastIndexOf(".");return o>=0?i.slice(o+1).toLowerCase():""}function _(e){return m(e.name)||m(e.url)}function b(e){return u.has(_(e))}function g(e){return v.has(_(e))}function y(e){return"done"===e.status&&!!e.url&&g(e)}const x=new Set(["png","jpg","jpeg","webp"]);function w(e){return g(e)||b(e)?e.url||e.thumbnail:e.thumbnail||e.url}const k={image:u,video:v},z=i(class extends o{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coFilesSelected=t(this,"coFilesSelected",3),this.coRemove=t(this,"coRemove",3),this.coClear=t(this,"coClear",3),this.coReorder=t(this,"coReorder",3),this.coCopy=t(this,"coCopy",3),this.coAnnotate=t(this,"coAnnotate",3),this.coPreviewOpen=t(this,"coPreviewOpen",3),this.disabled=!1,this.readonly=!1,this.required=!1,this.multiple=!1,this.maxFiles=100,this.status="default",this.layout="vertical",this.reorderable=!0,this.annotatable=!1,this.files="[]",this.dragOver=!1,this.localError="",this.copiedKey="",this.armedKey="",this.dragKey="",this.overKey="",this.failedPreviews=new Set,this.tempSeq=0,this.lastFilesStr="",this.lastParsed=[],this.handleDragOver=e=>{this.disabled||this.readonly||this.dragKey||(e.preventDefault(),this.dragOver=!0)},this.handleDragLeave=e=>{const i=e.relatedTarget;i&&e.currentTarget instanceof Node&&e.currentTarget.contains(i)||(this.dragOver=!1)},this.handleDrop=e=>{var i;e.preventDefault(),this.dragOver=!1,this.dragKey||(null===(i=e.dataTransfer)||void 0===i?void 0:i.files)&&this.handleFiles(e.dataTransfer.files)},this.handleBrowse=e=>{var i;this.disabled||this.readonly||e&&this.fromActionsSlot(e)||null===(i=this.inputEl)||void 0===i||i.click()},this.handleInputChange=e=>{const i=e.target;i.files&&this.handleFiles(i.files),i.value=""},this.disarmDrag=()=>{this.armedKey&&!this.dragKey&&(this.armedKey="")},this.handleRowDragEnd=()=>{this.resetDragState()}}componentWillLoad(){this.failedPreviews||(this.failedPreviews=new Set)}connectedCallback(){window.addEventListener("mouseup",this.disarmDrag)}disconnectedCallback(){window.removeEventListener("mouseup",this.disarmDrag),clearTimeout(this.copiedTimer),this.closeLightbox()}get parsedFiles(){const e=this.files;if("string"!=typeof e||!e.trim())return[];if(e===this.lastFilesStr)return this.lastParsed;let i=[];try{const o=JSON.parse(e);Array.isArray(o)&&(i=o)}catch(e){}return this.lastFilesStr=e,this.lastParsed=i,i}get strings(){return s(this.locale)}get acceptList(){const e=this.accept;if(!e)return[];let i=[];try{const o=JSON.parse(e);Array.isArray(o)&&(i=o.map(String))}catch(o){i=e.split(",")}return i.map((e=>e.trim().toLowerCase().replace(/^\./,""))).filter((e=>e&&"*"!==e))}get isInvalid(){return"error"===this.status||!!this.localError}get inputAccept(){const e=this.acceptList;if(e.length)return e.map((e=>e.includes("/")?e:"."+e)).join(",")}extOf(e){const i=e.lastIndexOf(".");return i>=0?e.slice(i+1).toLowerCase():""}validate(e){return function(e,i){if(!e.length)return!0;const o=m(i.name),t=(i.type||"").toLowerCase();return e.some((e=>{var i;if(!e.includes("/"))return e===o;if(!e.endsWith("/*"))return t===e;const r=e.slice(0,-2);return t?t.startsWith(r+"/"):!!(null===(i=k[r])||void 0===i?void 0:i.has(o))}))}(this.acceptList,e)?this.maxBytes&&e.size>this.maxBytes?n(this.strings.errTooLarge,{x:p(e.size)}):null:n(this.strings.errInvalidFormat,{x:this.extOf(e.name)})}onDownloadClick(e,i){if(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||!i.url)return;e.preventDefault();const o=i.url;(async function(e,i,o={}){const{fetchImpl:t=globalThis.fetch,doc:r=globalThis.document,urlApi:a=URL}=o;try{const o=await t(e);if(!o.ok)return!1;const s=a.createObjectURL(await o.blob()),n=r.createElement("a");return n.href=s,n.download=i||"download",n.rel="noopener noreferrer",r.body.appendChild(n),n.click(),setTimeout((()=>{n.remove(),a.revokeObjectURL(s)}),2e3),!0}catch(e){return!1}})(o,i.name).then((e=>{e||window.open(o,"_blank","noopener,noreferrer")}))}handleFiles(e){if(this.disabled||this.readonly)return;this.localError="";const i=Array.from(e);if(!i.length)return;const o=this.multiple?i:i.slice(0,1);if(this.multiple){const e=this.maxFiles-this.parsedFiles.length;if(e<=0)return void(this.localError=n(this.strings.errMaxFiles,{n:this.maxFiles}));o.length>e&&(o.length=e)}const t=[],r=[];for(const e of o){const i=this.validate(e);i?this.localError=i:(t.push(e),r.push(`tmp-${Date.now()}-${this.tempSeq++}`))}t.length&&this.coFilesSelected.emit({files:t,tempIds:r})}fromActionsSlot(e){return e.composedPath().some((e=>{var i,o;return"actions"===(null===(o=(i=e).getAttribute)||void 0===o?void 0:o.call(i,"slot"))}))}keyFor(e){var i;return e.id||e.tempId||`${e.name}:${null!==(i=e.size)&&void 0!==i?i:""}`}handleCopy(e){var i;const o=e.url||"";if(!o)return;const t=this.keyFor(e);this.coCopy.emit({id:t,url:o}),(null===(i=navigator.clipboard)||void 0===i?void 0:i.writeText)&&navigator.clipboard.writeText(o).then((()=>{this.copiedKey=t,clearTimeout(this.copiedTimer),this.copiedTimer=setTimeout((()=>this.copiedKey=""),1500)})).catch((()=>{}))}previewItems(){return this.parsedFiles.filter((e=>function(e){return function(e){return"done"===e.status&&!y(e)&&!(!e.thumbnail&&!e.url)&&(!!e.thumbnail||b(e))}(e)||y(e)}(e)&&(y(e)||!this.failedPreviews.has(this.keyFor(e)))))}handlePreviewOpen(e){const i=e.url||e.thumbnail;if(!i)return;this.coPreviewOpen.emit({id:this.keyFor(e),url:i});const o=this.previewItems(),t=o.map((e=>y(e)?{src:w(e),thumbnail:e.thumbnail,alt:e.name,kind:"video",poster:e.thumbnail}:{src:w(e),thumbnail:e.thumbnail,alt:e.name,original:e.url})),r=Math.max(0,o.findIndex((i=>this.keyFor(i)===this.keyFor(e))));this.closeLightbox();const a=document.createElement("co-lightbox");a.images=JSON.stringify(t),a.startIndex=r,this.locale&&(a.locale=this.locale),a.addEventListener("coClose",(()=>this.closeLightbox())),document.body.appendChild(a),this.lightboxEl=a,requestAnimationFrame((()=>{a.open=!0}))}closeLightbox(){const e=this.lightboxEl;this.lightboxEl=void 0,e&&(e.open=!1,setTimeout((()=>e.remove()),220))}handlePreviewError(e){this.failedPreviews=new Set([...this.failedPreviews,this.keyFor(e)])}handleRowDragStart(e,i){this.armedKey===i?(this.dragKey=i,e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",i))):e.preventDefault()}handleRowDragOver(e,i){this.dragKey&&this.dragKey!==i&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move"),this.overKey=i)}handleRowDrop(e,i){e.preventDefault(),e.stopPropagation();const o=this.parsedFiles.map((e=>this.keyFor(e))),t=o.indexOf(this.dragKey),r=o.indexOf(i);this.resetDragState(),t<0||r<0||t===r||(o.splice(r,0,...o.splice(t,1)),this.coReorder.emit(o))}resetDragState(){this.armedKey="",this.dragKey="",this.overKey=""}capacityHint(e){const i=this.maxBytes?p(this.maxBytes):"";return this.multiple&&this.maxBytes?n(e.helperBoth,{n:this.maxFiles,x:i}):this.multiple?n(e.helperFiles,{n:this.maxFiles}):this.maxBytes?n(e.helperBytes,{x:i}):""}render(){const e=this.strings,i=this.parsedFiles,o=this.localError||this.helperText,t=!(this.readonly||(this.multiple?this.multiple&&i.length>=this.maxFiles:0!==i.length)),s="default"!==this.status?"co-file-field--"+this.status:"",n=this.previewItems(),c=this.reorderable&&this.multiple&&!this.disabled&&!this.readonly&&i.length>1,l=this.capacityHint(e);return r("div",{key:"ce032373afbb21b082696b4d532655c3d599800c",class:{"co-file-field":!0,"co-file-field--disabled":this.disabled,"co-file-field--invalid":this.isInvalid,[s]:!!s},part:"wrapper"},this.label&&r("div",{key:"7650af04090b50b39e9dde6879156b51fd0a1b11",class:"co-file-field__labels"},r("label",{key:"5f305d56f5dcbe3b8d267e22471f4c6536792510",class:"co-file-field__label",part:"label"},this.label,r(a,{key:"46896eae83028b9117c32b2ab9ac21443a58c608",required:this.required}))),t&&r("div",{key:"c2767c1c6f8e0e928f328db2e985f747f34b13af",class:{"co-file-field__dropzone":!0,"co-file-field__dropzone--drag":this.dragOver},part:"dropzone",role:"button",tabIndex:this.disabled?-1:0,onClick:this.handleBrowse,onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||this.fromActionsSlot(e)||(e.preventDefault(),this.handleBrowse())},onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave,onDrop:this.handleDrop},r("button",{key:"f9b2ef43730b009a6ca322ea6cae833f86a52ff0",class:"co-file-field__upload-btn",part:"upload-button",type:"button",tabIndex:-1},r("co-icon",{key:"ffa7d7fdb830fc789ffd4ada624c450c70109701",name:"file-arrow-up",size:18}),r("span",{key:"c9c54dd9432f8c74894a0054ecdf0c59aede974a"},this.uploadButtonText||e.uploadButton)),r("span",{key:"74f8884d62b79960e0080794404f24e45d229284",class:"co-file-field__dropzone-text"},this.dropText||e.dropHint),l&&r("span",{key:"4c6bdd2de90754b50135e9212510884d1495b8d4",class:"co-file-field__dropzone-hint"},l),r("div",{key:"42bd92119fed5b9be39e7db5c351990faafc7135",class:"co-file-field__actions",part:"actions"},r("slot",{key:"fa2a649c222125ba63fa74028dba417c50f7b3f6",name:"actions"})),r("input",{key:"982021a63eb6bec0b19ca917382a6efd37938ab3",ref:e=>this.inputEl=e,class:"co-file-field__input",type:"file",multiple:this.multiple,accept:this.inputAccept,disabled:this.disabled,onChange:this.handleInputChange,"aria-hidden":"true",tabIndex:-1})),i.length>0&&r("div",{key:"95bd1f51b0a361dec2ca0b272212ef64d438db0a",class:"co-file-field__uploaded"},this.multiple&&r("div",{key:"479851cd44dbdc9ad99e9b26764f558845966c53",class:"co-file-field__uploaded-title",part:"uploaded-title"},`${this.uploadedTitle||e.uploadedTitle} (${i.length})`),n.length>0&&r("div",{key:"8be03edd2b1b8b7628d6e34fa82751045589b416",class:"co-file-field__previews",part:"previews"},n.map((i=>{const o=this.keyFor(i),t=y(i),a=this.failedPreviews.has(o)?"":i.thumbnail;return r("button",{class:{"co-file-field__preview":!0,"co-file-field__preview--video":t},part:"preview",type:"button",key:"prev-"+o,title:i.name,"aria-label":`${t?e.playVideo:e.openPreview}: ${i.name}`,onClick:()=>this.handlePreviewOpen(i)},(!t||!!a)&&r("img",{src:t?a:i.thumbnail||i.url,alt:i.name,loading:"lazy",onError:()=>this.handlePreviewError(i)}),t&&r("span",{class:"co-file-field__preview-play","aria-hidden":"true"},r("span",{class:"co-file-field__preview-play-badge"},r("co-icon",{name:"play",size:20,weight:"fill"})),!a&&r("span",{class:"co-file-field__preview-ext"},_(i).toUpperCase())))}))),r("ul",{key:"1fa661f14a8644a2703204d1faac79e5599c5e77",class:"co-file-field__list",part:"list"},i.map((i=>{const o=this.keyFor(i),t=c&&"done"===i.status;return r("li",{class:{"co-file-field__row":!0,["co-file-field__row--"+i.status]:!0,"co-file-field__row--dragging":this.dragKey===o,"co-file-field__row--drop-target":this.overKey===o},part:"row",key:o,draggable:this.armedKey===o,onDragStart:e=>this.handleRowDragStart(e,o),onDragOver:e=>this.handleRowDragOver(e,o),onDrop:e=>this.handleRowDrop(e,o),onDragEnd:this.handleRowDragEnd},t?r("co-tooltip",{content:e.dragToReorder},r("span",{class:"co-file-field__drag-handle",part:"drag-handle",onMouseDown:()=>this.armedKey=o},r("co-icon",{name:"list",size:18}))):r("co-icon",{name:"error"===i.status?"warning-circle":"uploading"===i.status?"spinner-gap":"file",size:18,class:{"co-file-field__row-icon":!0,"co-file-field__row-icon--spin":"uploading"===i.status}}),r("div",{class:"co-file-field__row-body"},r("span",{class:"co-file-field__row-name",title:i.name},function(e,i=35){return!e||e.length<=i?e:"..."+e.slice(-i)}(i.name)),"uploading"===i.status&&r("div",{class:"co-file-field__progress"},r("div",{class:"co-file-field__progress-bar",style:"number"==typeof i.progress?{width:i.progress+"%"}:void 0})),"error"===i.status&&i.error&&r("span",{class:"co-file-field__row-error"},i.error)),null!=i.size&&r("span",{class:"co-file-field__row-size"},p(i.size)),this.annotatable&&!this.disabled&&!this.readonly&&function(e){return!("done"!==e.status||!e.url)&&x.has(_(e))}(i)&&r("co-tooltip",{content:e.annotateImage},r("button",{class:"co-file-field__action",type:"button",tabIndex:-1,"aria-label":`${e.annotateImage}: ${i.name}`,onClick:()=>this.coAnnotate.emit({id:o,url:i.url,name:i.name})},r("co-icon",{name:"pencil-simple-line",size:18}))),"done"===i.status&&!!i.url&&r("co-tooltip",{content:e.downloadFile},r("a",{class:"co-file-field__action",href:i.url,target:"_blank",rel:"noopener noreferrer",download:i.name,tabIndex:-1,"aria-label":e.downloadFile,onClick:e=>this.onDownloadClick(e,i)},r("co-icon",{name:"download",size:18}))),"done"===i.status&&!!i.url&&r("co-tooltip",{content:this.copiedKey===o?e.copied:e.copyUrl},r("button",{class:{"co-file-field__action":!0,"co-file-field__action--copied":this.copiedKey===o},type:"button",tabIndex:-1,"aria-label":e.copyUrl,onClick:()=>this.handleCopy(i)},r("co-icon",{name:this.copiedKey===o?"check":"copy",size:18}))),!this.disabled&&!this.readonly&&r("co-tooltip",{content:e.removeFile},r("button",{class:"co-file-field__action",type:"button",tabIndex:-1,"aria-label":e.removeFile,onClick:()=>this.coRemove.emit(o)},r("co-icon",{name:"trash",size:18}))))})))),o&&r("div",{key:"7562fdf435667ae305e677830cae06a3374ef67b",class:{"co-file-field__helper":!0,"co-file-field__helper--error":this.isInvalid},part:"helper"},this.isInvalid&&r("co-icon",{key:"ac43b079725a8b015f2ba1a8b8f22783f60e556e",name:"warning-circle",size:14,class:"co-file-field__helper-icon"}),r("span",{key:"cd256498ce501e5b59ae1a5850f8f8ddccb98580",class:"co-file-field__helper-text"},o)))}get el(){return this}static get style(){return":host{display:block;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-file-field{display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-file-field__labels{display:flex;align-items:center;justify-content:space-between;padding:0 var(--co-spacing-xs)}.co-file-field__label{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);font-weight:400;line-height:1;white-space:nowrap;cursor:default}.co-field-required{margin-left:2px;color:var(--co-semantic-text-error, var(--co-color-status-error))}.co-field-required__caption{margin-left:4px;color:var(--co-semantic-text-muted);font-size:var(--co-font-size-12);font-weight:400}.co-field-required__caption::before{content:var(--co-field-required-text, ' (required)')}.co-file-field__dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--co-spacing-md);padding:var(--co-spacing-4xl) var(--co-spacing-2xl);background:color-mix(in srgb, var(--co-semantic-surface-hover) 55%, transparent);border:1px dashed var(--co-semantic-border-field);border-radius:var(--co-border-radius-sm);cursor:pointer;text-align:center;transition:border-color var(--co-motion-duration-fast) var(--co-motion-ease-out), background var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-file-field__dropzone:hover{border-color:var(--co-semantic-border-focus)}.co-file-field__dropzone--drag{border-color:var(--co-semantic-border-focus);background:var(--co-semantic-surface-hover)}.co-file-field__upload-btn{display:inline-flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-md) var(--co-spacing-xl);margin-bottom:var(--co-spacing-xs);background:var(--co-semantic-surface-secondary);color:var(--co-semantic-text-default);border:none;border-radius:var(--co-border-radius-full);box-shadow:var(--co-shadow-lg);font-family:inherit;font-size:var(--co-font-size-16);font-weight:400;letter-spacing:var(--co-font-letter-spacing-body);line-height:1;cursor:pointer;transition:box-shadow var(--co-motion-duration-fast) var(--co-motion-ease-out), transform var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-file-field__upload-btn:hover{box-shadow:var(--co-shadow-xl, var(--co-shadow-lg));transform:translateY(-1px)}.co-file-field__upload-btn co-icon{display:inline-flex;flex-shrink:0}.co-file-field__dropzone-text{color:var(--co-semantic-text-default);font-size:var(--co-font-size-18);line-height:1.25}.co-file-field__dropzone-hint{color:var(--co-semantic-text-secondary);font-size:var(--co-font-size-14);line-height:1.25}.co-file-field__actions{display:contents}.co-file-field__input{display:none}.co-file-field__uploaded{display:flex;flex-direction:column;gap:var(--co-spacing-lg);margin-top:var(--co-spacing-sm2)}.co-file-field__uploaded-title{color:var(--co-semantic-text-default);font-size:var(--co-font-size-22);font-weight:500;letter-spacing:-0.03em;line-height:1.25}.co-file-field__previews{display:grid;grid-template-columns:repeat(auto-fill, minmax(150px, 180px));gap:var(--co-spacing-md)}.co-file-field__preview{padding:0;border:none;border-radius:var(--co-border-radius-sm);overflow:hidden;aspect-ratio:3 / 2;background:var(--co-semantic-surface-hover);cursor:pointer}.co-file-field__preview img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-file-field__preview:hover img{transform:scale(1.02)}.co-file-field__preview--video{position:relative;background:var(--co-color-base-negro)}.co-file-field__preview-play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--co-spacing-sm2);color:var(--co-color-base-blanco);pointer-events:none}.co-file-field__preview-play-badge{display:flex;width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--co-border-radius-full);background:var(--co-color-opacity-negro-80);box-shadow:inset 0 0 0 1px var(--co-color-opacity-blanco-25);transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-file-field__preview--video:hover .co-file-field__preview-play-badge{transform:scale(1.08)}.co-file-field__preview-play-badge co-icon{transform:translateX(1px)}.co-file-field__preview-ext{font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-overline);color:var(--co-color-opacity-blanco-80)}.co-file-field__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--co-spacing-sm2)}.co-file-field__row{display:flex;align-items:center;gap:var(--co-spacing-lg);padding:var(--co-spacing-xl);background:var(--co-semantic-surface-hover);border:1px solid transparent;border-radius:var(--co-border-radius-sm)}.co-file-field__row--error{border-color:var(--co-semantic-border-error, var(--co-semantic-status-error))}.co-file-field__row--dragging{opacity:0.5}.co-file-field__row--drop-target{border-color:var(--co-semantic-border-focus);background:var(--co-semantic-surface-hover)}.co-file-field__drag-handle{flex-shrink:0;display:flex;align-items:center;color:var(--co-semantic-text-secondary);cursor:grab}.co-file-field__drag-handle:active{cursor:grabbing}.co-file-field__row-icon{flex-shrink:0;color:var(--co-semantic-text-secondary);display:flex;align-items:center}.co-file-field__row--error .co-file-field__row-icon{color:var(--co-semantic-text-error, var(--co-semantic-status-error))}.co-file-field__row-icon--spin{animation:co-file-spin 0.8s linear infinite}@keyframes co-file-spin{to{transform:rotate(360deg)}}.co-file-field__row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--co-spacing-xs)}.co-file-field__row-name{color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-file-field__row-error{color:var(--co-semantic-text-error, var(--co-semantic-status-error));font-size:var(--co-font-size-12)}.co-file-field__row-size{flex-shrink:0;color:var(--co-semantic-text-default);font-size:var(--co-font-size-14);line-height:1;white-space:nowrap}.co-file-field__progress{position:relative;height:4px;border-radius:var(--co-border-radius-full);background:var(--co-semantic-surface-hover);overflow:hidden}.co-file-field__progress-bar{position:absolute;inset:0;width:40%;border-radius:var(--co-border-radius-full);background:var(--co-semantic-status-info);transition:width var(--co-motion-duration-base) var(--co-motion-ease-out)}.co-file-field__progress-bar:not([style]){animation:co-file-indeterminate 1.2s ease-in-out infinite}@keyframes co-file-indeterminate{0%{left:-40%}100%{left:100%}}.co-file-field__action{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer;text-decoration:none;color:var(--co-semantic-text-secondary);transition:color var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-file-field__action:hover{color:var(--co-semantic-text-default)}.co-file-field__action--copied,.co-file-field__action--copied:hover{color:var(--co-color-primary-verde)}.co-file-field__helper{display:flex;align-items:center;gap:var(--co-spacing-xs);padding:0 var(--co-spacing-xs)}.co-file-field__helper-icon{flex-shrink:0;color:var(--co-semantic-text-muted);display:flex;align-items:center}.co-file-field__helper-text{color:var(--co-semantic-text-muted);font-size:var(--co-font-size-14);line-height:1}.co-file-field--disabled{opacity:0.6;pointer-events:none}.co-file-field--invalid .co-file-field__dropzone,.co-file-field--error .co-file-field__dropzone{border-color:var(--co-semantic-border-error, var(--co-semantic-status-error))}.co-file-field__helper--error .co-file-field__helper-icon,.co-file-field__helper--error .co-file-field__helper-text{color:var(--co-semantic-text-error, var(--co-semantic-status-error))}:host([layout='horizontal']) .co-file-field{display:grid;grid-template-columns:var(--co-field-label-width, max-content) 1fr;align-items:start;column-gap:var(--co-spacing-md);row-gap:var(--co-spacing-sm2)}:host([layout='horizontal']) .co-file-field__labels{grid-column:1;grid-row:1;padding-top:var(--co-spacing-sm2);min-width:0}:host([layout='horizontal']) .co-file-field__label{white-space:normal}:host([layout='horizontal']) .co-file-field>:not(.co-file-field__labels){grid-column:2;min-width:0}@supports not (background: color-mix(in srgb, red, transparent)){.co-file-field__dropzone{background:var(--co-semantic-surface-hover)}}"}},[257,"co-file-field",{label:[1],disabled:[4],readonly:[4],required:[4],multiple:[4],accept:[1],maxFiles:[2,"max-files"],maxBytes:[2,"max-bytes"],status:[1],helperText:[1,"helper-text"],layout:[513],locale:[1],uploadButtonText:[1,"upload-button-text"],dropText:[1,"drop-text"],uploadedTitle:[1,"uploaded-title"],reorderable:[4],annotatable:[4],files:[1],dragOver:[32],localError:[32],copiedKey:[32],armedKey:[32],dragKey:[32],overKey:[32],failedPreviews:[32]}]);function j(){"undefined"!=typeof customElements&&["co-file-field","co-icon","co-kbd","co-lightbox","co-tooltip","co-video"].forEach((i=>{switch(i){case"co-file-field":customElements.get(e(i))||customElements.define(e(i),z);break;case"co-icon":customElements.get(e(i))||c();break;case"co-kbd":customElements.get(e(i))||l();break;case"co-lightbox":customElements.get(e(i))||d();break;case"co-tooltip":customElements.get(e(i))||f();break;case"co-video":customElements.get(e(i))||h()}}))}j();const D=z,C=j;export{D as CoFileField,C as defineCustomElement}
@@ -1 +1 @@
1
- import{t as e,p as a,H as o,c as t,h as i,a as s}from"./index.js";import{n as r}from"./p-Ba_v-MzM.js";import{d as n}from"./p-qMNHMnvI.js";import{d as c}from"./p-DldA2IL3.js";import{d as l}from"./p-DRL-a5hO.js";const d={Home:"house",Contacts:"address-book",Companies:"buildings",Presentations:"presentation-chart",Deals:"handshake",Invoices:"receipt",Payments:"credit-card",Conversations:"chat-circle",Channels:"broadcast",ChannelProviders:"plugs-connected",ConversationFlows:"flow-arrow",PhoneNumbers:"phone",Tasks:"check-square",TaskGroups:"squares-four",WorkOrders:"clipboard-text",Tickets:"ticket",CaseTypes:"tag",EmailHubs:"at",RoutingRules:"path",Contracts:"file-text",Notes:"note",Meetings:"video-camera",Calls:"phone-call",CloudDrive:"cloud",Quotes:"quotes",ContentTemplates:"article",MessageTemplates:"chat-text",Skills:"brain",AiAgentProfiles:"robot",Insights:"chart-line",Dashboards:"gauge",Reports:"chart-bar",Emails:"envelope",ContactLists:"users-three",EmailCampaigns:"megaphone",VirtualTours:"cube",Scenes:"image",Spots:"map-pin",FloorPlans:"blueprint",Users:"user",UserTeams:"users",UserGroups:"user-circle-gear",Roles:"shield",Workspaces:"stack",AuthenticationRules:"lock-key",OauthApps:"key",ServiceCredentials:"certificate",Calendars:"calendar",CalendarPolicies:"calendar-check",CalendarGroups:"calendar-dots",CalendarEvents:"calendar-plus",ProposalWizards:"magic-wand",WizardGroups:"folders",AdHubs:"storefront",AdCampaigns:"flag-banner",Pricebooks:"book-open",PricebookEntries:"list-numbers",Products:"package",Taxes:"percent",ProductGroups:"stack",ProductFamilies:"tree-structure",ProductCategories:"tag",ProductRules:"gear-six",DiscountSchedules:"piggy-bank",LiveStreams:"broadcast",EventSubscriptions:"bell-ringing",Stages:"steps",ContactFlows:"flow-arrow",Categories:"folder-simple",CustomFilters:"funnel",Logs:"list-bullets",Devices:"cpu",Scripts:"code",Webhooks:"webhooks-logo",Endpoints:"plug",Sites:"globe",HealthChecks:"heartbeat",Plugins:"puzzle-piece",Cobs:"cube",CustomFields:"textbox",CustomUis:"layout",Documentation:"book-open-text",Sections:"article",Articles:"newspaper",Directory:"address-book",Sales:"currency-dollar",Communications:"chat-teardrop-text",Operations:"gear",Support:"lifebuoy",Tools:"wrench",Configuration:"sliders",Analytics:"chart-pie",Mailing:"envelope-simple",Billing:"money",Libraries:"books",Scheduling:"timer",Pricing:"tag",Development:"terminal",AccessControl:"shield-check",Notifications:"bell",System:"database",Iot:"wifi-high",Advertising:"megaphone",Wizards:"magic-wand",TourStudio:"cube",Docs:"file-text",Setup:"gear-six",Learning:"graduation-cap",Programs:"path",Courses:"chalkboard-teacher",Enrollments:"student",Certificates:"certificate",Assessments:"exam",Recruitment:"user-plus",Vacancies:"briefcase",Candidates:"user-list",JobApplications:"read-cv-logo",Interviews:"chats-circle",AssetManagement:"package",Assets:"devices",AssetAssignments:"user-switch",Recognition:"hands-clapping",Achievements:"trophy",Rewards:"gift",Badges:"medal",BadgeNominations:"star",Prizes:"trophy",RewardsBudgets:"wallet",RedeemedPrizes:"crown",PaymentReceipts:"hand-coins",Coupons:"seal-percent",EventManager:"calendar-star",EventProspects:"users-four",BusinessEvents:"briefcase",EventExpense:"coins",Content:"folder-open",Portals:"app-window",CommunicationCenter:"headset",Integrations:"plugs-connected",Mcp:"plug",LifecycleHooks:"arrows-clockwise",PaymentProviders:"credit-card",Stripe:"credit-card",ThirdParty:"plugs-connected",Sendgrid:"paper-plane-tilt",Apollo:"rocket-launch",Kaspr:"identification-card",OpenAi:"robot",Ultramsg:"whatsapp-logo",Slack:"slack-logo",Telegram:"telegram-logo",Discord:"discord-logo"},v=a(class extends o{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coNavigate=t(this,"coNavigate",7),this.coSearch=t(this,"coSearch",7),this.items="{}",this.activeKey="",this.mode="full",this.searchable=!1,this.searchPlaceholder="Search",this.search="",this.iconMap="{}",this.translations="{}",this.searchText="",this.expandedKeys=new Set,this.flyoutKey=null,this.flyoutPosition={top:0,bottom:null,left:0},this.parsedIconMap={},this.parsedTranslations={},this.flyoutTimeout=null,this.handleSearchInput=e=>{this.searchText=e.target.value,this.coSearch.emit(this.searchText)}}onIconMapChange(){this.parseIconMap()}onTranslationsChange(){this.parseTranslations()}onSearchChange(){this.searchText=this.search}onActiveKeyChange(){this.autoExpandForActiveKey()}onItemsChange(){this.autoExpandForActiveKey()}componentWillLoad(){this.parseIconMap(),this.parseTranslations(),this.autoExpandForActiveKey()}componentDidLoad(){}parseIconMap(){try{this.parsedIconMap=Object.assign(Object.assign({},d),JSON.parse(this.iconMap))}catch(e){this.parsedIconMap=Object.assign({},d)}}parseTranslations(){try{this.parsedTranslations=JSON.parse(this.translations)}catch(e){this.parsedTranslations={}}}get parsedItems(){try{const e=JSON.parse(this.items);return Array.isArray(e)?e:this.transformMenuData(e,0)}catch(e){return[]}}transformMenuData(e,a){return Object.keys(e).map((o=>{const t=e[o],i=t.modelName||"object"==typeof t&&!Object.keys(t).some((e=>"object"==typeof t[e]&&"modelName"!==e));return{key:o,label:o,url:t.url,target:t.target,modelName:i?t.modelName:void 0,customIcon:t.customIcon,children:i?void 0:this.transformMenuData(t,a+1),level:a}}))}get filteredItems(){return this.searchText?this.filterRecursive(this.parsedItems,r(this.searchText)):this.parsedItems}filterRecursive(e,a){const o=[];for(const t of e)if(r(this.getLabel(t.key)).includes(a))o.push(t);else if(t.children){const e=this.filterRecursive(t.children,a);e.length>0&&o.push(Object.assign(Object.assign({},t),{children:e}))}return o}autoExpandForActiveKey(){if(!this.activeKey)return;const e=new Set(this.expandedKeys);this.findAndExpandParents(this.parsedItems,this.activeKey,e),this.expandedKeys=e}findAndExpandParents(e,a,o){for(const t of e){if(t.key===a)return!0;if(t.children&&this.findAndExpandParents(t.children,a,o))return o.add(t.key),!0}return!1}getLabel(e){return this.parsedTranslations[e]?this.parsedTranslations[e]:e.replace(/([a-z])([A-Z])/g,"$1 $2")}getIcon(e){return this.parsedIconMap[e]||"circle"}isLeaf(e){return!e.children||0===e.children.length}hasActiveDescendant(e){return e.key===this.activeKey||!!e.children&&e.children.some((e=>this.hasActiveDescendant(e)))}toggleExpand(e){const a=new Set(this.expandedKeys);a.has(e)?a.delete(e):a.add(e),this.expandedKeys=a}handleLeafClick(e){this.flyoutKey=null,this.coNavigate.emit({key:e.key,modelName:e.modelName,url:e.url,target:e.target,customIcon:e.customIcon})}renderSearch(){return this.searchable&&"min"!==this.mode?i("div",{class:"co-sidebar-nav__search"},i("co-icon",{name:"magnifying-glass",size:16}),i("input",{type:"text",class:"co-sidebar-nav__search-input",placeholder:this.searchPlaceholder,value:this.searchText,onInput:this.handleSearchInput}),this.searchText&&i("button",{class:"co-sidebar-nav__search-clear",onClick:()=>{this.searchText="",this.coSearch.emit("")}},i("co-icon",{name:"x",size:14}))):null}renderIcon(e,a=16){if(e.customIcon)return i("img",{class:"co-sidebar-nav__custom-icon",src:e.customIcon,alt:""});const o=e.icon||this.getIcon(e.key);return i("co-icon",{name:o,size:a})}renderHighlightedLabel(e){const a=this.getLabel(e);if(!this.searchText)return a;const o=this.searchText.toLowerCase(),t=a.toLowerCase().indexOf(o);if(-1===t)return a;const s=a.slice(0,t),r=a.slice(t,t+o.length),n=a.slice(t+o.length);return[s,i("mark",{class:"co-sidebar-nav__highlight"},r),n]}renderLeafItem(e,a=!1){const o=e.key===this.activeKey,t=this.getLabel(e.key),s="full"===this.mode||a,r=i("button",{class:{"co-sidebar-nav__item":!0,"co-sidebar-nav__item--active":o},onClick:()=>this.handleLeafClick(e),"aria-label":s?void 0:t},i("span",{class:"co-sidebar-nav__item-icon"},this.renderIcon(e,s?16:18)),s&&i("span",{class:"co-sidebar-nav__item-label"},this.renderHighlightedLabel(e.key)));return"min"!==this.mode||a?r:i("co-tooltip",{content:t,placement:"right",offset:12},r)}openFlyout(e,a,o=0){if(clearTimeout(this.flyoutTimeout),a){const e=a.getBoundingClientRect(),t=e.right+8,i=window.innerHeight;this.flyoutPosition=e.top+(28+32*o+24)>i-16?{top:null,bottom:i-e.bottom,left:t}:{top:e.top,bottom:null,left:t}}this.flyoutKey=e}closeFlyout(){this.flyoutTimeout=setTimeout((()=>{this.flyoutKey=null}),150)}renderExpansion(e){const a=this.expandedKeys.has(e.key)||this.searchText.length>0,o=this.hasActiveDescendant(e);if("min"===this.mode){const a=this.flyoutKey===e.key;return i("div",{class:"co-sidebar-nav__flyout-anchor",onMouseEnter:a=>{var o;return this.openFlyout(e.key,a.currentTarget,(null===(o=e.children)||void 0===o?void 0:o.length)||0)},onMouseLeave:()=>this.closeFlyout()},i("button",{class:{"co-sidebar-nav__item":!0,"co-sidebar-nav__item--active":o||a},title:this.getLabel(e.key),onClick:a=>{var o;a.stopPropagation();const t=a.currentTarget.closest(".co-sidebar-nav__flyout-anchor");this.flyoutKey===e.key?this.flyoutKey=null:this.openFlyout(e.key,t||void 0,(null===(o=e.children)||void 0===o?void 0:o.length)||0)}},i("span",{class:"co-sidebar-nav__item-icon"},this.renderIcon(e,18))),a&&i("div",{class:"co-sidebar-nav__flyout",style:Object.assign(Object.assign(Object.assign({},null!==this.flyoutPosition.top?{top:this.flyoutPosition.top+"px"}:{}),null!==this.flyoutPosition.bottom?{bottom:this.flyoutPosition.bottom+"px"}:{}),{left:this.flyoutPosition.left+"px"}),onMouseEnter:()=>clearTimeout(this.flyoutTimeout),onMouseLeave:()=>this.closeFlyout()},i("span",{class:"co-sidebar-nav__flyout-title"},this.renderHighlightedLabel(e.key)),e.children.map((e=>this.renderLeafItem(e,!0)))))}return i("div",{class:{"co-sidebar-nav__expansion":!0,"co-sidebar-nav__expansion--expanded":a,"co-sidebar-nav__expansion--active":o}},i("button",{class:"co-sidebar-nav__expansion-header",onClick:()=>this.toggleExpand(e.key)},i("span",{class:"co-sidebar-nav__item-icon"},this.renderIcon(e)),i("span",{class:"co-sidebar-nav__item-label"},this.renderHighlightedLabel(e.key)),i("co-icon",{name:"caret-right",size:14,class:"co-sidebar-nav__expansion-caret"})),i("div",{class:"co-sidebar-nav__expansion-body"},e.children.map((e=>this.renderItem(e)))))}renderCategory(e){return"min"===this.mode?i("div",{class:"co-sidebar-nav__category--min"},i("span",{class:"co-sidebar-nav__category-label co-sidebar-nav__category-spacer","aria-hidden":"true"}," "),e.children.map((e=>this.renderItem(e)))):i("div",{class:"co-sidebar-nav__category"},i("span",{class:"co-sidebar-nav__category-label"},this.renderHighlightedLabel(e.key)),i("div",{class:"co-sidebar-nav__category-items"},e.children.map((e=>this.renderItem(e)))))}renderItem(e){return this.isLeaf(e)?this.renderLeafItem(e):0!==e.level&&void 0!==e.level||e.modelName?this.renderExpansion(e):this.renderCategory(e)}render(){const e=this.filteredItems;return i(s,{key:"7e9637d98b9a2a698f6b82050b0f9cdadda66798",class:{"flyout-open":!!this.flyoutKey}},i("nav",{key:"c3ad14a4e294be4c2b803c93a4ddbf42daae5dd0",class:{"co-sidebar-nav":!0,"co-sidebar-nav--min":"min"===this.mode}},this.renderSearch(),i("div",{key:"2b2f5c39b6a529e1993695f4cda5ba5c5965c17e",class:"co-sidebar-nav__items"},e.map((e=>this.renderItem(e))))))}get el(){return this}static get watchers(){return{iconMap:[{onIconMapChange:0}],translations:[{onTranslationsChange:0}],search:[{onSearchChange:0}],activeKey:[{onActiveKeyChange:0}],items:[{onItemsChange:0}]}}static get style(){return'@property --co-sidebar-fade-top{syntax:"<length>";inherits:false;initial-value:0px}@property --co-sidebar-fade-bottom{syntax:"<length>";inherits:false;initial-value:0px}:host{display:block;height:100%;overflow-y:auto;overflow-x:hidden;font-family:var(--co-font-family-primary);scrollbar-width:thin;scrollbar-color:transparent transparent;--co-sidebar-fade-size:28px}:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%)}@supports (animation-timeline: scroll()){:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){animation:co-sidebar-edge-fade linear both;animation-timeline:scroll(self block)}}@keyframes co-sidebar-edge-fade{0%{--co-sidebar-fade-top:0px;--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}8%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}92%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}100%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:0px}}:host(:hover){scrollbar-color:var(--co-color-opacity-blanco-16) transparent}:host::-webkit-scrollbar{width:6px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}:host(:hover)::-webkit-scrollbar-thumb{background:var(--co-color-opacity-blanco-16)}:host(:hover)::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-blanco-25)}:host(:hover)::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-blanco-50)}:host([mode="min"]){scrollbar-width:none !important}:host([mode="min"])::-webkit-scrollbar{width:0 !important}.co-sidebar-nav{display:flex;flex-direction:column;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs)}.co-sidebar-nav--min{align-items:center;padding:var(--co-spacing-xs) 0}.co-sidebar-nav__search{display:flex;align-items:center;gap:var(--co-spacing-sm);padding:var(--co-spacing-xs) var(--co-spacing-sm);margin:0 var(--co-spacing-xs) var(--co-spacing-xs);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-xs);background:var(--co-semantic-surface-secondary);height:32px}.co-sidebar-nav__search co-icon{color:var(--co-semantic-text-muted);flex-shrink:0}.co-sidebar-nav__search-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);letter-spacing:var(--co-font-letter-spacing-body);color:var(--co-semantic-text-default);min-width:0}.co-sidebar-nav__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-sidebar-nav__search-clear{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;padding:0;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav__search-clear:hover{color:var(--co-semantic-text-default)}.co-sidebar-nav__items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav--min .co-sidebar-nav__items{align-items:center}.co-sidebar-nav__category{display:flex;flex-direction:column}.co-sidebar-nav__category+.co-sidebar-nav__category{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-label{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:0.08em;padding:var(--co-spacing-lg) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__category-items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav__category--min{display:flex;flex-direction:column;align-items:center}.co-sidebar-nav__category--min+.co-sidebar-nav__category--min{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-spacer{visibility:hidden;white-space:nowrap;padding-left:0;padding-right:0}.co-sidebar-nav__category--min>:not(.co-sidebar-nav__category-spacer)+*{margin-top:var(--co-spacing-xxs)}.co-sidebar-nav__item{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-default);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__item:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium);--co-glass-blur:12px;--co-glass-saturate:1.3;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover)));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.co-sidebar-nav__item-icon co-icon{color:inherit}.co-sidebar-nav__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__custom-icon{width:18px;height:18px;object-fit:contain;border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav--min co-tooltip{line-height:0}.co-sidebar-nav--min .co-sidebar-nav__item{width:36px;height:28px;padding:0;justify-content:center;border-radius:var(--co-border-radius-xs)}.co-sidebar-nav__flyout-anchor{position:relative}.co-sidebar-nav__flyout{position:fixed;min-width:180px;max-width:240px;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-subtle);color:var(--co-semantic-text-default);border-radius:var(--co-border-radius-sm);box-shadow:var(--co-shadow-lg);padding:var(--co-spacing-md);display:flex;flex-direction:column;z-index:9999;animation:co-flyout-in var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-sidebar-nav__flyout-title{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:var(--co-font-letter-spacing-overline);padding:var(--co-spacing-xxs) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none}.co-sidebar-nav__flyout .co-sidebar-nav__item{width:100%;height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);gap:var(--co-spacing-md);font-weight:var(--co-font-weight-regular);color:var(--co-semantic-text-default);line-height:var(--co-font-line-height-none);justify-content:flex-start}.co-sidebar-nav__flyout .co-sidebar-nav__item:hover{background:var(--co-semantic-surface-control)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon{display:flex;width:24px;height:24px}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon co-icon{color:var(--co-semantic-text-default)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active .co-sidebar-nav__item-icon co-icon{color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}@keyframes co-flyout-in{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:translateX(0)}}.co-sidebar-nav__expansion{display:flex;flex-direction:column}.co-sidebar-nav__expansion-header{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-secondary);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__expansion-header:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion--active>.co-sidebar-nav__expansion-header{color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion-caret{margin-left:auto;flex-shrink:0;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out);color:var(--co-semantic-text-muted)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-header .co-sidebar-nav__expansion-caret{transform:rotate(90deg)}.co-sidebar-nav__expansion-body{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);overflow:hidden;max-height:0;opacity:0;transition:max-height var(--co-motion-duration-slow) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out), padding var(--co-motion-duration-base) var(--co-motion-ease-out);padding-left:var(--co-spacing-xl)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-body{max-height:1000px;opacity:1;padding-top:var(--co-spacing-xxs)}.co-sidebar-nav__highlight{all:unset;background-color:var(--co-color-primary-amarillo, #facc15);color:var(--co-color-base-negro, #000);border-radius:2px;padding:0 1px}'}},[1,"co-sidebar-nav",{items:[1],activeKey:[513,"active-key"],mode:[513],searchable:[4],searchPlaceholder:[1,"search-placeholder"],search:[1],iconMap:[1,"icon-map"],translations:[1],searchText:[32],expandedKeys:[32],flyoutKey:[32],flyoutPosition:[32]},void 0,{iconMap:[{onIconMapChange:0}],translations:[{onTranslationsChange:0}],search:[{onSearchChange:0}],activeKey:[{onActiveKeyChange:0}],items:[{onItemsChange:0}]}]);function h(){"undefined"!=typeof customElements&&["co-sidebar-nav","co-icon","co-kbd","co-tooltip"].forEach((a=>{switch(a){case"co-sidebar-nav":customElements.get(e(a))||customElements.define(e(a),v);break;case"co-icon":customElements.get(e(a))||n();break;case"co-kbd":customElements.get(e(a))||c();break;case"co-tooltip":customElements.get(e(a))||l()}}))}h();const p=v,m=h;export{p as CoSidebarNav,m as defineCustomElement}
1
+ import{t as e,p as a,H as o,c as t,h as i,a as s}from"./index.js";import{n as r}from"./p-Ba_v-MzM.js";import{d as n}from"./p-qMNHMnvI.js";import{d as c}from"./p-DldA2IL3.js";import{d as l}from"./p-DRL-a5hO.js";const d={Home:"house",Contacts:"address-book",Companies:"buildings",Leads:"user-focus",Presentations:"presentation-chart",Deals:"handshake",TestDrive:"steering-wheel",Invoices:"receipt",Payments:"credit-card",Conversations:"chat-circle",Channels:"broadcast",ChannelProviders:"plugs-connected",ConversationFlows:"flow-arrow",PhoneNumbers:"phone",Tasks:"check-square",TaskGroups:"squares-four",WorkOrders:"clipboard-text",Tickets:"ticket",CaseTypes:"tag",EmailHubs:"at",RoutingRules:"path",Contracts:"file-text",Notes:"note",Meetings:"video-camera",Calls:"phone-call",CloudDrive:"cloud",Forms:"note-pencil",Quotes:"quotes",ContentTemplates:"article",MessageTemplates:"chat-text",Skills:"brain",AiAgentProfiles:"robot",Insights:"chart-line",Dashboards:"gauge",Reports:"chart-bar",Emails:"envelope",ContactLists:"users-three",EmailCampaigns:"megaphone",VirtualTours:"cube",Scenes:"image",Spots:"map-pin",FloorPlans:"blueprint",Users:"user",UserTeams:"users",Teams:"users",UserGroups:"user-circle-gear",Roles:"shield",Workspaces:"stack",AuthenticationRules:"lock-key",OauthApps:"key",ServiceCredentials:"certificate",Calendars:"calendar",CalendarPolicies:"calendar-check",CalendarGroups:"calendar-dots",CalendarEvents:"calendar-plus",ProposalWizards:"magic-wand",WizardGroups:"folders",ProposalWizardGroup:"folders",AdHubs:"storefront",AdCampaigns:"flag-banner",Pricebooks:"book-open",PricebookEntries:"list-numbers",Products:"package",Taxes:"percent",ProductGroups:"stack",ProductFamilies:"tree-structure",ProductCategories:"tag",ProductRules:"gear-six",DiscountSchedules:"piggy-bank",LiveStreams:"broadcast",EventSubscriptions:"bell-ringing",Stages:"steps",ContactFlows:"flow-arrow",Categories:"folder-simple",CustomFilters:"funnel",Logs:"list-bullets",ContactProtocols:"list-checks",Scorings:"chart-line-up",Devices:"cpu",Scripts:"code",Webhooks:"webhooks-logo",Endpoints:"plug",Sites:"globe",HealthChecks:"heartbeat",Plugins:"puzzle-piece",Cobs:"cube",CustomFields:"textbox",CustomUis:"layout",Documentation:"book-open-text",Sections:"article",Articles:"newspaper",Directory:"address-book",Sales:"currency-dollar",Communications:"chat-teardrop-text",Operations:"gear",Support:"lifebuoy",Tools:"wrench",Configuration:"sliders",Analytics:"chart-pie",Mailing:"envelope-simple",Billing:"money",Libraries:"books",Scheduling:"timer",Pricing:"tag",Development:"terminal",AccessControl:"shield-check",Notifications:"bell",System:"database",Iot:"wifi-high",Advertising:"megaphone",Wizards:"magic-wand",TourStudio:"cube",Docs:"file-text",Setup:"gear-six",SalesAndMarketing:"trend-up",CustomerService:"lifebuoy",HumanResources:"identification-badge",TicketsSetup:"ticket",CommunicationCenterSetup:"headset",Inventory:"warehouse",Branches:"building-office",ItemStock:"barcode",Learning:"graduation-cap",Programs:"path",Courses:"chalkboard-teacher",Enrollments:"student",Certificates:"certificate",Assessments:"exam",Recruitment:"user-plus",Vacancies:"briefcase",Candidates:"user-list",JobApplications:"read-cv-logo",Interviews:"chats-circle",AssetManagement:"package",Assets:"devices",AssetAssignments:"user-switch",Recognition:"hands-clapping",Achievements:"trophy",Rewards:"gift",Badges:"medal",BadgeNominations:"star",Prizes:"trophy",RewardsBudgets:"wallet",RedeemedPrizes:"crown",PaymentReceipts:"hand-coins",Coupons:"seal-percent",EventManager:"calendar-star",EventProspects:"users-four",BusinessEvents:"briefcase",EventExpense:"coins",Content:"folder-open",Portals:"app-window",CommunicationCenter:"headset",Integrations:"plugs-connected",Mcp:"plug",LifecycleHooks:"arrows-clockwise",PaymentProviders:"credit-card",Stripe:"credit-card",ThirdParty:"plugs-connected",Sendgrid:"paper-plane-tilt",Apollo:"rocket-launch",Kaspr:"identification-card",OpenAi:"robot",Ultramsg:"whatsapp-logo",Slack:"slack-logo",Telegram:"telegram-logo",Discord:"discord-logo"},v=a(class extends o{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.coNavigate=t(this,"coNavigate",7),this.coSearch=t(this,"coSearch",7),this.items="{}",this.activeKey="",this.mode="full",this.searchable=!1,this.searchPlaceholder="Search",this.search="",this.iconMap="{}",this.translations="{}",this.searchText="",this.expandedKeys=new Set,this.flyoutKey=null,this.flyoutPosition={top:0,bottom:null,left:0},this.parsedIconMap={},this.parsedTranslations={},this.flyoutTimeout=null,this.handleSearchInput=e=>{this.searchText=e.target.value,this.coSearch.emit(this.searchText)}}onIconMapChange(){this.parseIconMap()}onTranslationsChange(){this.parseTranslations()}onSearchChange(){this.searchText=this.search}onActiveKeyChange(){this.autoExpandForActiveKey()}onItemsChange(){this.autoExpandForActiveKey()}componentWillLoad(){this.parseIconMap(),this.parseTranslations(),this.autoExpandForActiveKey()}componentDidLoad(){}parseIconMap(){try{this.parsedIconMap=Object.assign(Object.assign({},d),JSON.parse(this.iconMap))}catch(e){this.parsedIconMap=Object.assign({},d)}}parseTranslations(){try{this.parsedTranslations=JSON.parse(this.translations)}catch(e){this.parsedTranslations={}}}get parsedItems(){try{const e=JSON.parse(this.items);return Array.isArray(e)?e:this.transformMenuData(e,0)}catch(e){return[]}}transformMenuData(e,a){return Object.keys(e).map((o=>{const t=e[o],i=t.modelName||"object"==typeof t&&!Object.keys(t).some((e=>"object"==typeof t[e]&&"modelName"!==e));return{key:o,label:o,url:t.url,target:t.target,modelName:i?t.modelName:void 0,customIcon:t.customIcon,children:i?void 0:this.transformMenuData(t,a+1),level:a}}))}get filteredItems(){return this.searchText?this.filterRecursive(this.parsedItems,r(this.searchText)):this.parsedItems}filterRecursive(e,a){const o=[];for(const t of e)if(r(this.getLabel(t.key)).includes(a))o.push(t);else if(t.children){const e=this.filterRecursive(t.children,a);e.length>0&&o.push(Object.assign(Object.assign({},t),{children:e}))}return o}autoExpandForActiveKey(){if(!this.activeKey)return;const e=new Set(this.expandedKeys);this.findAndExpandParents(this.parsedItems,this.activeKey,e),this.expandedKeys=e}findAndExpandParents(e,a,o){for(const t of e){if(t.key===a)return!0;if(t.children&&this.findAndExpandParents(t.children,a,o))return o.add(t.key),!0}return!1}getLabel(e){return this.parsedTranslations[e]?this.parsedTranslations[e]:e.replace(/([a-z])([A-Z])/g,"$1 $2")}getIcon(e){return this.parsedIconMap[e]||"circle"}isLeaf(e){return!e.children||0===e.children.length}hasActiveDescendant(e){return e.key===this.activeKey||!!e.children&&e.children.some((e=>this.hasActiveDescendant(e)))}toggleExpand(e){const a=new Set(this.expandedKeys);a.has(e)?a.delete(e):a.add(e),this.expandedKeys=a}handleLeafClick(e){this.flyoutKey=null,this.coNavigate.emit({key:e.key,modelName:e.modelName,url:e.url,target:e.target,customIcon:e.customIcon})}renderSearch(){return this.searchable&&"min"!==this.mode?i("div",{class:"co-sidebar-nav__search"},i("co-icon",{name:"magnifying-glass",size:16}),i("input",{type:"text",class:"co-sidebar-nav__search-input",placeholder:this.searchPlaceholder,value:this.searchText,onInput:this.handleSearchInput}),this.searchText&&i("button",{class:"co-sidebar-nav__search-clear",onClick:()=>{this.searchText="",this.coSearch.emit("")}},i("co-icon",{name:"x",size:14}))):null}renderIcon(e,a=16){if(e.customIcon)return i("img",{class:"co-sidebar-nav__custom-icon",src:e.customIcon,alt:""});const o=e.icon||this.getIcon(e.key);return i("co-icon",{name:o,size:a})}renderHighlightedLabel(e){const a=this.getLabel(e);if(!this.searchText)return a;const o=this.searchText.toLowerCase(),t=a.toLowerCase().indexOf(o);if(-1===t)return a;const s=a.slice(0,t),r=a.slice(t,t+o.length),n=a.slice(t+o.length);return[s,i("mark",{class:"co-sidebar-nav__highlight"},r),n]}renderLeafItem(e,a=!1){const o=e.key===this.activeKey,t=this.getLabel(e.key),s="full"===this.mode||a,r=i("button",{class:{"co-sidebar-nav__item":!0,"co-sidebar-nav__item--active":o},onClick:()=>this.handleLeafClick(e),"aria-label":s?void 0:t},i("span",{class:"co-sidebar-nav__item-icon"},this.renderIcon(e,s?16:18)),s&&i("span",{class:"co-sidebar-nav__item-label"},this.renderHighlightedLabel(e.key)));return"min"!==this.mode||a?r:i("co-tooltip",{content:t,placement:"right",offset:12},r)}openFlyout(e,a,o=0){if(clearTimeout(this.flyoutTimeout),a){const e=a.getBoundingClientRect(),t=e.right+8,i=window.innerHeight;this.flyoutPosition=e.top+(28+32*o+24)>i-16?{top:null,bottom:i-e.bottom,left:t}:{top:e.top,bottom:null,left:t}}this.flyoutKey=e}closeFlyout(){this.flyoutTimeout=setTimeout((()=>{this.flyoutKey=null}),150)}renderExpansion(e){const a=this.expandedKeys.has(e.key)||this.searchText.length>0,o=this.hasActiveDescendant(e);if("min"===this.mode){const a=this.flyoutKey===e.key;return i("div",{class:"co-sidebar-nav__flyout-anchor",onMouseEnter:a=>{var o;return this.openFlyout(e.key,a.currentTarget,(null===(o=e.children)||void 0===o?void 0:o.length)||0)},onMouseLeave:()=>this.closeFlyout()},i("button",{class:{"co-sidebar-nav__item":!0,"co-sidebar-nav__item--active":o||a},title:this.getLabel(e.key),onClick:a=>{var o;a.stopPropagation();const t=a.currentTarget.closest(".co-sidebar-nav__flyout-anchor");this.flyoutKey===e.key?this.flyoutKey=null:this.openFlyout(e.key,t||void 0,(null===(o=e.children)||void 0===o?void 0:o.length)||0)}},i("span",{class:"co-sidebar-nav__item-icon"},this.renderIcon(e,18))),a&&i("div",{class:"co-sidebar-nav__flyout",style:Object.assign(Object.assign(Object.assign({},null!==this.flyoutPosition.top?{top:this.flyoutPosition.top+"px"}:{}),null!==this.flyoutPosition.bottom?{bottom:this.flyoutPosition.bottom+"px"}:{}),{left:this.flyoutPosition.left+"px"}),onMouseEnter:()=>clearTimeout(this.flyoutTimeout),onMouseLeave:()=>this.closeFlyout()},i("span",{class:"co-sidebar-nav__flyout-title"},this.renderHighlightedLabel(e.key)),e.children.map((e=>this.renderLeafItem(e,!0)))))}return i("div",{class:{"co-sidebar-nav__expansion":!0,"co-sidebar-nav__expansion--expanded":a,"co-sidebar-nav__expansion--active":o}},i("button",{class:"co-sidebar-nav__expansion-header",onClick:()=>this.toggleExpand(e.key)},i("span",{class:"co-sidebar-nav__item-icon"},this.renderIcon(e)),i("span",{class:"co-sidebar-nav__item-label"},this.renderHighlightedLabel(e.key)),i("co-icon",{name:"caret-right",size:14,class:"co-sidebar-nav__expansion-caret"})),i("div",{class:"co-sidebar-nav__expansion-body"},e.children.map((e=>this.renderItem(e)))))}renderCategory(e){return"min"===this.mode?i("div",{class:"co-sidebar-nav__category--min"},i("span",{class:"co-sidebar-nav__category-label co-sidebar-nav__category-spacer","aria-hidden":"true"}," "),e.children.map((e=>this.renderItem(e)))):i("div",{class:"co-sidebar-nav__category"},i("span",{class:"co-sidebar-nav__category-label"},this.renderHighlightedLabel(e.key)),i("div",{class:"co-sidebar-nav__category-items"},e.children.map((e=>this.renderItem(e)))))}renderItem(e){return this.isLeaf(e)?this.renderLeafItem(e):0!==e.level&&void 0!==e.level||e.modelName?this.renderExpansion(e):this.renderCategory(e)}render(){const e=this.filteredItems;return i(s,{key:"a7c5661ad2613a6f2c45c37e6def2e4c8d7e9801",class:{"flyout-open":!!this.flyoutKey}},i("nav",{key:"597d59612958ab2014a7db0ad561abd1db15524f",class:{"co-sidebar-nav":!0,"co-sidebar-nav--min":"min"===this.mode}},this.renderSearch(),i("div",{key:"55a5bb260444a26e3e2228fb08c30c15746994a9",class:"co-sidebar-nav__items"},e.map((e=>this.renderItem(e))))))}get el(){return this}static get watchers(){return{iconMap:[{onIconMapChange:0}],translations:[{onTranslationsChange:0}],search:[{onSearchChange:0}],activeKey:[{onActiveKeyChange:0}],items:[{onItemsChange:0}]}}static get style(){return'@property --co-sidebar-fade-top{syntax:"<length>";inherits:false;initial-value:0px}@property --co-sidebar-fade-bottom{syntax:"<length>";inherits:false;initial-value:0px}:host{display:block;height:100%;overflow-y:auto;overflow-x:hidden;font-family:var(--co-font-family-primary);scrollbar-width:thin;scrollbar-color:transparent transparent;--co-sidebar-fade-size:28px}:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%)}@supports (animation-timeline: scroll()){:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){animation:co-sidebar-edge-fade linear both;animation-timeline:scroll(self block)}}@keyframes co-sidebar-edge-fade{0%{--co-sidebar-fade-top:0px;--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}8%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}92%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}100%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:0px}}:host(:hover){scrollbar-color:var(--co-color-opacity-blanco-16) transparent}:host::-webkit-scrollbar{width:6px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}:host(:hover)::-webkit-scrollbar-thumb{background:var(--co-color-opacity-blanco-16)}:host(:hover)::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-blanco-25)}:host(:hover)::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-blanco-50)}:host([mode="min"]){scrollbar-width:none !important}:host([mode="min"])::-webkit-scrollbar{width:0 !important}.co-sidebar-nav{display:flex;flex-direction:column;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs)}.co-sidebar-nav--min{align-items:center;padding:var(--co-spacing-xs) 0}.co-sidebar-nav__search{display:flex;align-items:center;gap:var(--co-spacing-sm);padding:var(--co-spacing-xs) var(--co-spacing-sm);margin:0 var(--co-spacing-xs) var(--co-spacing-xs);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-xs);background:var(--co-semantic-surface-secondary);height:32px}.co-sidebar-nav__search co-icon{color:var(--co-semantic-text-muted);flex-shrink:0}.co-sidebar-nav__search-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);letter-spacing:var(--co-font-letter-spacing-body);color:var(--co-semantic-text-default);min-width:0}.co-sidebar-nav__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-sidebar-nav__search-clear{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;padding:0;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav__search-clear:hover{color:var(--co-semantic-text-default)}.co-sidebar-nav__items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav--min .co-sidebar-nav__items{align-items:center}.co-sidebar-nav__category{display:flex;flex-direction:column}.co-sidebar-nav__category+.co-sidebar-nav__category{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-label{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:0.08em;padding:var(--co-spacing-lg) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__category-items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav__category--min{display:flex;flex-direction:column;align-items:center}.co-sidebar-nav__category--min+.co-sidebar-nav__category--min{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-spacer{visibility:hidden;white-space:nowrap;padding-left:0;padding-right:0}.co-sidebar-nav__category--min>:not(.co-sidebar-nav__category-spacer)+*{margin-top:var(--co-spacing-xxs)}.co-sidebar-nav__item{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-default);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__item:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium);--co-glass-blur:12px;--co-glass-saturate:1.3;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover)));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.co-sidebar-nav__item-icon co-icon{color:inherit}.co-sidebar-nav__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__custom-icon{width:18px;height:18px;object-fit:contain;border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav--min co-tooltip{line-height:0}.co-sidebar-nav--min .co-sidebar-nav__item{width:36px;height:28px;padding:0;justify-content:center;border-radius:var(--co-border-radius-xs)}.co-sidebar-nav__flyout-anchor{position:relative}.co-sidebar-nav__flyout{position:fixed;min-width:180px;max-width:240px;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-subtle);color:var(--co-semantic-text-default);border-radius:var(--co-border-radius-sm);box-shadow:var(--co-shadow-lg);padding:var(--co-spacing-md);display:flex;flex-direction:column;z-index:9999;animation:co-flyout-in var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-sidebar-nav__flyout-title{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:var(--co-font-letter-spacing-overline);padding:var(--co-spacing-xxs) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none}.co-sidebar-nav__flyout .co-sidebar-nav__item{width:100%;height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);gap:var(--co-spacing-md);font-weight:var(--co-font-weight-regular);color:var(--co-semantic-text-default);line-height:var(--co-font-line-height-none);justify-content:flex-start}.co-sidebar-nav__flyout .co-sidebar-nav__item:hover{background:var(--co-semantic-surface-control)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon{display:flex;width:24px;height:24px}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon co-icon{color:var(--co-semantic-text-default)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active .co-sidebar-nav__item-icon co-icon{color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}@keyframes co-flyout-in{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:translateX(0)}}.co-sidebar-nav__expansion{display:flex;flex-direction:column}.co-sidebar-nav__expansion-header{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-secondary);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__expansion-header:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion--active>.co-sidebar-nav__expansion-header{color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion-caret{margin-left:auto;flex-shrink:0;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out);color:var(--co-semantic-text-muted)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-header .co-sidebar-nav__expansion-caret{transform:rotate(90deg)}.co-sidebar-nav__expansion-body{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);overflow:hidden;max-height:0;opacity:0;transition:max-height var(--co-motion-duration-slow) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out), padding var(--co-motion-duration-base) var(--co-motion-ease-out);padding-left:var(--co-spacing-xl)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-body{max-height:1000px;opacity:1;padding-top:var(--co-spacing-xxs)}.co-sidebar-nav__highlight{all:unset;background-color:var(--co-color-primary-amarillo, #facc15);color:var(--co-color-base-negro, #000);border-radius:2px;padding:0 1px}'}},[1,"co-sidebar-nav",{items:[1],activeKey:[513,"active-key"],mode:[513],searchable:[4],searchPlaceholder:[1,"search-placeholder"],search:[1],iconMap:[1,"icon-map"],translations:[1],searchText:[32],expandedKeys:[32],flyoutKey:[32],flyoutPosition:[32]},void 0,{iconMap:[{onIconMapChange:0}],translations:[{onTranslationsChange:0}],search:[{onSearchChange:0}],activeKey:[{onActiveKeyChange:0}],items:[{onItemsChange:0}]}]);function h(){"undefined"!=typeof customElements&&["co-sidebar-nav","co-icon","co-kbd","co-tooltip"].forEach((a=>{switch(a){case"co-sidebar-nav":customElements.get(e(a))||customElements.define(e(a),v);break;case"co-icon":customElements.get(e(a))||n();break;case"co-kbd":customElements.get(e(a))||c();break;case"co-tooltip":customElements.get(e(a))||l()}}))}h();const p=v,m=h;export{p as CoSidebarNav,m as defineCustomElement}
@@ -0,0 +1 @@
1
+ const e={es:{uploadButton:"Cargar archivo",dropHint:"Arrastra y suelta archivos aquí",helperBoth:"Puedes subir hasta {n} archivos, cada uno hasta {x}",helperFiles:"Puedes subir hasta {n} archivos",helperBytes:"Cada archivo hasta {x}",uploadedTitle:"Archivos subidos",removeFile:"Eliminar archivo",copyUrl:"Copiar enlace",downloadFile:"Descargar",annotateImage:"Anotar imagen",copied:"Copiado",dragToReorder:"Arrastra para reordenar",openPreview:"Abrir vista previa",playVideo:"Reproducir video",errInvalidFormat:"Formato no permitido: .{x}",errTooLarge:"Archivo demasiado grande: {x}",errMaxFiles:"Puedes subir hasta {n} archivos"},en:{uploadButton:"Upload file",dropHint:"Drag and drop files here",helperBoth:"You can upload up to {n} files, each up to {x}",helperFiles:"You can upload up to {n} files",helperBytes:"Each file up to {x}",uploadedTitle:"Uploaded files",removeFile:"Remove file",copyUrl:"Copy link",downloadFile:"Download",annotateImage:"Annotate image",copied:"Copied",dragToReorder:"Drag to reorder",openPreview:"Open preview",playVideo:"Play video",errInvalidFormat:"Invalid format: .{x}",errTooLarge:"File too large: {x}",errMaxFiles:"You can upload up to {n} files"},pt:{uploadButton:"Carregar arquivo",dropHint:"Arraste e solte arquivos aqui",helperBoth:"Você pode enviar até {n} arquivos, cada um até {x}",helperFiles:"Você pode enviar até {n} arquivos",helperBytes:"Cada arquivo até {x}",uploadedTitle:"Arquivos enviados",removeFile:"Remover arquivo",copyUrl:"Copiar link",downloadFile:"Baixar",annotateImage:"Anotar imagem",copied:"Copiado",dragToReorder:"Arraste para reordenar",openPreview:"Abrir pré-visualização",playVideo:"Reproduzir vídeo",errInvalidFormat:"Formato inválido: .{x}",errTooLarge:"Arquivo muito grande: {x}",errMaxFiles:"Você pode enviar até {n} arquivos"}};function a(e){const a=(e||"").toLowerCase();return a.startsWith("es")?"es":a.startsWith("pt")?"pt":"en"}function r(r){return e[a(r)]}function o(e,a){var r,o;return e.replace("{n}",String(null!==(r=a.n)&&void 0!==r?r:"")).replace("{x}",null!==(o=a.x)&&void 0!==o?o:"")}export{o as f,r as g,a as l}
@@ -1,7 +1,7 @@
1
1
  import { r as registerInstance, c as createEvent, h, a as getElement } from './index-DJkaRtbb.js';
2
2
  import { R as RequiredMark } from './requiredMark-D5C5NzOE.js';
3
3
  import { h as hsvToHex, a as isValidHex, b as parseCssColor, c as hexToHsv, i as isLightColor } from './color-BzxEh7sq.js';
4
- import { l as langFromLocale, f as fillTemplate } from './fileI18n-gKnOhsd2.js';
4
+ import { l as langFromLocale, f as fillTemplate } from './fileI18n-z0tbse7d.js';
5
5
 
6
6
  /**
7
7
  * Textos de co-color-picker. Mismo patrón que fileI18n/dateI18n: el componente
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, a as getElement } from './index-DJkaRtbb.js';
2
2
  import { R as RequiredMark } from './requiredMark-D5C5NzOE.js';
3
- import { g as getFileStrings, f as fillTemplate } from './fileI18n-gKnOhsd2.js';
3
+ import { g as getFileStrings, f as fillTemplate } from './fileI18n-z0tbse7d.js';
4
4
 
5
5
  /** Format bytes like the Figma spec: "59.25 KB" (base 1024, up to 2 decimals). */
6
6
  function formatBytes(bytes) {
@@ -81,6 +81,20 @@ function isImage(item) {
81
81
  return true;
82
82
  return hasImageExtension(item);
83
83
  }
84
+ /** Raster formats a host can redraw on a canvas and export again without loss of
85
+ * meaning. GIF (animation), SVG (vector) and the rest stay out: flattening them
86
+ * to a bitmap would silently change the file. */
87
+ const ANNOTATABLE_EXTS = new Set(['png', 'jpg', 'jpeg', 'webp']);
88
+ /**
89
+ * A stored raster image the host can annotate (draw on and re-upload). Needs the
90
+ * ORIGINAL `url` — a thumbnail is a downscaled copy, and a PDF that entered the
91
+ * grid through its thumbnail is not an image at all.
92
+ */
93
+ function isAnnotatable(item) {
94
+ if (item.status !== 'done' || !item.url)
95
+ return false;
96
+ return ANNOTATABLE_EXTS.has(fileExtension(item));
97
+ }
84
98
  /** Items that earn a card in the previews grid: images and videos alike. */
85
99
  function isPreviewable(item) {
86
100
  return isImage(item) || isVideo(item);
@@ -164,6 +178,7 @@ const CoFileField = class {
164
178
  this.coClear = createEvent(this, "coClear", 3);
165
179
  this.coReorder = createEvent(this, "coReorder", 3);
166
180
  this.coCopy = createEvent(this, "coCopy", 3);
181
+ this.coAnnotate = createEvent(this, "coAnnotate", 3);
167
182
  this.coPreviewOpen = createEvent(this, "coPreviewOpen", 3);
168
183
  /** Deshabilita el campo: no acepta archivos ni acciones. */
169
184
  this.disabled = false;
@@ -181,6 +196,13 @@ const CoFileField = class {
181
196
  this.layout = 'vertical';
182
197
  /** Allow drag-reordering of the uploaded list (multiple mode). */
183
198
  this.reorderable = true;
199
+ /**
200
+ * Offer an "annotate" action on stored raster images (png/jpg/webp). The
201
+ * field draws nothing itself: it emits `coAnnotate` and the host opens its
202
+ * editor, uploads the result and removes the original — same contract as
203
+ * uploads (the WC emits intent, the host does the I/O).
204
+ */
205
+ this.annotatable = false;
184
206
  /** Controlled file list, JSON array of {@link FileItem} (owned by the host). */
185
207
  this.files = '[]';
186
208
  this.dragOver = false;
@@ -513,12 +535,12 @@ const CoFileField = class {
513
535
  const previews = this.previewItems();
514
536
  const canReorder = this.reorderable && this.multiple && !this.disabled && !this.readonly && items.length > 1;
515
537
  const capacity = this.capacityHint(s);
516
- return (h("div", { key: '4a6cea48737c68e53f90a32e962660473f49ce5a', class: {
538
+ return (h("div", { key: 'ce032373afbb21b082696b4d532655c3d599800c', class: {
517
539
  'co-file-field': true,
518
540
  'co-file-field--disabled': this.disabled,
519
541
  'co-file-field--invalid': this.isInvalid,
520
542
  [statusClass]: !!statusClass,
521
- }, part: "wrapper" }, this.label && (h("div", { key: '3532e314c63b19208c7a7665dd025ff38585a598', class: "co-file-field__labels" }, h("label", { key: 'ae8aa6da81d6b959233218473086ecabe5ab8017', class: "co-file-field__label", part: "label" }, this.label, h(RequiredMark, { key: '78d12c0e676217fd208bc03cc6a119b6fbf521e7', required: this.required })))), showDropzone && (h("div", { key: 'a6e5764aa57090d6b9383b1f8148bcba1239ff3a', class: {
543
+ }, part: "wrapper" }, this.label && (h("div", { key: '7650af04090b50b39e9dde6879156b51fd0a1b11', class: "co-file-field__labels" }, h("label", { key: '5f305d56f5dcbe3b8d267e22471f4c6536792510', class: "co-file-field__label", part: "label" }, this.label, h(RequiredMark, { key: '46896eae83028b9117c32b2ab9ac21443a58c608', required: this.required })))), showDropzone && (h("div", { key: 'c2767c1c6f8e0e928f328db2e985f747f34b13af', class: {
522
544
  'co-file-field__dropzone': true,
523
545
  'co-file-field__dropzone--drag': this.dragOver,
524
546
  }, part: "dropzone", role: "button", tabIndex: this.disabled ? -1 : 0, onClick: this.handleBrowse, onKeyDown: (e) => {
@@ -526,7 +548,7 @@ const CoFileField = class {
526
548
  e.preventDefault();
527
549
  this.handleBrowse();
528
550
  }
529
- }, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave, onDrop: this.handleDrop }, h("button", { key: '44558c1a5d15c5aca23a7e204bcccf5e57d6b740', class: "co-file-field__upload-btn", part: "upload-button", type: "button", tabIndex: -1 }, h("co-icon", { key: '662340ae54f1d070606c0fd8226155b0360e803e', name: "file-arrow-up", size: 18 }), h("span", { key: '752f18e7121040eb4edf571a54a9a5308825cb13' }, this.uploadButtonText || s.uploadButton)), h("span", { key: 'b92332ee8e7e658b33814b8c1ae34a4630045819', class: "co-file-field__dropzone-text" }, this.dropText || s.dropHint), capacity && h("span", { key: 'ed1f7c9093145ecbb49446b72a3d3bc99ee232e2', class: "co-file-field__dropzone-hint" }, capacity), h("div", { key: 'fd4953e9dfebf35936ae836d6f28ccdc17ccf951', class: "co-file-field__actions", part: "actions" }, h("slot", { key: 'c2e568fabd1512ecfa298c2ab281d310fbe21664', name: "actions" })), h("input", { key: '17acb79e8d066c18f7c1ac051a365d4282c852af', ref: (el) => (this.inputEl = el), class: "co-file-field__input", type: "file", multiple: this.multiple, accept: this.inputAccept, disabled: this.disabled, onChange: this.handleInputChange, "aria-hidden": "true", tabIndex: -1 }))), items.length > 0 && (h("div", { key: 'a793e2b836269abaafe71fd56b07b3d54155cf75', class: "co-file-field__uploaded" }, this.multiple && (h("div", { key: '2a265874db718faf1e78f2dd46e5ff14bbfbbff2', class: "co-file-field__uploaded-title", part: "uploaded-title" }, `${this.uploadedTitle || s.uploadedTitle} (${items.length})`)), previews.length > 0 && (h("div", { key: 'a4ebb3fae5ad4b2b29263381f9eb5ae03a98867d', class: "co-file-field__previews", part: "previews" }, previews.map((item) => {
551
+ }, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave, onDrop: this.handleDrop }, h("button", { key: 'f9b2ef43730b009a6ca322ea6cae833f86a52ff0', class: "co-file-field__upload-btn", part: "upload-button", type: "button", tabIndex: -1 }, h("co-icon", { key: 'ffa7d7fdb830fc789ffd4ada624c450c70109701', name: "file-arrow-up", size: 18 }), h("span", { key: 'c9c54dd9432f8c74894a0054ecdf0c59aede974a' }, this.uploadButtonText || s.uploadButton)), h("span", { key: '74f8884d62b79960e0080794404f24e45d229284', class: "co-file-field__dropzone-text" }, this.dropText || s.dropHint), capacity && h("span", { key: '4c6bdd2de90754b50135e9212510884d1495b8d4', class: "co-file-field__dropzone-hint" }, capacity), h("div", { key: '42bd92119fed5b9be39e7db5c351990faafc7135', class: "co-file-field__actions", part: "actions" }, h("slot", { key: 'fa2a649c222125ba63fa74028dba417c50f7b3f6', name: "actions" })), h("input", { key: '982021a63eb6bec0b19ca917382a6efd37938ab3', ref: (el) => (this.inputEl = el), class: "co-file-field__input", type: "file", multiple: this.multiple, accept: this.inputAccept, disabled: this.disabled, onChange: this.handleInputChange, "aria-hidden": "true", tabIndex: -1 }))), items.length > 0 && (h("div", { key: '95bd1f51b0a361dec2ca0b272212ef64d438db0a', class: "co-file-field__uploaded" }, this.multiple && (h("div", { key: '479851cd44dbdc9ad99e9b26764f558845966c53', class: "co-file-field__uploaded-title", part: "uploaded-title" }, `${this.uploadedTitle || s.uploadedTitle} (${items.length})`)), previews.length > 0 && (h("div", { key: '8be03edd2b1b8b7628d6e34fa82751045589b416', class: "co-file-field__previews", part: "previews" }, previews.map((item) => {
530
552
  const key = this.keyFor(item);
531
553
  const video = isVideo(item);
532
554
  // A video without a usable poster still gets a card — the
@@ -537,7 +559,7 @@ const CoFileField = class {
537
559
  'co-file-field__preview': true,
538
560
  'co-file-field__preview--video': video,
539
561
  }, part: "preview", type: "button", key: `prev-${key}`, title: item.name, "aria-label": `${video ? s.playVideo : s.openPreview}: ${item.name}`, onClick: () => this.handlePreviewOpen(item) }, showImg && (h("img", { src: video ? poster : item.thumbnail || item.url, alt: item.name, loading: "lazy", onError: () => this.handlePreviewError(item) })), video && (h("span", { class: "co-file-field__preview-play", "aria-hidden": "true" }, h("span", { class: "co-file-field__preview-play-badge" }, h("co-icon", { name: "play", size: 20, weight: "fill" })), !poster && (h("span", { class: "co-file-field__preview-ext" }, fileExtension(item).toUpperCase()))))));
540
- }))), h("ul", { key: '97ead2383d036b1ed2b09d6e931be2bfbcce25d2', class: "co-file-field__list", part: "list" }, items.map((item) => {
562
+ }))), h("ul", { key: '1fa661f14a8644a2703204d1faac79e5599c5e77', class: "co-file-field__list", part: "list" }, items.map((item) => {
541
563
  const key = this.keyFor(item);
542
564
  const draggable = canReorder && item.status === 'done';
543
565
  return (h("li", { class: {
@@ -557,14 +579,14 @@ const CoFileField = class {
557
579
  'co-file-field__row-icon--spin': item.status === 'uploading',
558
580
  } })), h("div", { class: "co-file-field__row-body" }, h("span", { class: "co-file-field__row-name", title: item.name }, truncateLeft(item.name)), item.status === 'uploading' && (h("div", { class: "co-file-field__progress" }, h("div", { class: "co-file-field__progress-bar", style: typeof item.progress === 'number'
559
581
  ? { width: `${item.progress}%` }
560
- : undefined }))), item.status === 'error' && item.error && (h("span", { class: "co-file-field__row-error" }, item.error))), item.size != null && (h("span", { class: "co-file-field__row-size" }, formatBytes(item.size))), item.status === 'done' && !!item.url && (h("co-tooltip", { content: s.downloadFile }, h("a", { class: "co-file-field__action", href: item.url, target: "_blank", rel: "noopener noreferrer", download: item.name, tabIndex: -1, "aria-label": s.downloadFile, onClick: (e) => this.onDownloadClick(e, item) }, h("co-icon", { name: "download", size: 18 })))), item.status === 'done' && !!item.url && (h("co-tooltip", { content: this.copiedKey === key ? s.copied : s.copyUrl }, h("button", { class: {
582
+ : undefined }))), item.status === 'error' && item.error && (h("span", { class: "co-file-field__row-error" }, item.error))), item.size != null && (h("span", { class: "co-file-field__row-size" }, formatBytes(item.size))), this.annotatable && !this.disabled && !this.readonly && isAnnotatable(item) && (h("co-tooltip", { content: s.annotateImage }, h("button", { class: "co-file-field__action", type: "button", tabIndex: -1, "aria-label": `${s.annotateImage}: ${item.name}`, onClick: () => this.coAnnotate.emit({ id: key, url: item.url, name: item.name }) }, h("co-icon", { name: "pencil-simple-line", size: 18 })))), item.status === 'done' && !!item.url && (h("co-tooltip", { content: s.downloadFile }, h("a", { class: "co-file-field__action", href: item.url, target: "_blank", rel: "noopener noreferrer", download: item.name, tabIndex: -1, "aria-label": s.downloadFile, onClick: (e) => this.onDownloadClick(e, item) }, h("co-icon", { name: "download", size: 18 })))), item.status === 'done' && !!item.url && (h("co-tooltip", { content: this.copiedKey === key ? s.copied : s.copyUrl }, h("button", { class: {
561
583
  'co-file-field__action': true,
562
584
  'co-file-field__action--copied': this.copiedKey === key,
563
585
  }, type: "button", tabIndex: -1, "aria-label": s.copyUrl, onClick: () => this.handleCopy(item) }, h("co-icon", { name: this.copiedKey === key ? 'check' : 'copy', size: 18 })))), !this.disabled && !this.readonly && (h("co-tooltip", { content: s.removeFile }, h("button", { class: "co-file-field__action", type: "button", tabIndex: -1, "aria-label": s.removeFile, onClick: () => this.coRemove.emit(key) }, h("co-icon", { name: "trash", size: 18 }))))));
564
- })))), helper && (h("div", { key: 'd4fef1bb2aa10f90ca7cd5e01bb5fed9ea917637', class: {
586
+ })))), helper && (h("div", { key: '7562fdf435667ae305e677830cae06a3374ef67b', class: {
565
587
  'co-file-field__helper': true,
566
588
  'co-file-field__helper--error': this.isInvalid,
567
- }, part: "helper" }, this.isInvalid && (h("co-icon", { key: '2fb9d5d28732c239bcec4b0a30dfe194367e8b5d', name: "warning-circle", size: 14, class: "co-file-field__helper-icon" })), h("span", { key: '09bd101388c52a7fb8d0139c20f52f2da733543b', class: "co-file-field__helper-text" }, helper)))));
589
+ }, part: "helper" }, this.isInvalid && (h("co-icon", { key: 'ac43b079725a8b015f2ba1a8b8f22783f60e556e', name: "warning-circle", size: 14, class: "co-file-field__helper-icon" })), h("span", { key: 'cd256498ce501e5b59ae1a5850f8f8ddccb98580', class: "co-file-field__helper-text" }, helper)))));
568
590
  }
569
591
  get el() { return getElement(this); }
570
592
  };
@@ -1,17 +1,21 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-DJkaRtbb.js';
2
2
  import { n as normalizeText } from './normalizeText-Ba_v-MzM.js';
3
3
 
4
- const coSidebarNavCss = () => `@property --co-sidebar-fade-top{syntax:"<length>";inherits:false;initial-value:0px}@property --co-sidebar-fade-bottom{syntax:"<length>";inherits:false;initial-value:0px}:host{display:block;height:100%;overflow-y:auto;overflow-x:hidden;font-family:var(--co-font-family-primary);scrollbar-width:thin;scrollbar-color:transparent transparent;--co-sidebar-fade-size:28px}:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%)}@supports (animation-timeline: scroll()){:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){animation:co-sidebar-edge-fade linear both;animation-timeline:scroll(self block)}}@keyframes co-sidebar-edge-fade{0%{--co-sidebar-fade-top:0px;--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}8%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}92%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}100%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:0px}}:host(:hover){scrollbar-color:var(--co-color-opacity-blanco-16) transparent}:host::-webkit-scrollbar{width:6px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}:host(:hover)::-webkit-scrollbar-thumb{background:var(--co-color-opacity-blanco-16)}:host(:hover)::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-blanco-25)}:host(:hover)::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-blanco-50)}:host([mode="min"]){scrollbar-width:none !important}:host([mode="min"])::-webkit-scrollbar{width:0 !important}.co-sidebar-nav{display:flex;flex-direction:column;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs)}.co-sidebar-nav--min{align-items:center;padding:var(--co-spacing-xs) 0}.co-sidebar-nav__search{display:flex;align-items:center;gap:var(--co-spacing-sm);padding:var(--co-spacing-xs) var(--co-spacing-sm);margin:0 var(--co-spacing-xs) var(--co-spacing-xs);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-xs);background:var(--co-semantic-surface-secondary);height:32px}.co-sidebar-nav__search co-icon{color:var(--co-semantic-text-muted);flex-shrink:0}.co-sidebar-nav__search-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);letter-spacing:var(--co-font-letter-spacing-body);color:var(--co-semantic-text-default);min-width:0}.co-sidebar-nav__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-sidebar-nav__search-clear{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;padding:0;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav__search-clear:hover{color:var(--co-semantic-text-default)}.co-sidebar-nav__items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav--min .co-sidebar-nav__items{align-items:center}.co-sidebar-nav__category{display:flex;flex-direction:column}.co-sidebar-nav__category+.co-sidebar-nav__category{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-label{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:0.08em;padding:var(--co-spacing-lg) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__category-items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav__category--min{display:flex;flex-direction:column;align-items:center}.co-sidebar-nav__category--min+.co-sidebar-nav__category--min{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-spacer{visibility:hidden;white-space:nowrap;padding-left:0;padding-right:0}.co-sidebar-nav__category--min>:not(.co-sidebar-nav__category-spacer)+*{margin-top:var(--co-spacing-xxs)}.co-sidebar-nav__item{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-default);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__item:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium);--co-glass-blur:12px;--co-glass-saturate:1.3;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover)));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.co-sidebar-nav__item-icon co-icon{color:inherit}.co-sidebar-nav__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__custom-icon{width:18px;height:18px;object-fit:contain;border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav--min co-tooltip{line-height:0}.co-sidebar-nav--min .co-sidebar-nav__item{width:36px;height:28px;padding:0;justify-content:center;border-radius:var(--co-border-radius-xs)}.co-sidebar-nav__flyout-anchor{position:relative}.co-sidebar-nav__flyout{position:fixed;min-width:180px;max-width:240px;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-subtle);color:var(--co-semantic-text-default);border-radius:var(--co-border-radius-sm);box-shadow:var(--co-shadow-lg);padding:var(--co-spacing-md);display:flex;flex-direction:column;z-index:9999;animation:co-flyout-in var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-sidebar-nav__flyout-title{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:var(--co-font-letter-spacing-overline);padding:var(--co-spacing-xxs) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none}.co-sidebar-nav__flyout .co-sidebar-nav__item{width:100%;height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);gap:var(--co-spacing-md);font-weight:var(--co-font-weight-regular);color:var(--co-semantic-text-default);line-height:var(--co-font-line-height-none);justify-content:flex-start}.co-sidebar-nav__flyout .co-sidebar-nav__item:hover{background:var(--co-semantic-surface-control)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon{display:flex;width:24px;height:24px}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon co-icon{color:var(--co-semantic-text-default)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active .co-sidebar-nav__item-icon co-icon{color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}@keyframes co-flyout-in{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:translateX(0)}}.co-sidebar-nav__expansion{display:flex;flex-direction:column}.co-sidebar-nav__expansion-header{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-secondary);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__expansion-header:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion--active>.co-sidebar-nav__expansion-header{color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion-caret{margin-left:auto;flex-shrink:0;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out);color:var(--co-semantic-text-muted)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-header .co-sidebar-nav__expansion-caret{transform:rotate(90deg)}.co-sidebar-nav__expansion-body{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);overflow:hidden;max-height:0;opacity:0;transition:max-height var(--co-motion-duration-slow) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out), padding var(--co-motion-duration-base) var(--co-motion-ease-out);padding-left:var(--co-spacing-xl)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-body{max-height:1000px;opacity:1;padding-top:var(--co-spacing-xxs)}.co-sidebar-nav__highlight{all:unset;background-color:var(--co-color-primary-amarillo, #facc15);color:var(--co-color-base-negro, #000);border-radius:2px;padding:0 1px}`;
5
-
6
- /** Default icon mapping for common Prolibu model keys → Phosphor icon names */
7
- const DEFAULT_ICON_MAP = {
4
+ /**
5
+ * Clave del menú de Prolibu → ícono Phosphor (lo usa `co-sidebar-nav`; el prop `icon-map`
6
+ * lo extiende). Una clave sin entrada cae a `circle`: `sidebar-icon-map.test.ts` cruza este
7
+ * mapa con las claves que manda el backend y verifica que cada ícono exista en Phosphor.
8
+ */
9
+ const SIDEBAR_ICON_MAP = {
8
10
  // Directory
9
11
  Home: 'house',
10
12
  Contacts: 'address-book',
11
13
  Companies: 'buildings',
14
+ Leads: 'user-focus',
12
15
  // Sales
13
16
  Presentations: 'presentation-chart',
14
17
  Deals: 'handshake',
18
+ TestDrive: 'steering-wheel',
15
19
  Invoices: 'receipt',
16
20
  Payments: 'credit-card',
17
21
  // Communications
@@ -35,6 +39,7 @@ const DEFAULT_ICON_MAP = {
35
39
  Meetings: 'video-camera',
36
40
  Calls: 'phone-call',
37
41
  CloudDrive: 'cloud',
42
+ Forms: 'note-pencil',
38
43
  // Libraries
39
44
  Quotes: 'quotes',
40
45
  ContentTemplates: 'article',
@@ -57,6 +62,7 @@ const DEFAULT_ICON_MAP = {
57
62
  // Configuration
58
63
  Users: 'user',
59
64
  UserTeams: 'users',
65
+ Teams: 'users',
60
66
  UserGroups: 'user-circle-gear',
61
67
  Roles: 'shield',
62
68
  Workspaces: 'stack',
@@ -71,6 +77,7 @@ const DEFAULT_ICON_MAP = {
71
77
  // Wizards
72
78
  ProposalWizards: 'magic-wand',
73
79
  WizardGroups: 'folders',
80
+ ProposalWizardGroup: 'folders',
74
81
  // Advertising
75
82
  AdHubs: 'storefront',
76
83
  AdCampaigns: 'flag-banner',
@@ -93,6 +100,8 @@ const DEFAULT_ICON_MAP = {
93
100
  Categories: 'folder-simple',
94
101
  CustomFilters: 'funnel',
95
102
  Logs: 'list-bullets',
103
+ ContactProtocols: 'list-checks',
104
+ Scorings: 'chart-line-up',
96
105
  // Iot
97
106
  Devices: 'cpu',
98
107
  // Development
@@ -133,6 +142,15 @@ const DEFAULT_ICON_MAP = {
133
142
  TourStudio: 'cube',
134
143
  Docs: 'file-text',
135
144
  Setup: 'gear-six',
145
+ SalesAndMarketing: 'trend-up',
146
+ CustomerService: 'lifebuoy',
147
+ HumanResources: 'identification-badge',
148
+ TicketsSetup: 'ticket',
149
+ CommunicationCenterSetup: 'headset',
150
+ // Inventory
151
+ Inventory: 'warehouse',
152
+ Branches: 'building-office',
153
+ ItemStock: 'barcode',
136
154
  // Human Resources — Learning
137
155
  Learning: 'graduation-cap',
138
156
  Programs: 'path',
@@ -188,6 +206,9 @@ const DEFAULT_ICON_MAP = {
188
206
  Telegram: 'telegram-logo',
189
207
  Discord: 'discord-logo',
190
208
  };
209
+
210
+ const coSidebarNavCss = () => `@property --co-sidebar-fade-top{syntax:"<length>";inherits:false;initial-value:0px}@property --co-sidebar-fade-bottom{syntax:"<length>";inherits:false;initial-value:0px}:host{display:block;height:100%;overflow-y:auto;overflow-x:hidden;font-family:var(--co-font-family-primary);scrollbar-width:thin;scrollbar-color:transparent transparent;--co-sidebar-fade-size:28px}:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%)}@supports (animation-timeline: scroll()){:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){animation:co-sidebar-edge-fade linear both;animation-timeline:scroll(self block)}}@keyframes co-sidebar-edge-fade{0%{--co-sidebar-fade-top:0px;--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}8%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}92%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}100%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:0px}}:host(:hover){scrollbar-color:var(--co-color-opacity-blanco-16) transparent}:host::-webkit-scrollbar{width:6px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}:host(:hover)::-webkit-scrollbar-thumb{background:var(--co-color-opacity-blanco-16)}:host(:hover)::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-blanco-25)}:host(:hover)::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-blanco-50)}:host([mode="min"]){scrollbar-width:none !important}:host([mode="min"])::-webkit-scrollbar{width:0 !important}.co-sidebar-nav{display:flex;flex-direction:column;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs)}.co-sidebar-nav--min{align-items:center;padding:var(--co-spacing-xs) 0}.co-sidebar-nav__search{display:flex;align-items:center;gap:var(--co-spacing-sm);padding:var(--co-spacing-xs) var(--co-spacing-sm);margin:0 var(--co-spacing-xs) var(--co-spacing-xs);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-xs);background:var(--co-semantic-surface-secondary);height:32px}.co-sidebar-nav__search co-icon{color:var(--co-semantic-text-muted);flex-shrink:0}.co-sidebar-nav__search-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);letter-spacing:var(--co-font-letter-spacing-body);color:var(--co-semantic-text-default);min-width:0}.co-sidebar-nav__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-sidebar-nav__search-clear{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;padding:0;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav__search-clear:hover{color:var(--co-semantic-text-default)}.co-sidebar-nav__items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav--min .co-sidebar-nav__items{align-items:center}.co-sidebar-nav__category{display:flex;flex-direction:column}.co-sidebar-nav__category+.co-sidebar-nav__category{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-label{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:0.08em;padding:var(--co-spacing-lg) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__category-items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav__category--min{display:flex;flex-direction:column;align-items:center}.co-sidebar-nav__category--min+.co-sidebar-nav__category--min{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-spacer{visibility:hidden;white-space:nowrap;padding-left:0;padding-right:0}.co-sidebar-nav__category--min>:not(.co-sidebar-nav__category-spacer)+*{margin-top:var(--co-spacing-xxs)}.co-sidebar-nav__item{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-default);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__item:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium);--co-glass-blur:12px;--co-glass-saturate:1.3;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover)));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.co-sidebar-nav__item-icon co-icon{color:inherit}.co-sidebar-nav__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__custom-icon{width:18px;height:18px;object-fit:contain;border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav--min co-tooltip{line-height:0}.co-sidebar-nav--min .co-sidebar-nav__item{width:36px;height:28px;padding:0;justify-content:center;border-radius:var(--co-border-radius-xs)}.co-sidebar-nav__flyout-anchor{position:relative}.co-sidebar-nav__flyout{position:fixed;min-width:180px;max-width:240px;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-subtle);color:var(--co-semantic-text-default);border-radius:var(--co-border-radius-sm);box-shadow:var(--co-shadow-lg);padding:var(--co-spacing-md);display:flex;flex-direction:column;z-index:9999;animation:co-flyout-in var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-sidebar-nav__flyout-title{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:var(--co-font-letter-spacing-overline);padding:var(--co-spacing-xxs) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none}.co-sidebar-nav__flyout .co-sidebar-nav__item{width:100%;height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);gap:var(--co-spacing-md);font-weight:var(--co-font-weight-regular);color:var(--co-semantic-text-default);line-height:var(--co-font-line-height-none);justify-content:flex-start}.co-sidebar-nav__flyout .co-sidebar-nav__item:hover{background:var(--co-semantic-surface-control)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon{display:flex;width:24px;height:24px}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon co-icon{color:var(--co-semantic-text-default)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active .co-sidebar-nav__item-icon co-icon{color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}@keyframes co-flyout-in{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:translateX(0)}}.co-sidebar-nav__expansion{display:flex;flex-direction:column}.co-sidebar-nav__expansion-header{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-secondary);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__expansion-header:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion--active>.co-sidebar-nav__expansion-header{color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion-caret{margin-left:auto;flex-shrink:0;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out);color:var(--co-semantic-text-muted)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-header .co-sidebar-nav__expansion-caret{transform:rotate(90deg)}.co-sidebar-nav__expansion-body{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);overflow:hidden;max-height:0;opacity:0;transition:max-height var(--co-motion-duration-slow) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out), padding var(--co-motion-duration-base) var(--co-motion-ease-out);padding-left:var(--co-spacing-xl)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-body{max-height:1000px;opacity:1;padding-top:var(--co-spacing-xxs)}.co-sidebar-nav__highlight{all:unset;background-color:var(--co-color-primary-amarillo, #facc15);color:var(--co-color-base-negro, #000);border-radius:2px;padding:0 1px}`;
211
+
191
212
  /** Ícono de un ítem en modo `min` (sin label): 18 (20 se veía pesado; 16 = el de full, se perdía). */
192
213
  const MIN_ICON_SIZE = 18;
193
214
  const CoSidebarNav = class {
@@ -248,10 +269,10 @@ const CoSidebarNav = class {
248
269
  }
249
270
  parseIconMap() {
250
271
  try {
251
- this.parsedIconMap = Object.assign(Object.assign({}, DEFAULT_ICON_MAP), JSON.parse(this.iconMap));
272
+ this.parsedIconMap = Object.assign(Object.assign({}, SIDEBAR_ICON_MAP), JSON.parse(this.iconMap));
252
273
  }
253
274
  catch (_a) {
254
- this.parsedIconMap = Object.assign({}, DEFAULT_ICON_MAP);
275
+ this.parsedIconMap = Object.assign({}, SIDEBAR_ICON_MAP);
255
276
  }
256
277
  }
257
278
  parseTranslations() {
@@ -505,10 +526,10 @@ const CoSidebarNav = class {
505
526
  // `flyout-open` (min mode only) lets the CSS drop the host edge-fade mask
506
527
  // while a flyout is shown — a host mask would otherwise clip AND
507
528
  // mis-position the fixed flyout (mask makes the host a containing block).
508
- h(Host, { key: '7e9637d98b9a2a698f6b82050b0f9cdadda66798', class: { 'flyout-open': !!this.flyoutKey } }, h("nav", { key: 'c3ad14a4e294be4c2b803c93a4ddbf42daae5dd0', class: {
529
+ h(Host, { key: 'a7c5661ad2613a6f2c45c37e6def2e4c8d7e9801', class: { 'flyout-open': !!this.flyoutKey } }, h("nav", { key: '597d59612958ab2014a7db0ad561abd1db15524f', class: {
509
530
  'co-sidebar-nav': true,
510
531
  'co-sidebar-nav--min': this.mode === 'min',
511
- } }, this.renderSearch(), h("div", { key: '2b2f5c39b6a529e1993695f4cda5ba5c5965c17e', class: "co-sidebar-nav__items" }, items.map(item => this.renderItem(item))))));
532
+ } }, this.renderSearch(), h("div", { key: '55a5bb260444a26e3e2228fb08c30c15746994a9', class: "co-sidebar-nav__items" }, items.map(item => this.renderItem(item))))));
512
533
  }
513
534
  get el() { return getElement(this); }
514
535
  static get watchers() { return {