@dropi/ui 0.1.43 → 0.1.45

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 (109) hide show
  1. package/dist/cjs/dropi-button.cjs.entry.js +19 -2
  2. package/dist/cjs/dropi-checkbox.cjs.entry.js +23 -2
  3. package/dist/cjs/dropi-country-selector.cjs.entry.js +15 -2
  4. package/dist/cjs/dropi-date-picker.cjs.entry.js +40 -4
  5. package/dist/cjs/dropi-input_3.cjs.entry.js +3 -3
  6. package/dist/cjs/dropi-otp-send-code.cjs.entry.js +22 -2
  7. package/dist/cjs/dropi-phone-input.cjs.entry.js +25 -2
  8. package/dist/cjs/dropi-radio-button.cjs.entry.js +18 -1
  9. package/dist/cjs/dropi-select.cjs.entry.js +1 -1
  10. package/dist/cjs/dropi-switch.cjs.entry.js +22 -1
  11. package/dist/cjs/dropi-text-area.cjs.entry.js +3 -3
  12. package/dist/cjs/dropi-ui.cjs.js +1 -1
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/collection/components/dropi-button/dropi-button.js +39 -2
  15. package/dist/collection/components/dropi-checkbox/dropi-checkbox.js +38 -2
  16. package/dist/collection/components/dropi-country-selector/dropi-country-selector.js +29 -2
  17. package/dist/collection/components/dropi-date-picker/dropi-date-picker.js +55 -4
  18. package/dist/collection/components/dropi-input/dropi-input.js +4 -4
  19. package/dist/collection/components/dropi-otp-send-code/dropi-otp-send-code.js +36 -2
  20. package/dist/collection/components/dropi-phone-input/dropi-phone-input.js +39 -2
  21. package/dist/collection/components/dropi-radio-button/dropi-radio-button.js +13 -2
  22. package/dist/collection/components/dropi-select/dropi-select.js +2 -2
  23. package/dist/collection/components/dropi-switch/dropi-switch.js +37 -1
  24. package/dist/collection/components/dropi-text-area/dropi-text-area.js +4 -4
  25. package/dist/components/dropi-alert-modal.js +1 -1
  26. package/dist/components/dropi-button.js +1 -1
  27. package/dist/components/dropi-card-checkbox.js +1 -1
  28. package/dist/components/dropi-card-section.js +1 -1
  29. package/dist/components/dropi-checkbox-selection-list.js +1 -1
  30. package/dist/components/dropi-checkbox.js +1 -1
  31. package/dist/components/dropi-country-selector.js +1 -1
  32. package/dist/components/dropi-date-picker.js +1 -1
  33. package/dist/components/dropi-dropdown.js +1 -1
  34. package/dist/components/dropi-empty-state.js +1 -1
  35. package/dist/components/dropi-file-upload.js +1 -1
  36. package/dist/components/dropi-input.js +1 -1
  37. package/dist/components/dropi-otp-send-code.js +1 -1
  38. package/dist/components/dropi-phone-input.js +1 -1
  39. package/dist/components/dropi-radio-button.js +1 -1
  40. package/dist/components/dropi-search.js +1 -1
  41. package/dist/components/dropi-select.js +1 -1
  42. package/dist/components/dropi-switch.js +1 -1
  43. package/dist/components/dropi-table.js +1 -1
  44. package/dist/components/dropi-text-area.js +1 -1
  45. package/dist/components/p-CCZ6rIo5.js +1 -0
  46. package/dist/components/p-Dd1g1gjR.js +1 -0
  47. package/dist/components/p-Dnx3uXgo.js +1 -0
  48. package/dist/components/p-Qrac2GRu.js +1 -0
  49. package/dist/dropi-ui/dropi-button.entry.js +19 -2
  50. package/dist/dropi-ui/dropi-button.entry.js.map +1 -1
  51. package/dist/dropi-ui/dropi-checkbox.entry.js +23 -2
  52. package/dist/dropi-ui/dropi-checkbox.entry.js.map +1 -1
  53. package/dist/dropi-ui/dropi-country-selector.entry.js +15 -2
  54. package/dist/dropi-ui/dropi-country-selector.entry.js.map +1 -1
  55. package/dist/dropi-ui/dropi-date-picker.entry.js +40 -4
  56. package/dist/dropi-ui/dropi-date-picker.entry.js.map +1 -1
  57. package/dist/dropi-ui/dropi-input.entry.js +3 -3
  58. package/dist/dropi-ui/dropi-input.entry.js.map +1 -1
  59. package/dist/dropi-ui/dropi-otp-send-code.entry.js +22 -2
  60. package/dist/dropi-ui/dropi-otp-send-code.entry.js.map +1 -1
  61. package/dist/dropi-ui/dropi-phone-input.entry.js +25 -2
  62. package/dist/dropi-ui/dropi-phone-input.entry.js.map +1 -1
  63. package/dist/dropi-ui/dropi-radio-button.entry.js +18 -1
  64. package/dist/dropi-ui/dropi-radio-button.entry.js.map +1 -1
  65. package/dist/dropi-ui/dropi-select.entry.js +1 -1
  66. package/dist/dropi-ui/dropi-select.entry.js.map +1 -1
  67. package/dist/dropi-ui/dropi-switch.entry.js +22 -1
  68. package/dist/dropi-ui/dropi-switch.entry.js.map +1 -1
  69. package/dist/dropi-ui/dropi-text-area.entry.js +3 -3
  70. package/dist/dropi-ui/dropi-text-area.entry.js.map +1 -1
  71. package/dist/dropi-ui/dropi-ui.esm.js +1 -1
  72. package/dist/dropi-ui/p-09462f7b.entry.js +1 -0
  73. package/dist/dropi-ui/p-42a85ce5.entry.js +1 -0
  74. package/dist/dropi-ui/p-43e21ed8.entry.js +1 -0
  75. package/dist/dropi-ui/p-532136cc.entry.js +1 -0
  76. package/dist/dropi-ui/p-9a569a4e.entry.js +1 -0
  77. package/dist/dropi-ui/p-b2e8c0e2.entry.js +1 -0
  78. package/dist/dropi-ui/p-bc6bb893.entry.js +1 -0
  79. package/dist/dropi-ui/p-c08b8995.entry.js +1 -0
  80. package/dist/dropi-ui/p-c6926604.entry.js +1 -0
  81. package/dist/dropi-ui/p-eaa10fe8.entry.js +1 -0
  82. package/dist/dropi-ui/p-fb4856ea.entry.js +1 -0
  83. package/dist/esm/dropi-button.entry.js +19 -2
  84. package/dist/esm/dropi-checkbox.entry.js +23 -2
  85. package/dist/esm/dropi-country-selector.entry.js +15 -2
  86. package/dist/esm/dropi-date-picker.entry.js +40 -4
  87. package/dist/esm/dropi-input_3.entry.js +3 -3
  88. package/dist/esm/dropi-otp-send-code.entry.js +22 -2
  89. package/dist/esm/dropi-phone-input.entry.js +25 -2
  90. package/dist/esm/dropi-radio-button.entry.js +18 -1
  91. package/dist/esm/dropi-select.entry.js +1 -1
  92. package/dist/esm/dropi-switch.entry.js +22 -1
  93. package/dist/esm/dropi-text-area.entry.js +3 -3
  94. package/dist/esm/dropi-ui.js +1 -1
  95. package/dist/esm/loader.js +1 -1
  96. package/dist/types/components/dropi-button/dropi-button.d.ts +4 -0
  97. package/dist/types/components/dropi-checkbox/dropi-checkbox.d.ts +5 -0
  98. package/dist/types/components/dropi-country-selector/dropi-country-selector.d.ts +3 -0
  99. package/dist/types/components/dropi-date-picker/dropi-date-picker.d.ts +6 -0
  100. package/dist/types/components/dropi-otp-send-code/dropi-otp-send-code.d.ts +3 -0
  101. package/dist/types/components/dropi-phone-input/dropi-phone-input.d.ts +5 -0
  102. package/dist/types/components/dropi-radio-button/dropi-radio-button.d.ts +3 -0
  103. package/dist/types/components/dropi-switch/dropi-switch.d.ts +5 -0
  104. package/dist/types/components.d.ts +109 -4
  105. package/hydrate/index.js +218 -43
  106. package/hydrate/index.mjs +218 -43
  107. package/package.json +1 -1
  108. package/readme.md +225 -6
  109. package/skills/update-context/skill.md +37 -0
@@ -1 +1 @@
1
- import{t as e,p as t,H as i,c as r,h as o}from"./index.js";import{d as s}from"./p-B9rJd-Rf.js";const a=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.dropiChangeSelect=r(this,"dropiChangeSelect"),this.dropiClear=r(this,"dropiClear"),this.dropiSearch=r(this,"dropiSearch"),this.dropiScrollEnd=r(this,"dropiScrollEnd"),this.dropiKeyEnter=r(this,"dropiKeyEnter"),this.internals=this.attachInternals()}get el(){return this}internals;buttonRef;scrollDebounce;hasEmittedScrollEnd=!1;lastScrollTop=0;label="";placeholder="Select";options=[];name="";disabled=!1;hasError=!1;errorText="";textHelper="";showObligatory=!1;searchEnabled=!1;multiSelect=!1;dropdownType=!1;showCountryFlags=!1;radioOptions=!1;placeHolderSearch="Buscar";preIcon="";defaultSelectedId;selectedOption=null;overlayClass="";withinModal=!1;selectProperties=null;isOpen=!1;_selectedOption=null;multiSelected=[];filteredOptions=[];searchTerm="";dropdownStyle={top:"0px",left:"0px",width:"0px"};dropiChangeSelect;dropiClear;dropiSearch;dropiScrollEnd;dropiKeyEnter;componentWillLoad(){this.selectProperties&&this.selectPropertiesChanged(this.selectProperties),this.normalizeOptions(),this.filteredOptions=[...this.options],this.applyDefaultSelection()}selectPropertiesChanged(e){e&&(void 0!==e.label&&(this.label=e.label),void 0!==e.placeholder&&(this.placeholder=e.placeholder),void 0!==e.options&&(this.options=e.options),void 0!==e.showObligatory&&(this.showObligatory=e.showObligatory),void 0!==e.textHelper&&(this.textHelper=e.textHelper),void 0!==e.searchEnabled&&(this.searchEnabled=e.searchEnabled),void 0!==e.multiSelect&&(this.multiSelect=e.multiSelect),void 0!==e.dropdownType&&(this.dropdownType=e.dropdownType),void 0!==e.hasError&&(this.hasError=e.hasError),void 0!==e.errorText&&(this.errorText=e.errorText),void 0!==e.radioOptions&&(this.radioOptions=e.radioOptions),void 0!==e.preIcon&&(this.preIcon=e.preIcon))}optionsChanged(){this.normalizeOptions(),this.filteredOptions=[...this.options],this.applyDefaultSelection()}normalizeOptions(){if(this.options){if("string"==typeof this.options)try{this.options=JSON.parse(this.options)}catch(e){this.options=[]}}else this.options=[]}defaultChanged(e){this.applyDefaultSelection(e)}valueChanged(e){this._selectedOption=e,this.internals.setFormValue(e?e.id+"":"")}async setById(e){const t=this.options.find((t=>t.id===e||t.id+""==e+""));t&&this.selectOption(t)}async setByLabel(e){const t=this.options.find((t=>t.label===e));t&&this.selectOption(t)}async clearSelection(){this._selectedOption=null,this.multiSelected=[],this.internals.setFormValue(""),this.dropiClear.emit()}async resetMultiSelect(e){this.multiSelected=[],this.internals.setFormValue("")}handleWindowScroll(e){this.isOpen&&!this.withinModal&&e.target!==this.el&&this.closeDropdown()}handleWindowResize(){this.isOpen&&!this.withinModal&&this.closeDropdown()}handleOutsideClick(e){this.isOpen&&!e.composedPath().includes(this.el)&&this.closeDropdown()}applyDefaultSelection(e){const t=e??this.defaultSelectedId;if(""===t||null==t)return;const i=this.flatOptions().find((e=>e.id===t||e.id+""==t+""));i&&(this._selectedOption=i,this.internals.setFormValue(i.id+""))}flatOptions(){return this.options?.length?"category"in this.options[0]?this.options.flatMap((e=>e.options)):this.options:[]}get isGrouped(){return this.options?.length>0&&"category"in this.options[0]}get triggerLabel(){return this.multiSelect?this.multiSelected.length?this.multiSelected.map((e=>e.label)).join(", "):this.placeholder:this._selectedOption?this.showCountryFlags&&this._selectedOption.shortLabel?this._selectedOption.shortLabel:this._selectedOption.label:this.placeholder}updateDropdownPosition(){if(!this.buttonRef)return;const e=this.buttonRef.getBoundingClientRect(),t=window.innerHeight;this.dropdownStyle={top:(t-e.bottom>=250?e.bottom+4:e.top-250-4)+"px",left:e.left+"px",width:e.width+"px"}}openDropdown(){this.withinModal?this.dropdownStyle={top:this.el.offsetHeight+"px",left:"0px",width:"100%"}:this.updateDropdownPosition(),this.isOpen=!0,this.searchEnabled&&setTimeout((()=>{const e=this.el.shadowRoot?.querySelector(".search-input");e?.focus()}),50)}closeDropdown(){this.isOpen=!1,this.searchTerm="",this.filteredOptions=[...this.options]}toggleDropdown(){this.isOpen?this.closeDropdown():this.openDropdown()}selectOption(e){if(!e.disabled)if(this.multiSelect){const t=this.multiSelected.findIndex((t=>t.id===e.id));this.multiSelected=t>=0?this.multiSelected.filter((t=>t.id!==e.id)):[...this.multiSelected,e],this.internals.setFormValue(this.multiSelected.map((e=>e.id)).join(",")),this.dropiChangeSelect.emit([...this.multiSelected])}else this._selectedOption=e,this.internals.setFormValue(e.id+""),this.dropiChangeSelect.emit(e),this.closeDropdown()}isOptionChecked(e){return this.multiSelected.some((t=>t.id===e.id))}handleSearch(e){this.searchTerm=e,this.dropiSearch.emit(e);const t=e.toLowerCase().trim();this.filteredOptions=t?this.isGrouped?this.options.map((e=>({...e,options:e.options.filter((e=>e.label.toLowerCase().includes(t)))}))).filter((e=>e.options.length>0)):this.options.filter((e=>e.label.toLowerCase().includes(t))):[...this.options]}handleScroll(e){const t=e.target;clearTimeout(this.scrollDebounce),this.scrollDebounce=setTimeout((()=>{if(!t)return;const e=t.scrollHeight-t.scrollTop-t.clientHeight,i=Math.min(50,t.clientHeight/2);t.scrollTop<this.lastScrollTop&&(this.hasEmittedScrollEnd=!1),this.lastScrollTop=t.scrollTop,e<=i&&!this.hasEmittedScrollEnd&&(this.dropiScrollEnd.emit(),this.hasEmittedScrollEnd=!0,setTimeout((()=>{this.hasEmittedScrollEnd=!1}),1e3))}),100)}renderTrigger(){const e=this.disabled?"Gray-Gray-300":this.dropdownType?"Gray-Gray-600":"Gray-Gray-400",t=this.dropdownType?"24px":"20px";return o("button",{type:"button",class:{"select-button":!0,"select-completed":this.multiSelect?this.multiSelected.length>0:!!this._selectedOption,"select-button-error":this.hasError,"no-border":this.dropdownType},disabled:this.disabled,ref:e=>this.buttonRef=e,onClick:()=>this.toggleDropdown()},o("div",{class:{"button-content":!0,"option-radio":this.radioOptions&&!!this._selectedOption&&!this.multiSelect}},this.preIcon&&o("dropi-icon",{name:this.preIcon,iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"}),this.radioOptions&&this._selectedOption&&!this.multiSelect&&[this._selectedOption.imageUrl&&!this._selectedOption.isFallback?o("img",{class:"option-image small-image",src:this._selectedOption.imageUrl,alt:"",onError:()=>{this._selectedOption&&(this._selectedOption={...this._selectedOption,isFallback:!0})}}):this._selectedOption.isFallback?o("span",{class:"option-image-fallback small-image"},this._selectedOption.label.charAt(0).toUpperCase()):null,o("div",{class:"labels-container elipsis"},o("span",null,this._selectedOption.label),this._selectedOption.secondLabel&&o("span",{class:"option-second-label"},this._selectedOption.secondLabel))],!(this.radioOptions&&this._selectedOption&&!this.multiSelect)&&o("div",{class:"elipsis"},this.triggerLabel)),o("dropi-icon",{name:this.isOpen?"Dropdown-up":"Dropdown-down",iconWidth:t,iconHeight:t,color:e}))}renderOption(e){const t=this.multiSelect?this.isOptionChecked(e):this._selectedOption?.id===e.id;return o("li",{key:e.id},o("button",{type:"button",class:{option:!0,"option-radio":this.radioOptions,"option-with-flag":this.showCountryFlags&&!!e.countryCode,"disabled-option":!!e.disabled,"selected-option":t},disabled:e.disabled,onClick:()=>this.selectOption(e)},this.multiSelect&&o("span",{class:{"multi-checkbox":!0,checked:t}},t&&o("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none"},o("path",{d:"M20.6 5.7L9.1 17.2c-.2.2-.5.3-.8.3s-.6-.1-.8-.3L3 12.8c-.4-.4-.4-1 0-1.4.4-.4 1-.4 1.4 0l3.9 3.9L19.2 4.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4z",fill:"white"}))),this.radioOptions&&o("div",{class:{radio:!0,selected:t}},t&&o("div",{class:"circle"})),!this.radioOptions&&e.preIcon&&o("dropi-icon",{name:e.preIcon,iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"}),this.radioOptions&&e.imageUrl&&!e.isFallback&&o("img",{class:"option-image",src:e.imageUrl,alt:"",onError:()=>{e.isFallback=!0,this.options=[...this.options]}}),this.radioOptions&&e.isFallback&&o("span",{class:"option-image-fallback"},e.label.charAt(0).toUpperCase()),this.showCountryFlags&&e.countryCode&&o("span",{class:"flag-placeholder"},e.countryCode),this.radioOptions?o("div",{class:"labels-container"},o("span",{class:"elipsis"},e.label),e.secondLabel&&o("span",{class:"option-second-label"},e.secondLabel)):o("span",{class:"elipsis"},this.showCountryFlags&&e.shortLabel?e.shortLabel:e.label)))}renderDropdown(){return this.isOpen?o("ul",{class:`select-dropdown-overlay ${this.overlayClass} ${this.withinModal?"within-modal":""}`,style:this.dropdownStyle,onScroll:e=>this.handleScroll(e)},this.searchEnabled&&o("li",{class:"sticky-search"},o("div",{class:"search-wrapper"},o("dropi-icon",{name:"Search",iconWidth:"16px",iconHeight:"16px",color:"Gray-Gray-400"}),o("input",{class:"search-input",type:"text",placeholder:this.placeHolderSearch,value:this.searchTerm,onInput:e=>this.handleSearch(e.target.value),onKeyDown:e=>{"Enter"===e.key&&this.dropiKeyEnter.emit(e)}}),this.searchTerm&&o("button",{type:"button",class:"search-clear",onClick:()=>this.handleSearch("")},o("dropi-icon",{name:"Close",iconWidth:"14px",iconHeight:"14px",color:"Gray-Gray-400"})))),this.isGrouped&&this.filteredOptions.map((e=>[o("li",{class:"option-group-title"},e.category),...e.options.map((e=>o("li",{key:e.id},o("button",{type:"button",class:{option:!0,"option-group":!0,"disabled-option":!!e.disabled},disabled:e.disabled,onClick:()=>this.selectOption(e)},e.preIcon&&o("dropi-icon",{name:e.preIcon,iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"}),o("span",{class:"elipsis"},e.label)))))])),!this.isGrouped&&this.filteredOptions.map((e=>this.renderOption(e))),0===this.filteredOptions.length&&o("li",{class:"no-results"},"Sin resultados")):null}render(){return o("div",{key:"4f34c329d9993926758230f0e9ca0f8d0e57ef6e",class:"custom-select"},!this.dropdownType&&this.label&&o("label",{key:"743013592658ee415d4a9e3db8ec648472a3428e",class:{"disabled-label":this.disabled}},this.label,this.showObligatory&&!this.disabled&&o("span",{key:"56183248733eb18956664c859c8f7d4057f3fa11",class:"asterisk"}," *")),o("div",{key:"c93f45456478ac5419d542512092e877a04f28b7",class:"dropdown-container"},this.dropdownType&&this.label&&o("div",{key:"0632779b9ba71f1fb91944b54b477999f607a3f5",class:"left-label"},this.label),this.renderTrigger()),this.textHelper&&!this.hasError&&o("div",{key:"3e57fc2b53715abb9800db573119cf77b0333d37",class:"select-helper"},o("span",{key:"baf3d1f0ae4d535acae2a08df8d2079996afdcff"},this.textHelper)),this.hasError&&this.errorText&&o("div",{key:"8b25aae92b9370a02fcfd81f50b98df145d3cb0e",class:"select-helper-error"},o("dropi-icon",{key:"60643f0b7e54f8533dc9fd7dd17715aec59d851c",name:"Warning-circle",iconWidth:"12px",iconHeight:"12px",color:"Error-Error-500"}),o("span",{key:"35bcdfd3c9825cbac269b1085d4c552df694f33a"},this.errorText)),this.renderDropdown())}static get formAssociated(){return!0}static get watchers(){return{selectProperties:[{selectPropertiesChanged:0}],options:[{optionsChanged:0}],defaultSelectedId:[{defaultChanged:0}],selectedOption:[{valueChanged:0}]}}static get style(){return":host{display:block;width:100%;text-align:left}*,*::before,*::after{box-sizing:border-box}.custom-select{position:relative;width:100%}.custom-select label{display:block;font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-600, #475066)}.disabled-label{color:var(--Gray-Gray-400, #858ea6) !important}.asterisk{color:var(--Error-Error-500, #f46a6b)}.dropdown-container{display:flex;align-items:center;gap:4px}.left-label{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-m, 14px);white-space:nowrap}.select-button{box-sizing:border-box;width:100%;height:40px;padding:0 0.75rem;border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);color:var(--Gray-Gray-500, #69738c);font-size:var(--font-size-s, 12px);font-family:inherit;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;transition:border-color 0.2s ease;gap:8px}.select-button:focus{outline:none;border-color:var(--Info-Info-500, #50a5f1)}.select-button:disabled{border-color:var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-400, #858ea6);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed}.select-completed{border-color:var(--Gray-Gray-400, #858ea6);color:var(--Gray-Gray-600, #475066)}.select-button-error{border-color:var(--Error-Error-500, #f46a6b) !important}.no-border{border:none !important;color:var(--Gray-Gray-600, #475066);padding:var(--Size-4, 16px);background-color:transparent !important;gap:var(--Size-2, 8px)}.no-border:disabled{background-color:transparent !important}.button-content{display:flex;align-items:center;gap:8px;overflow:hidden;flex:1;min-width:0}.elipsis{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-dropdown-overlay{position:fixed;max-height:250px;overflow-y:auto;list-style:none;padding:var(--Size-4, 16px) var(--Size-4, 16px) var(--Size-3, 12px);margin:0;border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);box-shadow:0px 8px 24px rgba(0, 0, 0, 0.12);z-index:var(--dropi-z-index-overlay, 11000);animation:dropdown-open 120ms ease-out}.select-dropdown-overlay.within-modal{position:absolute}@keyframes dropdown-open{from{opacity:0;transform:scaleY(0.95);transform-origin:top}to{opacity:1;transform:scaleY(1);transform-origin:top}}.option{box-sizing:border-box;width:100%;min-height:40px;border-radius:var(--Border-2, 8px);padding:var(--Size-3, 12px) var(--Size-4, 16px);border:none;background:transparent;text-align:left;color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-s, 12px);font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:var(--Size-2, 8px);transition:background 0.15s ease}.option:hover:not(:disabled){background:var(--Gray-Gray-50, #f7f8fa)}.option:disabled,.disabled-option{opacity:0.5;cursor:not-allowed}.option.selected-option:not(.option-radio){background:var(--Primary-Primary-50, #fef8f2);color:var(--Primary-Primary-500, #f49a3d)}.option-group-title{padding:var(--Size-3, 12px) var(--Size-4, 16px);font-size:var(--font-size-s, 12px);font-weight:var(--font-weight-medium, 500);color:var(--Gray-Gray-500, #69738c);list-style:none}.option-group{padding-left:var(--Size-6, 32px)}.sticky-search{position:sticky;top:calc(-1 * var(--Size-4, 16px));background:var(--Neutral-White, #ffffff);z-index:10;margin:calc(-1 * var(--Size-4, 16px)) calc(-1 * var(--Size-4, 16px)) 0;padding:var(--Size-2, 8px) var(--Size-4, 16px);border-bottom:1px solid var(--Gray-Gray-100, #e6eaf2);list-style:none}.search-wrapper{display:flex;align-items:center;gap:8px;border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);padding:6px 10px;background:var(--Neutral-White, #ffffff)}.search-input{flex:1;border:none;outline:none;font-size:var(--font-size-s, 12px);font-family:inherit;color:var(--Gray-Gray-700, #32394d);background:transparent}.search-input::placeholder{color:var(--Gray-Gray-400, #858ea6)}.search-clear{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.multi-checkbox{width:18px;height:18px;min-width:18px;border-radius:var(--Border-1, 4px);border:2px solid var(--Gray-Gray-200, #c3c9d9);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.15s, border-color 0.15s}.multi-checkbox.checked{background:var(--Primary-Primary-500, #f49a3d);border-color:var(--Primary-Primary-500, #f49a3d)}.option-radio{display:flex;align-items:center;gap:12px}.option-radio.selected-option{border-radius:var(--Border-2, 8px);background:var(--Primary-Primary-50, #fef8f2);color:var(--Primary-Primary-500, #f49a3d)}.option-radio.selected-option .option-second-label{color:var(--Primary-Primary-500, #f49a3d)}.radio{width:20px;height:20px;min-width:20px;border-radius:50%;border:2px solid var(--Gray-Gray-200, #c3c9d9);display:flex;align-items:center;justify-content:center;flex-shrink:0}.radio.selected{border-color:var(--Primary-Primary-500, #f49a3d)}.circle{width:12px;height:12px;border-radius:50%;background:var(--Primary-Primary-500, #f49a3d)}.labels-container{display:flex;justify-content:space-between;width:100%;min-width:0}.option-image{width:24px;height:24px;border-radius:60px;object-fit:cover;flex-shrink:0}.small-image{width:20px;height:20px}.option-image-fallback{width:24px;height:24px;border-radius:60px;background:var(--Primary-Primary-500, #f49a3d);color:white;font-size:13px;font-weight:var(--font-weight-bold);display:flex;justify-content:center;align-items:center;flex-shrink:0}.small-image.option-image-fallback{width:20px;height:20px}.option-second-label{color:var(--Gray-Gray-700, #32394d);font-weight:var(--font-weight-bold);white-space:nowrap}.flag-placeholder{font-size:11px;font-weight:var(--font-weight-semibold);color:var(--Gray-Gray-500, #69738c);flex-shrink:0}.select-helper,.select-helper-error{display:flex;gap:var(--Size-1, 4px);align-items:center;margin-top:var(--Size-1, 4px)}.select-helper span{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px)}.select-helper-error span{color:var(--Error-Error-500, #f46a6b);font-size:var(--font-size-xs, 10px)}.no-results{padding:var(--Size-3, 12px) var(--Size-4, 16px);color:var(--Gray-Gray-400, #858ea6);font-size:var(--font-size-s, 12px);list-style:none;text-align:center}"}},[577,"dropi-select",{label:[1025],placeholder:[1025],options:[1040],name:[1],disabled:[516],hasError:[1028,"has-error"],errorText:[1025,"error-text"],textHelper:[1025,"text-helper"],showObligatory:[1028,"show-obligatory"],searchEnabled:[1028,"search-enabled"],multiSelect:[1028,"multi-select"],dropdownType:[1028,"dropdown-type"],showCountryFlags:[4,"show-country-flags"],radioOptions:[1028,"radio-options"],placeHolderSearch:[1,"place-holder-search"],preIcon:[1025,"pre-icon"],defaultSelectedId:[1032,"default-selected-id"],selectedOption:[1040],overlayClass:[1,"overlay-class"],withinModal:[4,"within-modal"],selectProperties:[8,"select-properties"],isOpen:[32],_selectedOption:[32],multiSelected:[32],filteredOptions:[32],searchTerm:[32],dropdownStyle:[32],setById:[64],setByLabel:[64],clearSelection:[64],resetMultiSelect:[64]},[[11,"scroll","handleWindowScroll"],[9,"resize","handleWindowResize"],[4,"click","handleOutsideClick"]],{selectProperties:[{selectPropertiesChanged:0}],options:[{optionsChanged:0}],defaultSelectedId:[{defaultChanged:0}],selectedOption:[{valueChanged:0}]}]);function n(){"undefined"!=typeof customElements&&["dropi-select","dropi-icon"].forEach((t=>{switch(t){case"dropi-select":customElements.get(e(t))||customElements.define(e(t),a);break;case"dropi-icon":customElements.get(e(t))||s()}}))}n();const l=a,d=n;export{l as DropiSelect,d as defineCustomElement}
1
+ import{t as e,p as t,H as i,c as r,h as o}from"./index.js";import{d as s}from"./p-B9rJd-Rf.js";const a=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.dropiChangeSelect=r(this,"dropiChangeSelect"),this.dropiClear=r(this,"dropiClear"),this.dropiSearch=r(this,"dropiSearch"),this.dropiScrollEnd=r(this,"dropiScrollEnd"),this.dropiKeyEnter=r(this,"dropiKeyEnter"),this.internals=this.attachInternals()}get el(){return this}internals;buttonRef;scrollDebounce;hasEmittedScrollEnd=!1;lastScrollTop=0;label="";placeholder="Select";options=[];name="";disabled=!1;hasError=!1;errorText="";textHelper="";showObligatory=!1;searchEnabled=!1;multiSelect=!1;dropdownType=!1;showCountryFlags=!1;radioOptions=!1;placeHolderSearch="Buscar";preIcon="";defaultSelectedId;selectedOption=null;overlayClass="";withinModal=!1;selectProperties=null;isOpen=!1;_selectedOption=null;multiSelected=[];filteredOptions=[];searchTerm="";dropdownStyle={top:"0px",left:"0px",width:"0px"};dropiChangeSelect;dropiClear;dropiSearch;dropiScrollEnd;dropiKeyEnter;componentWillLoad(){this.selectProperties&&this.selectPropertiesChanged(this.selectProperties),this.normalizeOptions(),this.filteredOptions=[...this.options],this.applyDefaultSelection()}selectPropertiesChanged(e){e&&(void 0!==e.label&&(this.label=e.label),void 0!==e.placeholder&&(this.placeholder=e.placeholder),void 0!==e.options&&(this.options=e.options),void 0!==e.showObligatory&&(this.showObligatory=e.showObligatory),void 0!==e.textHelper&&(this.textHelper=e.textHelper),void 0!==e.searchEnabled&&(this.searchEnabled=e.searchEnabled),void 0!==e.multiSelect&&(this.multiSelect=e.multiSelect),void 0!==e.dropdownType&&(this.dropdownType=e.dropdownType),void 0!==e.hasError&&(this.hasError=e.hasError),void 0!==e.errorText&&(this.errorText=e.errorText),void 0!==e.radioOptions&&(this.radioOptions=e.radioOptions),void 0!==e.preIcon&&(this.preIcon=e.preIcon))}optionsChanged(){this.normalizeOptions(),this.filteredOptions=[...this.options],this.applyDefaultSelection()}normalizeOptions(){if(this.options){if("string"==typeof this.options)try{this.options=JSON.parse(this.options)}catch(e){this.options=[]}}else this.options=[]}defaultChanged(e){this.applyDefaultSelection(e)}valueChanged(e){this._selectedOption=e,this.internals.setFormValue(e?e.id+"":"")}async setById(e){const t=this.options.find((t=>t.id===e||t.id+""==e+""));t&&this.selectOption(t)}async setByLabel(e){const t=this.options.find((t=>t.label===e));t&&this.selectOption(t)}async clearSelection(){this._selectedOption=null,this.multiSelected=[],this.internals.setFormValue(""),this.dropiClear.emit()}async resetMultiSelect(e){this.multiSelected=[],this.internals.setFormValue("")}handleWindowScroll(e){this.isOpen&&!this.withinModal&&e.target!==this.el&&this.closeDropdown()}handleWindowResize(){this.isOpen&&!this.withinModal&&this.closeDropdown()}handleOutsideClick(e){this.isOpen&&!e.composedPath().includes(this.el)&&this.closeDropdown()}applyDefaultSelection(e){const t=e??this.defaultSelectedId;if(""===t||null==t)return;const i=this.flatOptions().find((e=>e.id===t||e.id+""==t+""));i&&(this._selectedOption=i,this.internals.setFormValue(i.id+""))}flatOptions(){return this.options?.length?"category"in this.options[0]?this.options.flatMap((e=>e.options)):this.options:[]}get isGrouped(){return this.options?.length>0&&"category"in this.options[0]}get triggerLabel(){return this.multiSelect?this.multiSelected.length?this.multiSelected.map((e=>e.label)).join(", "):this.placeholder:this._selectedOption?this.showCountryFlags&&this._selectedOption.shortLabel?this._selectedOption.shortLabel:this._selectedOption.label:this.placeholder}updateDropdownPosition(){if(!this.buttonRef)return;const e=this.buttonRef.getBoundingClientRect(),t=window.innerHeight;this.dropdownStyle={top:(t-e.bottom>=250?e.bottom+4:e.top-250-4)+"px",left:e.left+"px",width:e.width+"px"}}openDropdown(){this.withinModal?this.dropdownStyle={top:this.el.offsetHeight+"px",left:"0px",width:"100%"}:this.updateDropdownPosition(),this.isOpen=!0,this.searchEnabled&&setTimeout((()=>{const e=this.el.shadowRoot?.querySelector(".search-input");e?.focus()}),50)}closeDropdown(){this.isOpen=!1,this.searchTerm="",this.filteredOptions=[...this.options]}toggleDropdown(){this.isOpen?this.closeDropdown():this.openDropdown()}selectOption(e){if(!e.disabled)if(this.multiSelect){const t=this.multiSelected.findIndex((t=>t.id===e.id));this.multiSelected=t>=0?this.multiSelected.filter((t=>t.id!==e.id)):[...this.multiSelected,e],this.internals.setFormValue(this.multiSelected.map((e=>e.id)).join(",")),this.dropiChangeSelect.emit([...this.multiSelected])}else this._selectedOption=e,this.internals.setFormValue(e.id+""),this.dropiChangeSelect.emit(e),this.closeDropdown()}isOptionChecked(e){return this.multiSelected.some((t=>t.id===e.id))}handleSearch(e){this.searchTerm=e,this.dropiSearch.emit(e);const t=e.toLowerCase().trim();this.filteredOptions=t?this.isGrouped?this.options.map((e=>({...e,options:e.options.filter((e=>e.label.toLowerCase().includes(t)))}))).filter((e=>e.options.length>0)):this.options.filter((e=>e.label.toLowerCase().includes(t))):[...this.options]}handleScroll(e){const t=e.target;clearTimeout(this.scrollDebounce),this.scrollDebounce=setTimeout((()=>{if(!t)return;const e=t.scrollHeight-t.scrollTop-t.clientHeight,i=Math.min(50,t.clientHeight/2);t.scrollTop<this.lastScrollTop&&(this.hasEmittedScrollEnd=!1),this.lastScrollTop=t.scrollTop,e<=i&&!this.hasEmittedScrollEnd&&(this.dropiScrollEnd.emit(),this.hasEmittedScrollEnd=!0,setTimeout((()=>{this.hasEmittedScrollEnd=!1}),1e3))}),100)}renderTrigger(){const e=this.disabled?"Gray-Gray-300":this.dropdownType?"Gray-Gray-600":"Gray-Gray-400",t=this.dropdownType?"24px":"20px";return o("button",{type:"button",class:{"select-button":!0,"select-completed":this.multiSelect?this.multiSelected.length>0:!!this._selectedOption,"select-button-error":this.hasError,"no-border":this.dropdownType},disabled:this.disabled,ref:e=>this.buttonRef=e,onClick:()=>this.toggleDropdown()},o("div",{class:{"button-content":!0,"option-radio":this.radioOptions&&!!this._selectedOption&&!this.multiSelect}},this.preIcon&&o("dropi-icon",{name:this.preIcon,iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"}),this.radioOptions&&this._selectedOption&&!this.multiSelect&&[this._selectedOption.imageUrl&&!this._selectedOption.isFallback?o("img",{class:"option-image small-image",src:this._selectedOption.imageUrl,alt:"",onError:()=>{this._selectedOption&&(this._selectedOption={...this._selectedOption,isFallback:!0})}}):this._selectedOption.isFallback?o("span",{class:"option-image-fallback small-image"},this._selectedOption.label.charAt(0).toUpperCase()):null,o("div",{class:"labels-container elipsis"},o("span",null,this._selectedOption.label),this._selectedOption.secondLabel&&o("span",{class:"option-second-label"},this._selectedOption.secondLabel))],!(this.radioOptions&&this._selectedOption&&!this.multiSelect)&&o("div",{class:"elipsis"},this.triggerLabel)),o("dropi-icon",{name:this.isOpen?"Dropdown-up":"Dropdown-down",iconWidth:t,iconHeight:t,color:e}))}renderOption(e){const t=this.multiSelect?this.isOptionChecked(e):this._selectedOption?.id===e.id;return o("li",{key:e.id},o("button",{type:"button",class:{option:!0,"option-radio":this.radioOptions,"option-with-flag":this.showCountryFlags&&!!e.countryCode,"disabled-option":!!e.disabled,"selected-option":t},disabled:e.disabled,onClick:()=>this.selectOption(e)},this.multiSelect&&o("span",{class:{"multi-checkbox":!0,checked:t}},t&&o("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none"},o("path",{d:"M20.6 5.7L9.1 17.2c-.2.2-.5.3-.8.3s-.6-.1-.8-.3L3 12.8c-.4-.4-.4-1 0-1.4.4-.4 1-.4 1.4 0l3.9 3.9L19.2 4.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4z",fill:"white"}))),this.radioOptions&&o("div",{class:{radio:!0,selected:t}},t&&o("div",{class:"circle"})),!this.radioOptions&&e.preIcon&&o("dropi-icon",{name:e.preIcon,iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"}),this.radioOptions&&e.imageUrl&&!e.isFallback&&o("img",{class:"option-image",src:e.imageUrl,alt:"",onError:()=>{e.isFallback=!0,this.options=[...this.options]}}),this.radioOptions&&e.isFallback&&o("span",{class:"option-image-fallback"},e.label.charAt(0).toUpperCase()),this.showCountryFlags&&e.countryCode&&o("span",{class:"flag-placeholder"},e.countryCode),this.radioOptions?o("div",{class:"labels-container"},o("span",{class:"elipsis"},e.label),e.secondLabel&&o("span",{class:"option-second-label"},e.secondLabel)):o("span",{class:"elipsis"},this.showCountryFlags&&e.shortLabel?e.shortLabel:e.label)))}renderDropdown(){return this.isOpen?o("ul",{class:`select-dropdown-overlay ${this.overlayClass} ${this.withinModal?"within-modal":""}`,style:this.dropdownStyle,onScroll:e=>this.handleScroll(e)},this.searchEnabled&&o("li",{class:"sticky-search"},o("div",{class:"search-wrapper"},o("dropi-icon",{name:"Search",iconWidth:"16px",iconHeight:"16px",color:"Gray-Gray-400"}),o("input",{class:"search-input",type:"text",placeholder:this.placeHolderSearch,value:this.searchTerm,onInput:e=>this.handleSearch(e.target.value),onKeyDown:e=>{"Enter"===e.key&&this.dropiKeyEnter.emit(e)}}),this.searchTerm&&o("button",{type:"button",class:"search-clear",onClick:()=>this.handleSearch("")},o("dropi-icon",{name:"Close",iconWidth:"14px",iconHeight:"14px",color:"Gray-Gray-400"})))),this.isGrouped&&this.filteredOptions.map((e=>[o("li",{class:"option-group-title"},e.category),...e.options.map((e=>o("li",{key:e.id},o("button",{type:"button",class:{option:!0,"option-group":!0,"disabled-option":!!e.disabled},disabled:e.disabled,onClick:()=>this.selectOption(e)},e.preIcon&&o("dropi-icon",{name:e.preIcon,iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"}),o("span",{class:"elipsis"},e.label)))))])),!this.isGrouped&&this.filteredOptions.map((e=>this.renderOption(e))),0===this.filteredOptions.length&&o("li",{class:"no-results"},"Sin resultados")):null}render(){return o("div",{key:"f09113a288d45bb5519503bb78c41e236913c1eb",class:"custom-select"},!this.dropdownType&&this.label&&o("label",{key:"c0b59763dc3529d7f9bb5597a2bea0d38070a07b",class:{"disabled-label":this.disabled}},this.label,this.showObligatory&&!this.disabled&&o("span",{key:"6c8a47bdfc216231ba72420298b3bc8deeeae435",class:"asterisk"}," *")),o("div",{key:"8ec45010af1252effe34bb69d3f40ea277459511",class:"dropdown-container"},this.dropdownType&&this.label&&o("div",{key:"b3f7f9adacd57b091baac662fc7be6fcd847c3a4",class:"left-label"},this.label),this.renderTrigger()),this.textHelper&&!this.hasError&&o("div",{key:"a4cce833b50b2bc62cb7142da420f81c0647e97e",class:"select-helper"},o("span",{key:"f69375abc2f66b5b1278895b8f313adabfa0f938"},this.textHelper)),this.hasError&&this.errorText&&o("div",{key:"6681bdbb705633d393adab09a889f3f1fb6fbe8a",class:"select-helper-error"},o("dropi-icon",{key:"09521eeef2cf2a58cb74bea5bfae8a6d58d17682",name:"Warning-circle",iconWidth:"12px",iconHeight:"12px",color:"Error-Error-500"}),o("span",{key:"807820bb0a474079627bf12c20f4a034896785cd"},this.errorText)),this.renderDropdown())}static get formAssociated(){return!0}static get watchers(){return{selectProperties:[{selectPropertiesChanged:0}],options:[{optionsChanged:0}],defaultSelectedId:[{defaultChanged:0}],selectedOption:[{valueChanged:0}]}}static get style(){return":host{display:block;width:100%;text-align:left}*,*::before,*::after{box-sizing:border-box}.custom-select{position:relative;width:100%}.custom-select label{display:block;font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-600, #475066)}.disabled-label{color:var(--Gray-Gray-400, #858ea6) !important}.asterisk{color:var(--Error-Error-500, #f46a6b)}.dropdown-container{display:flex;align-items:center;gap:4px}.left-label{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-m, 14px);white-space:nowrap}.select-button{box-sizing:border-box;width:100%;height:40px;padding:0 0.75rem;border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);color:var(--Gray-Gray-500, #69738c);font-size:var(--font-size-s, 12px);font-family:inherit;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;transition:border-color 0.2s ease;gap:8px}.select-button:focus{outline:none;border-color:var(--Info-Info-500, #50a5f1)}.select-button:disabled{border-color:var(--Gray-Gray-200, #c3c9d9);color:var(--Gray-Gray-400, #858ea6);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed}.select-completed{border-color:var(--Gray-Gray-400, #858ea6);color:var(--Gray-Gray-600, #475066)}.select-button-error{border-color:var(--Error-Error-500, #f46a6b) !important}.no-border{border:none !important;color:var(--Gray-Gray-600, #475066);padding:var(--Size-4, 16px);background-color:transparent !important;gap:var(--Size-2, 8px)}.no-border:disabled{background-color:transparent !important}.button-content{display:flex;align-items:center;gap:8px;overflow:hidden;flex:1;min-width:0}.elipsis{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-dropdown-overlay{position:fixed;max-height:250px;overflow-y:auto;list-style:none;padding:var(--Size-4, 16px) var(--Size-4, 16px) var(--Size-3, 12px);margin:0;border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);box-shadow:0px 8px 24px rgba(0, 0, 0, 0.12);z-index:var(--dropi-z-index-overlay, 11000);animation:dropdown-open 120ms ease-out}.select-dropdown-overlay.within-modal{position:absolute}@keyframes dropdown-open{from{opacity:0;transform:scaleY(0.95);transform-origin:top}to{opacity:1;transform:scaleY(1);transform-origin:top}}.option{box-sizing:border-box;width:100%;min-height:40px;border-radius:var(--Border-2, 8px);padding:var(--Size-3, 12px) var(--Size-4, 16px);border:none;background:transparent;text-align:left;color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-s, 12px);font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:var(--Size-2, 8px);transition:background 0.15s ease}.option:hover:not(:disabled){background:var(--Gray-Gray-50, #f7f8fa)}.option:disabled,.disabled-option{opacity:0.5;cursor:not-allowed}.option.selected-option:not(.option-radio){background:var(--Primary-Primary-50, #fef8f2);color:var(--Primary-Primary-500, #f49a3d)}.option-group-title{padding:var(--Size-3, 12px) var(--Size-4, 16px);font-size:var(--font-size-s, 12px);font-weight:var(--font-weight-medium, 500);color:var(--Gray-Gray-500, #69738c);list-style:none}.option-group{padding-left:var(--Size-6, 32px)}.sticky-search{position:sticky;top:calc(-1 * var(--Size-4, 16px));background:var(--Neutral-White, #ffffff);z-index:10;margin:calc(-1 * var(--Size-4, 16px)) calc(-1 * var(--Size-4, 16px)) 0;padding:var(--Size-2, 8px) var(--Size-4, 16px);border-bottom:1px solid var(--Gray-Gray-100, #e6eaf2);list-style:none}.search-wrapper{display:flex;align-items:center;gap:8px;border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);padding:6px 10px;background:var(--Neutral-White, #ffffff)}.search-input{flex:1;border:none;outline:none;font-size:var(--font-size-s, 12px);font-family:inherit;color:var(--Gray-Gray-700, #32394d);background:transparent}.search-input::placeholder{color:var(--Gray-Gray-400, #858ea6)}.search-clear{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center}.multi-checkbox{width:18px;height:18px;min-width:18px;border-radius:var(--Border-1, 4px);border:2px solid var(--Gray-Gray-200, #c3c9d9);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.15s, border-color 0.15s}.multi-checkbox.checked{background:var(--Primary-Primary-500, #f49a3d);border-color:var(--Primary-Primary-500, #f49a3d)}.option-radio{display:flex;align-items:center;gap:12px}.option-radio.selected-option{border-radius:var(--Border-2, 8px);background:var(--Primary-Primary-50, #fef8f2);color:var(--Primary-Primary-500, #f49a3d)}.option-radio.selected-option .option-second-label{color:var(--Primary-Primary-500, #f49a3d)}.radio{width:20px;height:20px;min-width:20px;border-radius:50%;border:2px solid var(--Gray-Gray-200, #c3c9d9);display:flex;align-items:center;justify-content:center;flex-shrink:0}.radio.selected{border-color:var(--Primary-Primary-500, #f49a3d)}.circle{width:12px;height:12px;border-radius:50%;background:var(--Primary-Primary-500, #f49a3d)}.labels-container{display:flex;justify-content:space-between;width:100%;min-width:0}.option-image{width:24px;height:24px;border-radius:60px;object-fit:cover;flex-shrink:0}.small-image{width:20px;height:20px}.option-image-fallback{width:24px;height:24px;border-radius:60px;background:var(--Primary-Primary-500, #f49a3d);color:white;font-size:13px;font-weight:var(--font-weight-bold);display:flex;justify-content:center;align-items:center;flex-shrink:0}.small-image.option-image-fallback{width:20px;height:20px}.option-second-label{color:var(--Gray-Gray-700, #32394d);font-weight:var(--font-weight-bold);white-space:nowrap}.flag-placeholder{font-size:11px;font-weight:var(--font-weight-semibold);color:var(--Gray-Gray-500, #69738c);flex-shrink:0}.select-helper,.select-helper-error{display:flex;gap:var(--Size-1, 4px);align-items:center;margin-top:var(--Size-1, 4px)}.select-helper span{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px)}.select-helper-error span{color:var(--Error-Error-500, #f46a6b);font-size:var(--font-size-xs, 10px)}.no-results{padding:var(--Size-3, 12px) var(--Size-4, 16px);color:var(--Gray-Gray-400, #858ea6);font-size:var(--font-size-s, 12px);list-style:none;text-align:center}"}},[577,"dropi-select",{label:[1025],placeholder:[1025],options:[1040],name:[513],disabled:[516],hasError:[1028,"has-error"],errorText:[1025,"error-text"],textHelper:[1025,"text-helper"],showObligatory:[1028,"show-obligatory"],searchEnabled:[1028,"search-enabled"],multiSelect:[1028,"multi-select"],dropdownType:[1028,"dropdown-type"],showCountryFlags:[4,"show-country-flags"],radioOptions:[1028,"radio-options"],placeHolderSearch:[1,"place-holder-search"],preIcon:[1025,"pre-icon"],defaultSelectedId:[1032,"default-selected-id"],selectedOption:[1040],overlayClass:[1,"overlay-class"],withinModal:[4,"within-modal"],selectProperties:[8,"select-properties"],isOpen:[32],_selectedOption:[32],multiSelected:[32],filteredOptions:[32],searchTerm:[32],dropdownStyle:[32],setById:[64],setByLabel:[64],clearSelection:[64],resetMultiSelect:[64]},[[11,"scroll","handleWindowScroll"],[9,"resize","handleWindowResize"],[4,"click","handleOutsideClick"]],{selectProperties:[{selectPropertiesChanged:0}],options:[{optionsChanged:0}],defaultSelectedId:[{defaultChanged:0}],selectedOption:[{valueChanged:0}]}]);function n(){"undefined"!=typeof customElements&&["dropi-select","dropi-icon"].forEach((t=>{switch(t){case"dropi-select":customElements.get(e(t))||customElements.define(e(t),a);break;case"dropi-icon":customElements.get(e(t))||s()}}))}n();const l=a,d=n;export{l as DropiSelect,d as defineCustomElement}
@@ -1 +1 @@
1
- import{D as o,d as s}from"./p-BzCPv3ND.js";const p=o,r=s;export{p as DropiSwitch,r as defineCustomElement}
1
+ import{D as o,d as s}from"./p-Dd1g1gjR.js";const p=o,r=s;export{p as DropiSwitch,r as defineCustomElement}
@@ -1 +1 @@
1
- import{t,p as e,H as i,c as a,h as r}from"./index.js";import{d as o}from"./p-CWT7wT9m.js";import{d as s}from"./p-BSB5Ar-y.js";import{d as n}from"./p-B9rJd-Rf.js";import{d as l}from"./p-CXUiN3Rj.js";import{d as c}from"./p-RQjw5hdz.js";import{d}from"./p-B9-h_ikq.js";const h=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.dropiSort=a(this,"dropiSort"),this.dropiSelection=a(this,"dropiSelection"),this.dropiRowClick=a(this,"dropiRowClick"),this.dropiSearch=a(this,"dropiSearch"),this.dropiPageChange=a(this,"dropiPageChange"),this.dropiPageSizeChange=a(this,"dropiPageSizeChange"),this.dropiAction=a(this,"dropiAction"),this.dropiRowsSelected=a(this,"dropiRowsSelected"),this.dropiActionClick=a(this,"dropiActionClick"),this.dropiPageChangeAngular=a(this,"dropiPageChangeAngular"),this.dropiSizeChangeAngular=a(this,"dropiSizeChangeAngular"),this.dropiSortChangeAngular=a(this,"dropiSortChangeAngular"),this.dropiSearchChangeAngular=a(this,"dropiSearchChangeAngular"),this.expandChildren=a(this,"expandChildren")}columns=[];rows=[];showCheckbox=!1;loading=!1;emptyMessage="No hay datos disponibles";tableTitle="";showSearch=!1;showColumnSelector=!1;showPaginator=!1;pageSizes=[5,10,25,50];currentPage=1;totalPages=1;rowActions=[];headers=[];data=[];selectedRowIds=null;childData=[];visibleRowsChildrens=[];dropiTableConfiguration=null;dropiTableBackendParams=null;isCursorPagination=!1;parsedColumns=[];parsedRows=[];parsedPageSizes=[5,10,25,50];parsedRowActions=[];sortKey="";sortDir=null;sortAsc=!0;selectedKeys=new Set;searchTerm="";pageSize=5;showColumnMenu=!1;hiddenColumns=new Set;openActionRow=-1;dropiSort;dropiSelection;dropiRowClick;dropiSearch;dropiPageChange;dropiPageSizeChange;dropiAction;dropiRowsSelected;dropiActionClick;dropiPageChangeAngular;dropiSizeChangeAngular;dropiSortChangeAngular;dropiSearchChangeAngular;expandChildren;columnsChanged(t){this.parsedColumns="string"==typeof t?JSON.parse(t):t||[]}rowsChanged(t){this.parsedRows="string"==typeof t?JSON.parse(t):t||[],this.selectedKeys=new Set}pageSizesChanged(t){this.parsedPageSizes="string"==typeof t?JSON.parse(t):t||[5,10,25,50],this.pageSize=this.parsedPageSizes[0]??5}rowActionsChanged(t){this.parsedRowActions="string"==typeof t?JSON.parse(t):t||[]}headersChanged(t){const e="string"==typeof t?JSON.parse(t):t||[];e.length>0&&(this.parsedColumns=e)}dataChanged(t){const e="string"==typeof t?JSON.parse(t):t||[];e.length>0&&(this.parsedRows=e,this.selectedKeys=new Set)}componentWillLoad(){if(null==this.data&&null==this.rows&&null==this.headers&&null==this.columns)return;const t=(Array.isArray(this.headers)?this.headers:[]).length?this.headers:this.columns,e=(Array.isArray(this.data)?this.data:[]).length?this.data:this.rows;this.columnsChanged(t),this.rowsChanged(e),this.pageSizesChanged(this.pageSizes),this.rowActionsChanged(this.rowActions)}get visibleColumns(){const t=this.hiddenColumns??new Set;return(this.parsedColumns??[]).filter((e=>!t.has(e.key)))}get filteredRows(){if(!this.searchTerm)return this.parsedRows;const t=this.searchTerm.toLowerCase();return this.parsedRows.filter((e=>Object.values(e).some((e=>((e??"")+"").toLowerCase().includes(t)))))}get sortedRows(){const t=this.filteredRows;if(!this.sortKey||!this.sortDir)return t;const e=this.sortKey,i="asc"===this.sortDir?1:-1;return[...t].sort(((t,a)=>{const r=t[e]??"",o=a[e]??"";return r<o?-i:r>o?i:0}))}get pagedRows(){if(!this.showPaginator)return this.sortedRows;const t=(this.currentPage-1)*this.pageSize;return this.sortedRows.slice(t,t+this.pageSize)}handleSort(t){t.sortable&&(this.sortKey===t.key?(this.sortDir="asc"===this.sortDir?"desc":"desc"===this.sortDir?null:"asc",this.sortAsc="desc"!==this.sortDir,null===this.sortDir&&(this.sortKey="")):(this.sortKey=t.key,this.sortDir="asc",this.sortAsc=!0),this.dropiSort.emit({key:this.sortKey,dir:this.sortDir}),this.dropiSortChangeAngular.emit({key:this.sortKey,dir:this.sortDir}))}toggleRow(t){const e=new Set(this.selectedKeys);e.has(t)?e.delete(t):e.add(t),this.selectedKeys=e;const i=Array.from(e);this.dropiSelection.emit(i),this.dropiRowsSelected.emit(i.map((t=>this.pagedRows[t])))}toggleAll(t){this.selectedKeys=t?new Set(this.pagedRows.map(((t,e)=>e))):new Set;const e=Array.from(this.selectedKeys);this.dropiSelection.emit(e),this.dropiRowsSelected.emit(e.map((t=>this.pagedRows[t])))}renderCellValue(t){if(null==t)return"—";if("object"==typeof t&&t.type)switch(t.type){case"tag":return r("dropi-tag",{type:"secondary",state:t.typeTag,text:t.value});case"date":return r("div",{class:"date-label"},r("span",null,new Date(t.value).toLocaleDateString("es-CO")),!t.hideTime&&r("span",null,new Date(t.value).toLocaleTimeString("es-CO",{hour:"2-digit",minute:"2-digit"})));case"country":return r("div",{class:"flag-container"},t.flag&&r("dropi-country-flags",{width:"24",height:"24",country:t.flag,style:{display:"inline-flex"}}),r("span",null,t.value));case"textIcon":return r("div",{class:"text-icon-label"},r("dropi-icon",{name:t.icon,iconWidth:"24px",iconHeight:"24px",color:t.iconColor||"Gray-Gray-500"}),t.value&&r("span",null,t.value));case"status":return r("div",{class:"status-label"},r("div",{class:"status-dot"},r("div",{class:"dot dot-"+(t.status||"").toLowerCase()}),r("span",{class:"status-text"},t.status)),t.value&&r("span",{class:"status-description"},t.value));case"image":return r("div",{class:"image-label"},r("div",{class:"img-container"},r("img",{src:t.imageUrl,alt:t.value})),r("span",null,t.value));case"textWrap":return r("div",{class:"text-wrap-label",style:{maxWidth:t.maxWidth||"220px"}},t.value);case"textCopy":case"tokenAction":return r("div",{class:"text-icon-label",style:{display:"flex",alignItems:"center"}},r("div",{style:{display:"flex",alignItems:"center"}},r("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},t.value)),r("div",{style:{display:"flex",justifyContent:"flex-start",paddingLeft:"0.5rem"}},r("dropi-icon",{name:t.revealed?"Clon":"Eye",iconWidth:"18px",iconHeight:"18px",color:"Gray-Gray-500",style:{cursor:"pointer",flexShrink:"0"},onClick:e=>{e.stopPropagation();const i=t.revealed?"copy":"reveal";this.dropiAction.emit({row:t.row,action:{id:i,value:t.value}}),this.dropiActionClick.emit({row:t.row,action:{id:i,value:t.value}})}})));default:return r("span",{class:"table-labels"},(t.value??"—")+"")}return r("span",{class:"table-labels"},t+"")}render(){if(void 0===this.parsedRows)return null;const t=this.pagedRows,e=t.length>0&&this.selectedKeys.size===t.length,i=this.parsedRowActions.length>0,a=this.visibleColumns;return r("div",{class:"table-container"},(this.showSearch||this.showColumnSelector||this.tableTitle)&&r("div",{class:"search-container"},this.tableTitle&&r("div",{class:"table-title Body-L-Bold"},this.tableTitle),r("div",{class:"search-actions"+(this.showSearch?"":" only-filter")},this.showSearch&&r("dropi-input",{placeholder:"Buscar",value:this.searchTerm,onDropiInput:t=>{this.searchTerm=t.detail,this.dropiSearch.emit(t.detail),this.dropiSearchChangeAngular.emit(t.detail)}}),this.showColumnSelector&&r("div",{class:"table-tools"},r("div",{class:"column-selector-container"},r("button",{class:"column-selector-btn",onClick:()=>this.showColumnMenu=!this.showColumnMenu},r("dropi-icon",{name:"list-table",iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"})),this.showColumnMenu&&r("div",{class:"column-selector-menu"},this.parsedColumns.map((t=>r("div",{class:"column-selector-option",onClick:()=>{const e=new Set(this.hiddenColumns);e.has(t.key)?e.delete(t.key):e.add(t.key),this.hiddenColumns=e}},r("dropi-checkbox",{checked:!this.hiddenColumns.has(t.key)}),r("span",null,t.label)))),r("div",{class:"column-selector-footer"},r("div",{class:"column-selector-all",onClick:()=>{this.hiddenColumns=0===this.hiddenColumns.size?new Set(this.parsedColumns.map((t=>t.key))):new Set}},r("dropi-checkbox",{checked:0===this.hiddenColumns.size}),r("span",null,"Mostrar / Ocultar todo")))))))),r("div",{class:"table-wrapper"+(i?" has-sticky-actions":"")},r("table",{class:"custom-table"+(this.showCheckbox?" has-checkbox":"")},r("thead",null,r("tr",null,this.showCheckbox&&r("th",{class:"checkbox-header"},r("dropi-checkbox",{checked:e,onDropiChange:t=>this.toggleAll(t.detail)})),a.map((t=>r("th",{class:{sortable:!!t.sortable,"low-opacity":!!t.disabledColumn,"highlight-column":!!t.highlightColumn},style:{textAlign:t.align||"center",minWidth:t.minWidth,maxWidth:t.maxWidth},onClick:()=>this.handleSort(t)},r("div",{class:"headers-container"+("left"===t.align?" align-left":"right"===t.align?" align-right":"")},r("div",{class:"headers"+("left"===t.align?" align-left":"right"===t.align?" align-right":"")},r("span",null,t.label),t.sortable&&r("div",{class:"order-icons"},r("dropi-icon",{name:"Caret-up",iconWidth:"12px",iconHeight:"12px",color:this.sortAsc?"Gray-Gray-500":"Gray-Gray-200"}),r("dropi-icon",{name:"Caret-down",iconWidth:"12px",iconHeight:"12px",color:this.sortAsc?"Gray-Gray-200":"Gray-Gray-500"}))))))),i&&r("th",{class:"actions-header actions"},"Acciones"))),r("tbody",null,this.loading?Array.from({length:5}).map((()=>r("tr",{class:"table-row"},this.showCheckbox&&r("td",null,r("div",{class:"skeleton skeleton--sm"})),a.map((()=>r("td",null,r("div",{class:"skeleton"})))),i&&r("td",null)))):0===t.length?r("tr",null,r("td",{colSpan:a.length+(this.showCheckbox?1:0)+(i?1:0)},r("div",{class:"empty-table"},r("div",{class:"empty-message-container"},this.emptyMessage)))):t.map(((t,e)=>r("tr",{class:"table-row",onClick:()=>this.dropiRowClick.emit({row:t,index:e})},this.showCheckbox&&r("td",{onClick:t=>t.stopPropagation()},r("dropi-checkbox",{checked:this.selectedKeys.has(e),onDropiChange:()=>this.toggleRow(e)})),a.map((e=>r("td",{class:{"low-opacity":!!e.disabledColumn,"highlight-column":!!e.highlightColumn},style:{minWidth:e.minWidth,maxWidth:e.maxWidth,overflow:e.maxWidth?"hidden":void 0}},r("div",{class:"cell-content",style:{textAlign:e.align||"center"}},this.renderCellValue(t[e.key]))))),i&&r("td",{class:"action-button actions",onClick:t=>t.stopPropagation()},this.parsedRowActions.length>2?r("div",{style:{display:"flex",justifyContent:"center",width:"100%"}},r("dropi-icon",{class:"action-icon",name:"Menu-dots-vertical",iconWidth:"24px",iconHeight:"24px",color:"Gray-Gray-500",onClick:()=>this.openActionRow=this.openActionRow===e?-1:e}),this.openActionRow===e&&r("div",{class:"actions-menu"},this.parsedRowActions.map((e=>r("div",{class:"action-item",onClick:()=>{this.openActionRow=-1,this.dropiAction.emit({row:t,action:e}),this.dropiActionClick.emit({row:t,action:e})}},r("dropi-icon",{name:e.icon,iconWidth:"20px",iconHeight:"20px",color:e.iconColor||"Gray-Gray-500"}),e.label))))):r("div",{class:"short-actions"},this.parsedRowActions.map((e=>r("dropi-icon",{class:"action-icon",name:e.icon,iconWidth:"24px",iconHeight:"24px",color:e.iconColor||"Gray-Gray-500",onClick:()=>{this.dropiAction.emit({row:t,action:e}),this.dropiActionClick.emit({row:t,action:e})}}))))))))))),this.showPaginator&&r("div",{class:"pagination"},r("div",{class:"page-size-selector"},r("label",null,"Mostrar"),r("select",{onChange:t=>{this.pageSize=Number(t.target.value),this.currentPage=1,this.dropiPageSizeChange.emit(this.pageSize),this.dropiSizeChangeAngular.emit(this.pageSize)}},this.parsedPageSizes.map((t=>r("option",{value:t,selected:this.pageSize===t},t))))),r("dropi-paginator",{totalPages:this.totalPages,currentPage:this.currentPage,onDropiPageChange:t=>{this.currentPage=t.detail,this.dropiPageChange.emit(t.detail),this.dropiPageChangeAngular.emit(t.detail)}})))}static get watchers(){return{columns:[{columnsChanged:0}],rows:[{rowsChanged:0}],pageSizes:[{pageSizesChanged:0}],rowActions:[{rowActionsChanged:0}],headers:[{headersChanged:0}],data:[{dataChanged:0}]}}static get style(){return":host{display:block;width:100%;min-width:0}*,*::before,*::after{box-sizing:border-box}.table-container{width:100%;min-width:0;border-radius:var(--Border-3);padding:0 var(--Size-4) var(--Size-4) var(--Size-4);background-color:var(--Neutral-White)}.search-container{margin-block:var(--Size-5);display:flex;flex-direction:column;gap:var(--Size-4)}.table-title{padding-block:var(--Size-2);font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--Gray-Gray-700);margin:0}.search-actions{display:flex;align-items:flex-end;gap:var(--Size-3);width:100%}.search-actions dropi-input{flex:1}.search-actions.only-filter{justify-content:flex-end}.table-tools{display:flex;justify-content:flex-end}.column-selector-container{position:relative}.column-selector-btn{min-width:40px;width:40px;height:40px;padding:0;border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);background:var(--Neutral-White);cursor:pointer;display:flex;align-items:center;justify-content:center}.column-selector-btn:hover{background:var(--Gray-Gray-50)}.column-selector-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(320px, 88vw);border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);background:var(--Neutral-White);box-shadow:var(--Shadow-medium);z-index:20;padding:var(--Size-1)}.column-selector-footer{border-top:1px solid var(--Gray-Gray-100);margin-top:var(--Size-1);padding:var(--Size-2) var(--Size-4);display:flex;align-items:center}.column-selector-all{display:inline-flex;align-items:center;gap:var(--Size-2);color:var(--Gray-Gray-700);font-size:var(--font-size-s);cursor:pointer;user-select:none}.column-selector-option{display:flex;align-items:center;gap:var(--Size-2);padding:var(--Size-2) var(--Size-3);font-size:var(--font-size-s);color:var(--Gray-Gray-700);cursor:pointer;border-radius:var(--Border-1)}.column-selector-option:hover{background:var(--Gray-Gray-50)}.table-wrapper{overflow-x:auto;width:100%;position:relative}.table-wrapper.has-sticky-actions{width:100%}.table-wrapper::-webkit-scrollbar{height:6px}.table-wrapper::-webkit-scrollbar-track{background:transparent}.table-wrapper::-webkit-scrollbar-thumb{background:var(--Gray-Gray-200, #c3c9d9);border-radius:3px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--Gray-Gray-400, #858ea6)}.custom-table{width:100%;border-collapse:collapse}.custom-table th,.custom-table td{position:relative;padding:var(--Size-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--Gray-Gray-700)}.custom-table th::after,.custom-table td::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--Gray-Gray-100)}.custom-table th{height:55px;user-select:none}.custom-table th.sortable{cursor:pointer}.custom-table td{height:80px;min-width:100px;font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.headers-container{display:flex;flex-direction:column;align-items:center;gap:var(--Size-1)}.headers-container.align-left{align-items:flex-start}.headers-container.align-right{align-items:flex-end}.headers{display:flex;flex-wrap:nowrap;justify-content:space-around;align-items:center;gap:4px}.headers span{font-weight:var(--font-weight-bold);color:var(--Gray-Gray-600);font-size:var(--font-size-xs);text-align:center}.headers.align-left span{text-align:left}.headers.align-right span{text-align:right}.order-icons{display:flex;flex-direction:column}.order-icons dropi-icon{height:6px;display:flex}.checkbox-header{width:fit-content;min-width:fit-content;max-width:fit-content;text-align:center;padding:var(--Size-3) !important}.custom-table.has-checkbox td:first-child{width:fit-content;min-width:fit-content;max-width:fit-content;text-align:center;padding:8px !important}.table-row:hover{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.table-row:hover td:last-child{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.table-row.sub-row td:first-child{padding-left:2rem !important}.cell-content{display:inline-block;width:100%;text-align:left}td.actions,th.actions{position:sticky;right:0;z-index:2;background-color:var(--Neutral-White);width:120px;min-width:120px;max-width:120px;text-align:center}td.actions{vertical-align:middle}td.actions>div{display:flex !important;justify-content:center !important;align-items:center !important;width:100%;height:100%}.table-row:hover td.actions{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.actions-header{width:100%;text-align:center;user-select:none}.short-actions{display:flex;gap:var(--Size-2);align-items:center;justify-content:center}.action-icon{cursor:pointer}.action-button{position:relative}.actions-menu{position:absolute;top:0;right:80px;padding:var(--Size-2);border-radius:var(--Border-2);background-color:var(--Neutral-White);box-shadow:var(--Shadow-medium);z-index:10;animation:fadeIn 0.3s ease-in-out forwards}.action-item{padding:var(--Size-2);font-size:var(--font-size-xs);color:var(--Gray-Gray-600);height:45px;width:190px;display:flex;gap:var(--Size-4);align-items:center;justify-content:left;cursor:pointer;border-radius:var(--Border-1)}.action-item:hover{background-color:var(--Gray-Gray-50)}.table-labels{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);white-space:nowrap}.table-labels.multiline{white-space:pre;line-height:1.6}.text-wrap-label{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);white-space:normal;word-break:break-word;overflow-wrap:break-word;line-height:1.5}.date-label{display:inline-flex;flex-direction:column}.date-label span{font-weight:var(--font-weight-regular);color:var(--Gray-Gray-600);white-space:nowrap;font-size:var(--font-size-s)}.flag-container{display:inline-flex;align-items:center;gap:var(--Size-3)}.flag-container span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.text-icon-label{display:inline-flex;flex-wrap:nowrap;gap:var(--Size-2);align-items:center}.text-icon-label span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.image-label{display:inline-flex;flex-direction:column;justify-content:center}.img-container{display:flex;width:24px;padding-bottom:var(--Size-1);align-items:center}.img-container img{border-radius:60px;height:24px;width:24px;object-fit:cover}.container-cell{display:inline-flex;flex-direction:column}.status-label{display:inline-flex;flex-direction:column;gap:var(--Size-1)}.status-dot{display:flex;gap:var(--Size-2);align-items:center}.status-text{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-700)}.status-description{font-weight:var(--font-weight-regular);font-size:var(--font-size-s);color:var(--Gray-Gray-600)}.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-low{background-color:var(--Success-Success-500)}.dot-medium{background-color:var(--Warning-Warning-500)}.dot-high{background-color:var(--Error-Error-500)}.low-opacity{opacity:0.5}.highlight-column{background:var(--Primary-Primary-50)}.text-link-label{display:flex;flex-wrap:nowrap;white-space:nowrap;gap:var(--Size-1)}.text-link-label span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.text-link-label a{color:var(--Info-Info-500);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.empty-table{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:400px}.empty-message-container{display:flex;width:420px;padding:var(--Size-4);flex-direction:column;align-items:center;gap:var(--Size-4);text-align:center;color:var(--Gray-Gray-500);font-size:var(--font-size-s)}.pagination{margin-top:var(--Size-4);display:flex;justify-content:space-between;align-items:center}.page-size-selector{display:flex;gap:5px;align-items:baseline}.page-size-selector label{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-700)}.page-size-selector select{width:fit-content;height:29px;border-radius:var(--Border-2);padding:var(--Size-1);border:1px solid var(--Gray-Gray-200);color:var(--Gray-Gray-500);background:var(--Neutral-White);font-size:var(--font-size-xs);cursor:pointer}.total-results{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-600)}.skeleton{height:14px;background:linear-gradient(90deg, var(--Gray-Gray-100) 25%, var(--Gray-Gray-50) 50%, var(--Gray-Gray-100) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--Border-1)}.skeleton--sm{width:20px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes fadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.search-actions{flex-direction:column;align-items:stretch}.column-selector-menu{left:0;right:0;width:100%;max-height:45vh;overflow-y:auto}.pagination{flex-direction:column;align-items:center;gap:var(--Size-3)}td.actions,th.actions{width:60px;min-width:60px}.table-wrapper.has-sticky-actions{width:calc(100% - 60px)}}"}},[513,"dropi-table",{columns:[1],rows:[1],showCheckbox:[4,"show-checkbox"],loading:[4],emptyMessage:[1,"empty-message"],tableTitle:[1,"table-title"],showSearch:[4,"show-search"],showColumnSelector:[4,"show-column-selector"],showPaginator:[4,"show-paginator"],pageSizes:[1,"page-sizes"],currentPage:[1026,"current-page"],totalPages:[2,"total-pages"],rowActions:[1,"row-actions"],headers:[1],data:[1],selectedRowIds:[16],childData:[1,"child-data"],visibleRowsChildrens:[1,"visible-rows-childrens"],dropiTableConfiguration:[8,"dropi-table-configuration"],dropiTableBackendParams:[8,"dropi-table-backend-params"],isCursorPagination:[4,"is-cursor-pagination"],parsedColumns:[32],parsedRows:[32],parsedPageSizes:[32],parsedRowActions:[32],sortKey:[32],sortDir:[32],sortAsc:[32],selectedKeys:[32],searchTerm:[32],pageSize:[32],showColumnMenu:[32],hiddenColumns:[32],openActionRow:[32]},void 0,{columns:[{columnsChanged:0}],rows:[{rowsChanged:0}],pageSizes:[{pageSizesChanged:0}],rowActions:[{rowActionsChanged:0}],headers:[{headersChanged:0}],data:[{dataChanged:0}]}]);function p(){"undefined"!=typeof customElements&&["dropi-table","dropi-checkbox","dropi-country-flags","dropi-icon","dropi-input","dropi-paginator","dropi-tag"].forEach((e=>{switch(e){case"dropi-table":customElements.get(t(e))||customElements.define(t(e),h);break;case"dropi-checkbox":customElements.get(t(e))||o();break;case"dropi-country-flags":customElements.get(t(e))||s();break;case"dropi-icon":customElements.get(t(e))||n();break;case"dropi-input":customElements.get(t(e))||l();break;case"dropi-paginator":customElements.get(t(e))||c();break;case"dropi-tag":customElements.get(t(e))||d()}}))}p();const g=h,u=p;export{g as DropiTable,u as defineCustomElement}
1
+ import{t,p as e,H as i,c as a,h as r}from"./index.js";import{d as o}from"./p-Qrac2GRu.js";import{d as s}from"./p-BSB5Ar-y.js";import{d as n}from"./p-B9rJd-Rf.js";import{d as l}from"./p-CCZ6rIo5.js";import{d as c}from"./p-RQjw5hdz.js";import{d}from"./p-B9-h_ikq.js";const h=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.dropiSort=a(this,"dropiSort"),this.dropiSelection=a(this,"dropiSelection"),this.dropiRowClick=a(this,"dropiRowClick"),this.dropiSearch=a(this,"dropiSearch"),this.dropiPageChange=a(this,"dropiPageChange"),this.dropiPageSizeChange=a(this,"dropiPageSizeChange"),this.dropiAction=a(this,"dropiAction"),this.dropiRowsSelected=a(this,"dropiRowsSelected"),this.dropiActionClick=a(this,"dropiActionClick"),this.dropiPageChangeAngular=a(this,"dropiPageChangeAngular"),this.dropiSizeChangeAngular=a(this,"dropiSizeChangeAngular"),this.dropiSortChangeAngular=a(this,"dropiSortChangeAngular"),this.dropiSearchChangeAngular=a(this,"dropiSearchChangeAngular"),this.expandChildren=a(this,"expandChildren")}columns=[];rows=[];showCheckbox=!1;loading=!1;emptyMessage="No hay datos disponibles";tableTitle="";showSearch=!1;showColumnSelector=!1;showPaginator=!1;pageSizes=[5,10,25,50];currentPage=1;totalPages=1;rowActions=[];headers=[];data=[];selectedRowIds=null;childData=[];visibleRowsChildrens=[];dropiTableConfiguration=null;dropiTableBackendParams=null;isCursorPagination=!1;parsedColumns=[];parsedRows=[];parsedPageSizes=[5,10,25,50];parsedRowActions=[];sortKey="";sortDir=null;sortAsc=!0;selectedKeys=new Set;searchTerm="";pageSize=5;showColumnMenu=!1;hiddenColumns=new Set;openActionRow=-1;dropiSort;dropiSelection;dropiRowClick;dropiSearch;dropiPageChange;dropiPageSizeChange;dropiAction;dropiRowsSelected;dropiActionClick;dropiPageChangeAngular;dropiSizeChangeAngular;dropiSortChangeAngular;dropiSearchChangeAngular;expandChildren;columnsChanged(t){this.parsedColumns="string"==typeof t?JSON.parse(t):t||[]}rowsChanged(t){this.parsedRows="string"==typeof t?JSON.parse(t):t||[],this.selectedKeys=new Set}pageSizesChanged(t){this.parsedPageSizes="string"==typeof t?JSON.parse(t):t||[5,10,25,50],this.pageSize=this.parsedPageSizes[0]??5}rowActionsChanged(t){this.parsedRowActions="string"==typeof t?JSON.parse(t):t||[]}headersChanged(t){const e="string"==typeof t?JSON.parse(t):t||[];e.length>0&&(this.parsedColumns=e)}dataChanged(t){const e="string"==typeof t?JSON.parse(t):t||[];e.length>0&&(this.parsedRows=e,this.selectedKeys=new Set)}componentWillLoad(){if(null==this.data&&null==this.rows&&null==this.headers&&null==this.columns)return;const t=(Array.isArray(this.headers)?this.headers:[]).length?this.headers:this.columns,e=(Array.isArray(this.data)?this.data:[]).length?this.data:this.rows;this.columnsChanged(t),this.rowsChanged(e),this.pageSizesChanged(this.pageSizes),this.rowActionsChanged(this.rowActions)}get visibleColumns(){const t=this.hiddenColumns??new Set;return(this.parsedColumns??[]).filter((e=>!t.has(e.key)))}get filteredRows(){if(!this.searchTerm)return this.parsedRows;const t=this.searchTerm.toLowerCase();return this.parsedRows.filter((e=>Object.values(e).some((e=>((e??"")+"").toLowerCase().includes(t)))))}get sortedRows(){const t=this.filteredRows;if(!this.sortKey||!this.sortDir)return t;const e=this.sortKey,i="asc"===this.sortDir?1:-1;return[...t].sort(((t,a)=>{const r=t[e]??"",o=a[e]??"";return r<o?-i:r>o?i:0}))}get pagedRows(){if(!this.showPaginator)return this.sortedRows;const t=(this.currentPage-1)*this.pageSize;return this.sortedRows.slice(t,t+this.pageSize)}handleSort(t){t.sortable&&(this.sortKey===t.key?(this.sortDir="asc"===this.sortDir?"desc":"desc"===this.sortDir?null:"asc",this.sortAsc="desc"!==this.sortDir,null===this.sortDir&&(this.sortKey="")):(this.sortKey=t.key,this.sortDir="asc",this.sortAsc=!0),this.dropiSort.emit({key:this.sortKey,dir:this.sortDir}),this.dropiSortChangeAngular.emit({key:this.sortKey,dir:this.sortDir}))}toggleRow(t){const e=new Set(this.selectedKeys);e.has(t)?e.delete(t):e.add(t),this.selectedKeys=e;const i=Array.from(e);this.dropiSelection.emit(i),this.dropiRowsSelected.emit(i.map((t=>this.pagedRows[t])))}toggleAll(t){this.selectedKeys=t?new Set(this.pagedRows.map(((t,e)=>e))):new Set;const e=Array.from(this.selectedKeys);this.dropiSelection.emit(e),this.dropiRowsSelected.emit(e.map((t=>this.pagedRows[t])))}renderCellValue(t){if(null==t)return"—";if("object"==typeof t&&t.type)switch(t.type){case"tag":return r("dropi-tag",{type:"secondary",state:t.typeTag,text:t.value});case"date":return r("div",{class:"date-label"},r("span",null,new Date(t.value).toLocaleDateString("es-CO")),!t.hideTime&&r("span",null,new Date(t.value).toLocaleTimeString("es-CO",{hour:"2-digit",minute:"2-digit"})));case"country":return r("div",{class:"flag-container"},t.flag&&r("dropi-country-flags",{width:"24",height:"24",country:t.flag,style:{display:"inline-flex"}}),r("span",null,t.value));case"textIcon":return r("div",{class:"text-icon-label"},r("dropi-icon",{name:t.icon,iconWidth:"24px",iconHeight:"24px",color:t.iconColor||"Gray-Gray-500"}),t.value&&r("span",null,t.value));case"status":return r("div",{class:"status-label"},r("div",{class:"status-dot"},r("div",{class:"dot dot-"+(t.status||"").toLowerCase()}),r("span",{class:"status-text"},t.status)),t.value&&r("span",{class:"status-description"},t.value));case"image":return r("div",{class:"image-label"},r("div",{class:"img-container"},r("img",{src:t.imageUrl,alt:t.value})),r("span",null,t.value));case"textWrap":return r("div",{class:"text-wrap-label",style:{maxWidth:t.maxWidth||"220px"}},t.value);case"textCopy":case"tokenAction":return r("div",{class:"text-icon-label",style:{display:"flex",alignItems:"center"}},r("div",{style:{display:"flex",alignItems:"center"}},r("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},t.value)),r("div",{style:{display:"flex",justifyContent:"flex-start",paddingLeft:"0.5rem"}},r("dropi-icon",{name:t.revealed?"Clon":"Eye",iconWidth:"18px",iconHeight:"18px",color:"Gray-Gray-500",style:{cursor:"pointer",flexShrink:"0"},onClick:e=>{e.stopPropagation();const i=t.revealed?"copy":"reveal";this.dropiAction.emit({row:t.row,action:{id:i,value:t.value}}),this.dropiActionClick.emit({row:t.row,action:{id:i,value:t.value}})}})));default:return r("span",{class:"table-labels"},(t.value??"—")+"")}return r("span",{class:"table-labels"},t+"")}render(){if(void 0===this.parsedRows)return null;const t=this.pagedRows,e=t.length>0&&this.selectedKeys.size===t.length,i=this.parsedRowActions.length>0,a=this.visibleColumns;return r("div",{class:"table-container"},(this.showSearch||this.showColumnSelector||this.tableTitle)&&r("div",{class:"search-container"},this.tableTitle&&r("div",{class:"table-title Body-L-Bold"},this.tableTitle),r("div",{class:"search-actions"+(this.showSearch?"":" only-filter")},this.showSearch&&r("dropi-input",{placeholder:"Buscar",value:this.searchTerm,onDropiInput:t=>{this.searchTerm=t.detail,this.dropiSearch.emit(t.detail),this.dropiSearchChangeAngular.emit(t.detail)}}),this.showColumnSelector&&r("div",{class:"table-tools"},r("div",{class:"column-selector-container"},r("button",{class:"column-selector-btn",onClick:()=>this.showColumnMenu=!this.showColumnMenu},r("dropi-icon",{name:"list-table",iconWidth:"20px",iconHeight:"20px",color:"Gray-Gray-500"})),this.showColumnMenu&&r("div",{class:"column-selector-menu"},this.parsedColumns.map((t=>r("div",{class:"column-selector-option",onClick:()=>{const e=new Set(this.hiddenColumns);e.has(t.key)?e.delete(t.key):e.add(t.key),this.hiddenColumns=e}},r("dropi-checkbox",{checked:!this.hiddenColumns.has(t.key)}),r("span",null,t.label)))),r("div",{class:"column-selector-footer"},r("div",{class:"column-selector-all",onClick:()=>{this.hiddenColumns=0===this.hiddenColumns.size?new Set(this.parsedColumns.map((t=>t.key))):new Set}},r("dropi-checkbox",{checked:0===this.hiddenColumns.size}),r("span",null,"Mostrar / Ocultar todo")))))))),r("div",{class:"table-wrapper"+(i?" has-sticky-actions":"")},r("table",{class:"custom-table"+(this.showCheckbox?" has-checkbox":"")},r("thead",null,r("tr",null,this.showCheckbox&&r("th",{class:"checkbox-header"},r("dropi-checkbox",{checked:e,onDropiChange:t=>this.toggleAll(t.detail)})),a.map((t=>r("th",{class:{sortable:!!t.sortable,"low-opacity":!!t.disabledColumn,"highlight-column":!!t.highlightColumn},style:{textAlign:t.align||"center",minWidth:t.minWidth,maxWidth:t.maxWidth},onClick:()=>this.handleSort(t)},r("div",{class:"headers-container"+("left"===t.align?" align-left":"right"===t.align?" align-right":"")},r("div",{class:"headers"+("left"===t.align?" align-left":"right"===t.align?" align-right":"")},r("span",null,t.label),t.sortable&&r("div",{class:"order-icons"},r("dropi-icon",{name:"Caret-up",iconWidth:"12px",iconHeight:"12px",color:this.sortAsc?"Gray-Gray-500":"Gray-Gray-200"}),r("dropi-icon",{name:"Caret-down",iconWidth:"12px",iconHeight:"12px",color:this.sortAsc?"Gray-Gray-200":"Gray-Gray-500"}))))))),i&&r("th",{class:"actions-header actions"},"Acciones"))),r("tbody",null,this.loading?Array.from({length:5}).map((()=>r("tr",{class:"table-row"},this.showCheckbox&&r("td",null,r("div",{class:"skeleton skeleton--sm"})),a.map((()=>r("td",null,r("div",{class:"skeleton"})))),i&&r("td",null)))):0===t.length?r("tr",null,r("td",{colSpan:a.length+(this.showCheckbox?1:0)+(i?1:0)},r("div",{class:"empty-table"},r("div",{class:"empty-message-container"},this.emptyMessage)))):t.map(((t,e)=>r("tr",{class:"table-row",onClick:()=>this.dropiRowClick.emit({row:t,index:e})},this.showCheckbox&&r("td",{onClick:t=>t.stopPropagation()},r("dropi-checkbox",{checked:this.selectedKeys.has(e),onDropiChange:()=>this.toggleRow(e)})),a.map((e=>r("td",{class:{"low-opacity":!!e.disabledColumn,"highlight-column":!!e.highlightColumn},style:{minWidth:e.minWidth,maxWidth:e.maxWidth,overflow:e.maxWidth?"hidden":void 0}},r("div",{class:"cell-content",style:{textAlign:e.align||"center"}},this.renderCellValue(t[e.key]))))),i&&r("td",{class:"action-button actions",onClick:t=>t.stopPropagation()},this.parsedRowActions.length>2?r("div",{style:{display:"flex",justifyContent:"center",width:"100%"}},r("dropi-icon",{class:"action-icon",name:"Menu-dots-vertical",iconWidth:"24px",iconHeight:"24px",color:"Gray-Gray-500",onClick:()=>this.openActionRow=this.openActionRow===e?-1:e}),this.openActionRow===e&&r("div",{class:"actions-menu"},this.parsedRowActions.map((e=>r("div",{class:"action-item",onClick:()=>{this.openActionRow=-1,this.dropiAction.emit({row:t,action:e}),this.dropiActionClick.emit({row:t,action:e})}},r("dropi-icon",{name:e.icon,iconWidth:"20px",iconHeight:"20px",color:e.iconColor||"Gray-Gray-500"}),e.label))))):r("div",{class:"short-actions"},this.parsedRowActions.map((e=>r("dropi-icon",{class:"action-icon",name:e.icon,iconWidth:"24px",iconHeight:"24px",color:e.iconColor||"Gray-Gray-500",onClick:()=>{this.dropiAction.emit({row:t,action:e}),this.dropiActionClick.emit({row:t,action:e})}}))))))))))),this.showPaginator&&r("div",{class:"pagination"},r("div",{class:"page-size-selector"},r("label",null,"Mostrar"),r("select",{onChange:t=>{this.pageSize=Number(t.target.value),this.currentPage=1,this.dropiPageSizeChange.emit(this.pageSize),this.dropiSizeChangeAngular.emit(this.pageSize)}},this.parsedPageSizes.map((t=>r("option",{value:t,selected:this.pageSize===t},t))))),r("dropi-paginator",{totalPages:this.totalPages,currentPage:this.currentPage,onDropiPageChange:t=>{this.currentPage=t.detail,this.dropiPageChange.emit(t.detail),this.dropiPageChangeAngular.emit(t.detail)}})))}static get watchers(){return{columns:[{columnsChanged:0}],rows:[{rowsChanged:0}],pageSizes:[{pageSizesChanged:0}],rowActions:[{rowActionsChanged:0}],headers:[{headersChanged:0}],data:[{dataChanged:0}]}}static get style(){return":host{display:block;width:100%;min-width:0}*,*::before,*::after{box-sizing:border-box}.table-container{width:100%;min-width:0;border-radius:var(--Border-3);padding:0 var(--Size-4) var(--Size-4) var(--Size-4);background-color:var(--Neutral-White)}.search-container{margin-block:var(--Size-5);display:flex;flex-direction:column;gap:var(--Size-4)}.table-title{padding-block:var(--Size-2);font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--Gray-Gray-700);margin:0}.search-actions{display:flex;align-items:flex-end;gap:var(--Size-3);width:100%}.search-actions dropi-input{flex:1}.search-actions.only-filter{justify-content:flex-end}.table-tools{display:flex;justify-content:flex-end}.column-selector-container{position:relative}.column-selector-btn{min-width:40px;width:40px;height:40px;padding:0;border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);background:var(--Neutral-White);cursor:pointer;display:flex;align-items:center;justify-content:center}.column-selector-btn:hover{background:var(--Gray-Gray-50)}.column-selector-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(320px, 88vw);border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);background:var(--Neutral-White);box-shadow:var(--Shadow-medium);z-index:20;padding:var(--Size-1)}.column-selector-footer{border-top:1px solid var(--Gray-Gray-100);margin-top:var(--Size-1);padding:var(--Size-2) var(--Size-4);display:flex;align-items:center}.column-selector-all{display:inline-flex;align-items:center;gap:var(--Size-2);color:var(--Gray-Gray-700);font-size:var(--font-size-s);cursor:pointer;user-select:none}.column-selector-option{display:flex;align-items:center;gap:var(--Size-2);padding:var(--Size-2) var(--Size-3);font-size:var(--font-size-s);color:var(--Gray-Gray-700);cursor:pointer;border-radius:var(--Border-1)}.column-selector-option:hover{background:var(--Gray-Gray-50)}.table-wrapper{overflow-x:auto;width:100%;position:relative}.table-wrapper.has-sticky-actions{width:100%}.table-wrapper::-webkit-scrollbar{height:6px}.table-wrapper::-webkit-scrollbar-track{background:transparent}.table-wrapper::-webkit-scrollbar-thumb{background:var(--Gray-Gray-200, #c3c9d9);border-radius:3px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:var(--Gray-Gray-400, #858ea6)}.custom-table{width:100%;border-collapse:collapse}.custom-table th,.custom-table td{position:relative;padding:var(--Size-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--Gray-Gray-700)}.custom-table th::after,.custom-table td::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--Gray-Gray-100)}.custom-table th{height:55px;user-select:none}.custom-table th.sortable{cursor:pointer}.custom-table td{height:80px;min-width:100px;font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.headers-container{display:flex;flex-direction:column;align-items:center;gap:var(--Size-1)}.headers-container.align-left{align-items:flex-start}.headers-container.align-right{align-items:flex-end}.headers{display:flex;flex-wrap:nowrap;justify-content:space-around;align-items:center;gap:4px}.headers span{font-weight:var(--font-weight-bold);color:var(--Gray-Gray-600);font-size:var(--font-size-xs);text-align:center}.headers.align-left span{text-align:left}.headers.align-right span{text-align:right}.order-icons{display:flex;flex-direction:column}.order-icons dropi-icon{height:6px;display:flex}.checkbox-header{width:fit-content;min-width:fit-content;max-width:fit-content;text-align:center;padding:var(--Size-3) !important}.custom-table.has-checkbox td:first-child{width:fit-content;min-width:fit-content;max-width:fit-content;text-align:center;padding:8px !important}.table-row:hover{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.table-row:hover td:last-child{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.table-row.sub-row td:first-child{padding-left:2rem !important}.cell-content{display:inline-block;width:100%;text-align:left}td.actions,th.actions{position:sticky;right:0;z-index:2;background-color:var(--Neutral-White);width:120px;min-width:120px;max-width:120px;text-align:center}td.actions{vertical-align:middle}td.actions>div{display:flex !important;justify-content:center !important;align-items:center !important;width:100%;height:100%}.table-row:hover td.actions{background-color:var(--Gray-Gray-50);transition:background-color 0.3s ease}.actions-header{width:100%;text-align:center;user-select:none}.short-actions{display:flex;gap:var(--Size-2);align-items:center;justify-content:center}.action-icon{cursor:pointer}.action-button{position:relative}.actions-menu{position:absolute;top:0;right:80px;padding:var(--Size-2);border-radius:var(--Border-2);background-color:var(--Neutral-White);box-shadow:var(--Shadow-medium);z-index:10;animation:fadeIn 0.3s ease-in-out forwards}.action-item{padding:var(--Size-2);font-size:var(--font-size-xs);color:var(--Gray-Gray-600);height:45px;width:190px;display:flex;gap:var(--Size-4);align-items:center;justify-content:left;cursor:pointer;border-radius:var(--Border-1)}.action-item:hover{background-color:var(--Gray-Gray-50)}.table-labels{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);white-space:nowrap}.table-labels.multiline{white-space:pre;line-height:1.6}.text-wrap-label{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);white-space:normal;word-break:break-word;overflow-wrap:break-word;line-height:1.5}.date-label{display:inline-flex;flex-direction:column}.date-label span{font-weight:var(--font-weight-regular);color:var(--Gray-Gray-600);white-space:nowrap;font-size:var(--font-size-s)}.flag-container{display:inline-flex;align-items:center;gap:var(--Size-3)}.flag-container span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.text-icon-label{display:inline-flex;flex-wrap:nowrap;gap:var(--Size-2);align-items:center}.text-icon-label span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.image-label{display:inline-flex;flex-direction:column;justify-content:center}.img-container{display:flex;width:24px;padding-bottom:var(--Size-1);align-items:center}.img-container img{border-radius:60px;height:24px;width:24px;object-fit:cover}.container-cell{display:inline-flex;flex-direction:column}.status-label{display:inline-flex;flex-direction:column;gap:var(--Size-1)}.status-dot{display:flex;gap:var(--Size-2);align-items:center}.status-text{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-700)}.status-description{font-weight:var(--font-weight-regular);font-size:var(--font-size-s);color:var(--Gray-Gray-600)}.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-low{background-color:var(--Success-Success-500)}.dot-medium{background-color:var(--Warning-Warning-500)}.dot-high{background-color:var(--Error-Error-500)}.low-opacity{opacity:0.5}.highlight-column{background:var(--Primary-Primary-50)}.text-link-label{display:flex;flex-wrap:nowrap;white-space:nowrap;gap:var(--Size-1)}.text-link-label span{color:var(--Gray-Gray-600);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.text-link-label a{color:var(--Info-Info-500);font-weight:var(--font-weight-regular);font-size:var(--font-size-s)}.empty-table{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:400px}.empty-message-container{display:flex;width:420px;padding:var(--Size-4);flex-direction:column;align-items:center;gap:var(--Size-4);text-align:center;color:var(--Gray-Gray-500);font-size:var(--font-size-s)}.pagination{margin-top:var(--Size-4);display:flex;justify-content:space-between;align-items:center}.page-size-selector{display:flex;gap:5px;align-items:baseline}.page-size-selector label{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-700)}.page-size-selector select{width:fit-content;height:29px;border-radius:var(--Border-2);padding:var(--Size-1);border:1px solid var(--Gray-Gray-200);color:var(--Gray-Gray-500);background:var(--Neutral-White);font-size:var(--font-size-xs);cursor:pointer}.total-results{font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);color:var(--Gray-Gray-600)}.skeleton{height:14px;background:linear-gradient(90deg, var(--Gray-Gray-100) 25%, var(--Gray-Gray-50) 50%, var(--Gray-Gray-100) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--Border-1)}.skeleton--sm{width:20px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes fadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.search-actions{flex-direction:column;align-items:stretch}.column-selector-menu{left:0;right:0;width:100%;max-height:45vh;overflow-y:auto}.pagination{flex-direction:column;align-items:center;gap:var(--Size-3)}td.actions,th.actions{width:60px;min-width:60px}.table-wrapper.has-sticky-actions{width:calc(100% - 60px)}}"}},[513,"dropi-table",{columns:[1],rows:[1],showCheckbox:[4,"show-checkbox"],loading:[4],emptyMessage:[1,"empty-message"],tableTitle:[1,"table-title"],showSearch:[4,"show-search"],showColumnSelector:[4,"show-column-selector"],showPaginator:[4,"show-paginator"],pageSizes:[1,"page-sizes"],currentPage:[1026,"current-page"],totalPages:[2,"total-pages"],rowActions:[1,"row-actions"],headers:[1],data:[1],selectedRowIds:[16],childData:[1,"child-data"],visibleRowsChildrens:[1,"visible-rows-childrens"],dropiTableConfiguration:[8,"dropi-table-configuration"],dropiTableBackendParams:[8,"dropi-table-backend-params"],isCursorPagination:[4,"is-cursor-pagination"],parsedColumns:[32],parsedRows:[32],parsedPageSizes:[32],parsedRowActions:[32],sortKey:[32],sortDir:[32],sortAsc:[32],selectedKeys:[32],searchTerm:[32],pageSize:[32],showColumnMenu:[32],hiddenColumns:[32],openActionRow:[32]},void 0,{columns:[{columnsChanged:0}],rows:[{rowsChanged:0}],pageSizes:[{pageSizesChanged:0}],rowActions:[{rowActionsChanged:0}],headers:[{headersChanged:0}],data:[{dataChanged:0}]}]);function p(){"undefined"!=typeof customElements&&["dropi-table","dropi-checkbox","dropi-country-flags","dropi-icon","dropi-input","dropi-paginator","dropi-tag"].forEach((e=>{switch(e){case"dropi-table":customElements.get(t(e))||customElements.define(t(e),h);break;case"dropi-checkbox":customElements.get(t(e))||o();break;case"dropi-country-flags":customElements.get(t(e))||s();break;case"dropi-icon":customElements.get(t(e))||n();break;case"dropi-input":customElements.get(t(e))||l();break;case"dropi-paginator":customElements.get(t(e))||c();break;case"dropi-tag":customElements.get(t(e))||d()}}))}p();const g=h,u=p;export{g as DropiTable,u as defineCustomElement}
@@ -1 +1 @@
1
- import{t as r,p as e,H as t,c as a,h as o}from"./index.js";import{d as i}from"./p-B9rJd-Rf.js";const s=e(class extends t{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow(),this.dropiInput=a(this,"dropiInput"),this.dropiChange=a(this,"dropiChange"),this.dropiFocus=a(this,"dropiFocus"),this.dropiBlur=a(this,"dropiBlur"),this.internals=this.attachInternals()}internals;id="";name="";label="";placeholder="";value="";maxLength;minLength=0;rows=4;resize="vertical";disabled=!1;required=!1;showObligatoryAsterisk=!1;textHelper="";hasError=!1;textAreaProperties=null;textAreaPropertiesChanged(r){r&&(void 0!==r.id&&(this.id=r.id),void 0!==r.label&&(this.label=r.label),void 0!==r.placeholder&&(this.placeholder=r.placeholder),void 0!==r.maxLength&&(this.maxLength=r.maxLength),void 0!==r.minLength&&(this.minLength=r.minLength),void 0!==r.textHelper&&(this.textHelper=r.textHelper),void 0!==r.rows&&(this.rows=r.rows),void 0!==r.resize&&(this.resize=r.resize))}touched=!1;dropiInput;dropiChange;dropiFocus;dropiBlur;valueChanged(r){this.internals.setFormValue(r)}componentWillLoad(){this.internals.setFormValue(this.value??""),this.textAreaProperties&&this.textAreaPropertiesChanged(this.textAreaProperties)}handleInput(r){const e=r.target.value;this.value=e,this.internals.setFormValue(e),this.dropiInput.emit(e)}handleBlur(){this.touched=!0,this.dropiChange.emit(this.value),this.dropiBlur.emit()}get resolvedId(){return this.id||this.label}get isInvalid(){return this.hasError&&this.touched}get charCount(){return this.value?.length??0}render(){const r=this.textHelper||this.isInvalid;return o("div",{key:"cd317dd0e813d6ce6ae659b56ddac00fa822e68e",class:"textarea-wrapper"},this.label&&o("label",{key:"220344751b55843a6d1ee3a8188b53e8d0fc5d34",htmlFor:this.resolvedId,style:{color:this.disabled?"var(--Gray-Gray-400)":"var(--Gray-Gray-600)"}},this.label,this.required&&this.showObligatoryAsterisk&&!this.disabled&&o("span",{key:"3ddb9f3adac61fa8990f81e16ae6334de8552849",class:"asterisk"}," *")),o("div",{key:"1a6d603bd7cfe7e6b37fd20c4dad6c7bc2bf0278",class:"textarea-container"},o("textarea",{key:"3eb838fece4e03cc68be9e01eeb1e02709a926f9",id:this.resolvedId,class:{"form-control":!0,"Body-M-Regular":!0,"form-control-valid":!this.isInvalid&&this.touched&&!!this.value,"form-control-invalid":this.isInvalid},rows:this.rows,placeholder:this.placeholder,maxLength:this.maxLength,minLength:this.minLength,disabled:this.disabled,required:this.required,style:{resize:this.resize},onInput:r=>this.handleInput(r),onFocus:()=>this.dropiFocus.emit(),onBlur:()=>this.handleBlur()},this.value),this.maxLength>0&&o("div",{key:"49dfd2cb7fe373769a945c405e58e7716e9489f2",class:"char-counter"},this.charCount,"/",this.maxLength)),r&&o("div",{key:"e1388e815c35baab42466029ae17914da28c9294",class:"form-control-helper"},this.isInvalid&&o("dropi-icon",{key:"39aebce7cca327e9c535ce918d053eb5f106f734",name:"Warning-circle",iconWidth:"12px",iconHeight:"12px",color:"Error-Error-500"}),o("span",{key:"ae255ca0db1e35e0069ef8b68fa901bced14ba8a",class:{"invalid-color":this.isInvalid},style:{color:this.disabled?"var(--Gray-Gray-400)":void 0}},this.textHelper)))}static get formAssociated(){return!0}static get watchers(){return{textAreaProperties:[{textAreaPropertiesChanged:0}],value:[{valueChanged:0}]}}static get style(){return":host{display:flex;flex-direction:column;width:100%}*,*::before,*::after{box-sizing:border-box}.textarea-wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:4px}.textarea-wrapper label{font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-600, #475066)}.asterisk{color:var(--Error-Error-500, #f46a6b)}.textarea-container{position:relative;display:flex;flex-direction:column}textarea.form-control{box-sizing:border-box;width:100%;flex:1;overflow:auto;padding:var(--Size-3, 12px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);font-size:var(--font-size-s, 12px);font-family:inherit;color:var(--Gray-Gray-700, #32394d);background:var(--Neutral-White, #ffffff);transition:border-color 0.3s ease-in-out;outline:none;appearance:none}textarea.form-control:focus{border-color:var(--Info-Info-500, #50a5f1)}textarea.form-control:focus::placeholder{color:var(--Gray-Gray-400, #858ea6)}textarea.form-control-valid{border-color:var(--Gray-Gray-400, #858ea6) !important;color:var(--Gray-Gray-600, #475066)}textarea.form-control-invalid{border-color:var(--Error-Error-500, #f46a6b) !important;color:var(--Gray-Gray-600, #475066)}textarea.form-control:disabled{border-color:var(--Gray-Gray-200, #c3c9d9) !important;color:var(--Gray-Gray-400, #858ea6);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed}.char-counter{position:absolute;bottom:10px;right:16px;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-500, #69738c);pointer-events:none}.form-control-helper{display:flex;gap:4px;align-items:center}.form-control-helper span{display:block;color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px)}.invalid-color{color:var(--Error-Error-500, #f46a6b) !important}"}},[577,"dropi-text-area",{id:[1025],name:[1],label:[1025],placeholder:[1025],value:[1025],maxLength:[1026,"max-length"],minLength:[1026,"min-length"],rows:[1026],resize:[1025],disabled:[516],required:[516],showObligatoryAsterisk:[4,"show-obligatory-asterisk"],textHelper:[1025,"text-helper"],hasError:[4,"has-error"],textAreaProperties:[16],touched:[32]},void 0,{textAreaProperties:[{textAreaPropertiesChanged:0}],value:[{valueChanged:0}]}]);function n(){"undefined"!=typeof customElements&&["dropi-text-area","dropi-icon"].forEach((e=>{switch(e){case"dropi-text-area":customElements.get(r(e))||customElements.define(r(e),s);break;case"dropi-icon":customElements.get(r(e))||i()}}))}n();const l=s,d=n;export{l as DropiTextArea,d as defineCustomElement}
1
+ import{t as r,p as e,H as t,c as o,h as a}from"./index.js";import{d as i}from"./p-B9rJd-Rf.js";const s=e(class extends t{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow(),this.dropiInput=o(this,"dropiInput"),this.dropiChange=o(this,"dropiChange"),this.dropiFocus=o(this,"dropiFocus"),this.dropiBlur=o(this,"dropiBlur"),this.internals=this.attachInternals()}internals;id="";name="";label="";placeholder="";value="";maxLength;minLength=0;rows=4;resize="vertical";disabled=!1;required=!1;showObligatoryAsterisk=!1;textHelper="";hasError=!1;textAreaProperties=null;textAreaPropertiesChanged(r){r&&(void 0!==r.id&&(this.id=r.id),void 0!==r.label&&(this.label=r.label),void 0!==r.placeholder&&(this.placeholder=r.placeholder),void 0!==r.maxLength&&(this.maxLength=r.maxLength),void 0!==r.minLength&&(this.minLength=r.minLength),void 0!==r.textHelper&&(this.textHelper=r.textHelper),void 0!==r.rows&&(this.rows=r.rows),void 0!==r.resize&&(this.resize=r.resize))}touched=!1;dropiInput;dropiChange;dropiFocus;dropiBlur;valueChanged(r){this.internals.setFormValue(r)}componentWillLoad(){this.internals.setFormValue(this.value??""),this.textAreaProperties&&this.textAreaPropertiesChanged(this.textAreaProperties)}handleInput(r){const e=r.target.value;this.value=e,this.internals.setFormValue(e),this.dropiInput.emit(e),this.dropiChange.emit(e)}handleBlur(){this.touched=!0,this.dropiBlur.emit()}get resolvedId(){return this.id||this.label}get isInvalid(){return this.hasError&&this.touched}get charCount(){return this.value?.length??0}render(){const r=this.textHelper||this.isInvalid;return a("div",{key:"8c25826a54d1f0bec06d8f70211d2bcd873d59a6",class:"textarea-wrapper"},this.label&&a("label",{key:"58a578753a1248b185d2763aedf50eaaa152c791",htmlFor:this.resolvedId,style:{color:this.disabled?"var(--Gray-Gray-400)":"var(--Gray-Gray-600)"}},this.label,this.required&&this.showObligatoryAsterisk&&!this.disabled&&a("span",{key:"cf31923103a7594f552df4ec86885f78d0c31779",class:"asterisk"}," *")),a("div",{key:"6ea60b6286fd4438389cfda0580379d8fe013adc",class:"textarea-container"},a("textarea",{key:"fc5e495d80bfd665e55480668b9fa7ed62651984",id:this.resolvedId,class:{"form-control":!0,"Body-M-Regular":!0,"form-control-valid":!this.isInvalid&&this.touched&&!!this.value,"form-control-invalid":this.isInvalid},rows:this.rows,placeholder:this.placeholder,maxLength:this.maxLength,minLength:this.minLength,disabled:this.disabled,required:this.required,style:{resize:this.resize},onInput:r=>this.handleInput(r),onFocus:()=>this.dropiFocus.emit(),onBlur:()=>this.handleBlur()},this.value),this.maxLength>0&&a("div",{key:"07c350ce7a2e56b466229450645e6faece3d284b",class:"char-counter"},this.charCount,"/",this.maxLength)),r&&a("div",{key:"c9fbd9a21b7e26fbd9571fc524b6f706404145d3",class:"form-control-helper"},this.isInvalid&&a("dropi-icon",{key:"8fc6e34849f9e3175097597280a3bea9defb6bb0",name:"Warning-circle",iconWidth:"12px",iconHeight:"12px",color:"Error-Error-500"}),a("span",{key:"68bf62627efb3de92afe54f7803e322f5a0462e4",class:{"invalid-color":this.isInvalid},style:{color:this.disabled?"var(--Gray-Gray-400)":void 0}},this.textHelper)))}static get formAssociated(){return!0}static get watchers(){return{textAreaProperties:[{textAreaPropertiesChanged:0}],value:[{valueChanged:0}]}}static get style(){return":host{display:flex;flex-direction:column;width:100%}*,*::before,*::after{box-sizing:border-box}.textarea-wrapper{position:relative;width:100%;display:flex;flex-direction:column;gap:4px}.textarea-wrapper label{font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);color:var(--Gray-Gray-600, #475066)}.asterisk{color:var(--Error-Error-500, #f46a6b)}.textarea-container{position:relative;display:flex;flex-direction:column}textarea.form-control{box-sizing:border-box;width:100%;flex:1;overflow:auto;padding:var(--Size-3, 12px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);font-size:var(--font-size-s, 12px);font-family:inherit;color:var(--Gray-Gray-700, #32394d);background:var(--Neutral-White, #ffffff);transition:border-color 0.3s ease-in-out;outline:none;appearance:none}textarea.form-control:focus{border-color:var(--Info-Info-500, #50a5f1)}textarea.form-control:focus::placeholder{color:var(--Gray-Gray-400, #858ea6)}textarea.form-control-valid{border-color:var(--Gray-Gray-400, #858ea6) !important;color:var(--Gray-Gray-600, #475066)}textarea.form-control-invalid{border-color:var(--Error-Error-500, #f46a6b) !important;color:var(--Gray-Gray-600, #475066)}textarea.form-control:disabled{border-color:var(--Gray-Gray-200, #c3c9d9) !important;color:var(--Gray-Gray-400, #858ea6);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed}.char-counter{position:absolute;bottom:10px;right:16px;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-500, #69738c);pointer-events:none}.form-control-helper{display:flex;gap:4px;align-items:center}.form-control-helper span{display:block;color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px)}.invalid-color{color:var(--Error-Error-500, #f46a6b) !important}"}},[577,"dropi-text-area",{id:[1025],name:[513],label:[1025],placeholder:[1025],value:[1025],maxLength:[1026,"max-length"],minLength:[1026,"min-length"],rows:[1026],resize:[1025],disabled:[516],required:[516],showObligatoryAsterisk:[4,"show-obligatory-asterisk"],textHelper:[1025,"text-helper"],hasError:[4,"has-error"],textAreaProperties:[16],touched:[32]},void 0,{textAreaProperties:[{textAreaPropertiesChanged:0}],value:[{valueChanged:0}]}]);function n(){"undefined"!=typeof customElements&&["dropi-text-area","dropi-icon"].forEach((e=>{switch(e){case"dropi-text-area":customElements.get(r(e))||customElements.define(r(e),s);break;case"dropi-icon":customElements.get(r(e))||i()}}))}n();const l=s,d=n;export{l as DropiTextArea,d as defineCustomElement}
@@ -0,0 +1 @@
1
+ import{t,p as e,H as i,c as o,h as r}from"./index.js";import{d as s}from"./p-B9rJd-Rf.js";const a=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.dropiInput=o(this,"dropiInput"),this.dropiChange=o(this,"dropiChange"),this.dropiFocus=o(this,"dropiFocus"),this.dropiBlur=o(this,"dropiBlur"),this.internals=this.attachInternals()}internals;inputId="";name="";label="";placeholder=" ";value="";maxLength;disabled=!1;required=!1;showObligatoryAsterisk=!0;fixedLabel=!1;inputMode="text";passwordInput=!1;isMoneyInput=!1;isThousandSeparator=!1;isNumericInput=!1;allowDecimals=!1;isLettersOnly=!1;icon="";iconColor="Gray-Gray-400";hasError=!1;textHelper="";showHelperOnlyOnError=!1;inputProperties=null;showPassword=!1;touched=!1;dropiInput;dropiChange;dropiFocus;dropiBlur;inputPropertiesChanged(t){t&&(void 0!==t.id&&(this.inputId=t.id),void 0!==t.inputId&&(this.inputId=t.inputId),void 0!==t.label&&(this.label=t.label),void 0!==t.placeholder&&(this.placeholder=t.placeholder),void 0!==t.maxLength&&(this.maxLength=t.maxLength),void 0!==t.textHelper&&(this.textHelper=t.textHelper),void 0!==t.passwordInput&&(this.passwordInput=t.passwordInput),void 0!==t.isPasswordInput&&(this.passwordInput=t.isPasswordInput),void 0!==t.icon&&(this.icon=t.icon),void 0!==t.iconColor&&(this.iconColor=t.iconColor),void 0!==t.isMoneyInput&&(this.isMoneyInput=t.isMoneyInput),void 0!==t.showObligatoryAsterisk&&(this.showObligatoryAsterisk=t.showObligatoryAsterisk),void 0!==t.isNumericInput&&(this.isNumericInput=t.isNumericInput),void 0!==t.allowDecimals&&(this.allowDecimals=t.allowDecimals),void 0!==t.isThousandSeparator&&(this.isThousandSeparator=t.isThousandSeparator),void 0!==t.showHelperOnlyOnError&&(this.showHelperOnlyOnError=t.showHelperOnlyOnError),void 0!==t.isLettersOnly&&(this.isLettersOnly=t.isLettersOnly),void 0!==t.inputMode&&(this.inputMode=t.inputMode))}valueChanged(t){this.internals.setFormValue(t)}disabledChanged(t){this.internals.setValidity(t?{customError:!0}:{},t?"Field is disabled":"")}componentWillLoad(){this.internals.setFormValue(this.value??""),this.inputProperties&&this.inputPropertiesChanged(this.inputProperties)}handleInput(t){let e=t.target.value;this.isNumericInput&&(e=this.filterNumbers(e)),this.isLettersOnly&&(e=this.filterLetters(e)),(this.isMoneyInput||this.isThousandSeparator)&&(e=this.formatThousands(e,this.isMoneyInput)),this.value=e,this.internals.setFormValue(e),this.dropiInput.emit(e),this.dropiChange.emit(e)}handleKeyDown(t){(this.isNumericInput||this.isMoneyInput||this.isThousandSeparator)&&!this.isAllowedNumberKey(t)&&t.preventDefault(),this.isLettersOnly&&!this.isAllowedLetterKey(t)&&t.preventDefault()}handleFocus(){this.dropiFocus.emit()}handleBlur(){this.touched=!0,this.dropiBlur.emit()}togglePassword(){this.disabled||(this.showPassword=!this.showPassword)}filterNumbers(t){return t.replace(this.allowDecimals?/[^0-9.]/g:/[^0-9]/g,"")}filterLetters(t){return t.replace(/[^a-zA-ZáéíóúÁÉÍÓÚñÑüÜ\s]/g,"")}isAllowedNumberKey(t){return!!(["Backspace","Delete","ArrowLeft","ArrowRight","Tab","Enter","Home","End"].includes(t.key)||t.ctrlKey||t.metaKey||/^[0-9]$/.test(t.key)||this.allowDecimals&&"."===t.key)}isAllowedLetterKey(t){return!!["Backspace","Delete","ArrowLeft","ArrowRight","Tab","Enter","Home","End"," "].includes(t.key)||!(!t.ctrlKey&&!t.metaKey)||/^[a-zA-ZáéíóúÁÉÍÓÚñÑüÜ]$/.test(t.key)}formatThousands(t,e){const i=t.replace(/[^0-9.]/g,""),[o,r]=i.split("."),s=o.replace(/\B(?=(\d{3})+(?!\d))/g,","),a=void 0!==r?`${s}.${r}`:s;return e?`$${a}`:a}get resolvedId(){return this.inputId||this.label}get inputType(){return this.passwordInput?this.showPassword?"text":"password":"text"}get showHelper(){return!!this.textHelper&&(!this.showHelperOnlyOnError||this.hasError&&this.touched)}get isInvalid(){return this.hasError&&this.touched}render(){const t=this.required&&this.showObligatoryAsterisk&&!this.disabled,e=!!this.icon;return r("div",{key:"6af757e1d86bfe96d471e9cbed258a50727ae190",class:{"fixed-label-container":this.fixedLabel}},this.fixedLabel&&r("div",{key:"e88bf81fd2b79933e386c2e5fa38f57d85cfe836",class:"input-label Body-S-Regular"},this.label,t&&r("span",{key:"be8ec1b0d3ef624ca22e58ae072917ad2ecc79fb",class:"asterisk"}," *")),r("div",{key:"4806c0d250f00bb08788d9d6aa935ca15f2aa826",class:"form-group"},r("div",{key:"b9fa243d299bcd165458947d6695fcc845764276",class:{"input-container":!0,"input-container--has-icon":e}},e&&r("dropi-icon",{key:"92b3cf11803745784f13e908ea88992f76c74473",class:"icon-input",name:this.icon,color:this.iconColor,iconWidth:"20px",iconHeight:"20px",style:{width:"20px",height:"20px"}}),this.passwordInput&&r("dropi-icon",{key:"c7dc725d577a6d4afb7f87c8b53b16c621de9e86",class:"icon-input-password",name:this.showPassword?"Eye":"Eye-crossed",iconWidth:"20px",iconHeight:"20px",style:{width:"20px",height:"20px"},color:"Gray-Gray-500",onClick:()=>this.togglePassword()}),r("input",{key:"8146ae1794cbe1f200bb681358c7319f10faab3c",id:this.resolvedId,class:{"form-control":!0,"form-control-valid":!this.isInvalid&&this.touched&&!!this.value,"form-control-invalid":this.isInvalid,"padding-icon":e,"text-password":this.passwordInput&&!this.showPassword,"fixed-label-input":this.fixedLabel},type:this.inputType,value:this.value,placeholder:this.fixedLabel?this.placeholder:" ",disabled:this.disabled,required:this.required,maxLength:this.maxLength,inputMode:this.inputMode,"data-cy":void 0,onInput:t=>this.handleInput(t),onKeyDown:t=>this.handleKeyDown(t),onFocus:()=>this.handleFocus(),onBlur:()=>this.handleBlur()}),!this.fixedLabel&&r("label",{key:"005d15af6b50b2cb2d47ac8381a722794eb273e5",class:"Body-S-Regular label-bottom",htmlFor:this.resolvedId},this.label,t&&r("span",{key:"ad56df877cff3df8a801cdfcb607d9af02f7465a",class:"asterisk"}," *")),this.showHelper&&r("div",{key:"76e858c13a798f69b2d20ee9908f17531568dad1",class:"form-control-helper"},this.isInvalid&&r("dropi-icon",{key:"3e42ffb4db7444ebfb49cc9c6720d5a9d02b2860",name:"Warning-circle",iconWidth:"12px",iconHeight:"12px",color:"Error-Error-500"}),r("span",{key:"5e970903eb51ca6b72a43bef0edf6ef149443247",class:{"disabled-helper":this.disabled,"invalid-color":this.isInvalid}},this.textHelper)))))}static get formAssociated(){return!0}static get watchers(){return{inputProperties:[{inputPropertiesChanged:0}],value:[{valueChanged:0}],disabled:[{disabledChanged:0}]}}static get style(){return":host{display:block;width:100%}*,*::before,*::after{box-sizing:border-box}.fixed-label-container{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:8px}.input-label{color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px);font-weight:var(--font-weight-regular, 400);text-align:left}.asterisk{color:var(--Error-Error-500, #f46a6b)}.form-group{position:relative;width:100%}.input-container{position:relative}.icon-input{position:absolute;top:50%;left:12px;transform:translateY(-50%);z-index:1;display:flex;align-items:center;justify-content:center}.icon-input-password{position:absolute;top:50%;right:13px;transform:translateY(-50%);cursor:pointer;z-index:1;display:flex;align-items:center;justify-content:center}.form-control{box-sizing:border-box;width:100%;padding:var(--Size-2, 8px);border:1px solid var(--Gray-Gray-200, #c3c9d9);border-radius:var(--Border-2, 8px);background:var(--Neutral-White, #ffffff);font-size:var(--font-size-s, 12px);font-family:inherit;color:var(--Gray-Gray-700, #32394d);transition:border-color 0.3s ease-in-out;height:40px;outline:none;appearance:none;text-align:left}.form-control::placeholder{color:transparent;transition:color 0.2s ease-in-out}.form-control:focus::placeholder,.fixed-label-input::placeholder{color:var(--Gray-Gray-400, #858ea6)}.form-control:focus{border-color:var(--Info-Info-500, #50a5f1)}.form-control-valid{border-color:var(--Gray-Gray-400, #858ea6) !important;color:var(--Gray-Gray-600, #475066)}.form-control-invalid{border-color:var(--Error-Error-500, #f46a6b) !important;color:var(--Gray-Gray-600, #475066)}.form-control:disabled{border-color:var(--Gray-Gray-200, #c3c9d9) !important;color:var(--Gray-Gray-400, #858ea6);background-color:var(--Gray-Gray-50, #f7f8fa);cursor:not-allowed}.padding-icon{padding-left:40px}.input-container--has-icon label.label-bottom{left:40px}.input-container--has-icon .form-control:focus+label.label-bottom,.input-container--has-icon .form-control:not(:placeholder-shown)+label.label-bottom{left:0}.text-password{-webkit-text-security:disc;text-security:disc}label.label-bottom{position:absolute;font-weight:var(--font-weight-regular, 400);top:10px;font-size:var(--font-size-s, 12px);color:var(--Gray-Gray-500, #69738c);left:10px;transition:all 0.2s ease-in-out;pointer-events:none;overflow:hidden;width:90%;white-space:nowrap}.form-control:focus+label.label-bottom,.form-control:not(:placeholder-shown)+label.label-bottom{top:-22px;left:0;font-size:var(--font-size-xs, 10px);color:var(--Gray-Gray-600, #475066);width:unset}.form-control:disabled+label.label-bottom{color:var(--Gray-Gray-400, #858ea6)}.form-control-helper{display:flex;position:absolute;top:100%;left:0;gap:4px;align-items:center;margin-top:4px}.form-control-helper span{display:block;color:var(--Gray-Gray-600, #475066);font-size:var(--font-size-xs, 10px)}.invalid-color{color:var(--Error-Error-500, #f46a6b) !important}.disabled-helper{color:var(--Gray-Gray-400, #858ea6) !important}.disabled-helper{color:var(--Gray-Gray-400, #858ea6) !important}"}},[577,"dropi-input",{inputId:[1025,"input-id"],name:[513],label:[1025],placeholder:[1025],value:[1025],maxLength:[1026,"max-length"],disabled:[516],required:[516],showObligatoryAsterisk:[1028,"show-obligatory-asterisk"],fixedLabel:[4,"fixed-label"],inputMode:[1025,"input-mode"],passwordInput:[1028,"password-input"],isMoneyInput:[1028,"is-money-input"],isThousandSeparator:[1028,"is-thousand-separator"],isNumericInput:[1028,"is-numeric-input"],allowDecimals:[1028,"allow-decimals"],isLettersOnly:[1028,"is-letters-only"],icon:[1025],iconColor:[1025,"icon-color"],hasError:[1028,"has-error"],textHelper:[1025,"text-helper"],showHelperOnlyOnError:[1028,"show-helper-only-on-error"],inputProperties:[8,"input-properties"],showPassword:[32],touched:[32]},void 0,{inputProperties:[{inputPropertiesChanged:0}],value:[{valueChanged:0}],disabled:[{disabledChanged:0}]}]);function n(){"undefined"!=typeof customElements&&["dropi-input","dropi-icon"].forEach((e=>{switch(e){case"dropi-input":customElements.get(t(e))||customElements.define(t(e),a);break;case"dropi-icon":customElements.get(t(e))||s()}}))}n();export{a as D,n as d}
@@ -0,0 +1 @@
1
+ import{t as e,p as t,H as i,c as s,h as o}from"./index.js";const r=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.dropiChange=s(this,"dropiChange"),this.internals=this.attachInternals()}internals;name="";isChecked=!1;disabled=!1;dropiChange;checkedChanged(e){this.internals.setFormValue(e?"on":null)}componentWillLoad(){this.internals.setFormValue(this.isChecked?"on":null)}onToggleChange(e){this.isChecked=e.target.checked,this.dropiChange.emit(this.isChecked)}render(){return o("label",{key:"b3321fd96a1487210a920f5494708dc2eb05f10c",class:"toggle-switch"},o("input",{key:"ee7cfecf443a1c839ce145ade18cc3ff15924816",type:"checkbox",checked:this.isChecked,disabled:this.disabled,onChange:e=>this.onToggleChange(e)}),o("span",{key:"c0800bd9a7f52cf666b3e475265da223b852be9a",class:"slider"}))}static get formAssociated(){return!0}static get watchers(){return{isChecked:[{checkedChanged:0}]}}static get style(){return":host{display:inline-block}*,*::before,*::after{box-sizing:border-box}.toggle-switch{position:relative;display:inline-block;width:40px;height:21px;margin-bottom:0;cursor:pointer}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--Gray-Gray-200, #c3c9d9);transition:0.4s;border-radius:34px}.slider::before{position:absolute;content:'';height:17px;width:17px;left:3px;bottom:2px;background-color:var(--Neutral-White, #ffffff);transition:0.4s;border-radius:50%}input:checked+.slider{background-color:var(--Primary-Primary-500, #f49a3d)}input:checked+.slider::before{transform:translateX(17px)}:host([disabled]) .toggle-switch{cursor:not-allowed;opacity:0.5}"}},[577,"dropi-switch",{name:[513],isChecked:[1540,"is-checked"],disabled:[516]},void 0,{isChecked:[{checkedChanged:0}]}]);function c(){"undefined"!=typeof customElements&&["dropi-switch"].forEach((t=>{"dropi-switch"===t&&(customElements.get(e(t))||customElements.define(e(t),r))}))}c();export{r as D,c as d}
@@ -0,0 +1 @@
1
+ import{t as r,p as a,H as o,c as e,h as n}from"./index.js";import{d as t}from"./p-B9rJd-Rf.js";const i=a(class extends o{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow(),this.dropiClick=e(this,"dropiClick"),this.internals=this.attachInternals()}internals;type="default";severity="primary";size="normal";state="default";fullWidth=!1;preIcon="";postIcon="";customIconColor="";text="";nativeType="button";dropiClick;colorMap={default:"Primary-Primary-",success:"Success-Success-",error:"Error-Error-",info:"Info-Info-",legacy:"Secondary-Secondary-",warning:"Warning-Warning-",dropdown:"Gray-Gray-","default-light":"Gray-Gray-"};get iconSize(){return"large"===this.size?"24px":"small"===this.size?"16px":"18px"}get color(){return(this.colorMap[this.type]??"Primary-Primary-")+("disabled"===this.state?"300":"500")}get fontColor(){return"tertiary"===this.severity?"default"===this.type||"legacy"===this.type?"Gray-Gray-500":this.color:"secondary"===this.severity?this.color:"Neutral-White"}handleClick(r){"disabled"!==this.state&&"loading"!==this.state&&(this.dropiClick.emit(r),"submit"===this.nativeType?this.internals.form?.requestSubmit():"reset"===this.nativeType&&this.internals.form?.reset())}renderLoadingSpinner(){return n("svg",{class:"spin",width:this.iconSize,height:this.iconSize,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},n("path",{d:"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z",fill:`var(--${this.fontColor})`}))}render(){const r="disabled"===this.state||"loading"===this.state,a=""!==(this.text??""),o=""!==(this.postIcon??"")||"dropdown"===(this.type??"default"),e="dropdown"===(this.type??"default")?"Dropdown-down":this.postIcon??"";return n("button",{key:"21d2654de08dff8db6c2b1ba87594e1184a7aa35",class:{btn:!0,"without-text":!a,[this.severity??"primary"]:!0,[this.type??"default"]:!0,[this.size??"normal"]:!0,[this.state??"default"]:!0,"full-width":this.fullWidth},type:this.nativeType,disabled:r,onClick:r=>this.handleClick(r)},this.preIcon&&n("dropi-icon",{key:"6c6c01c923a37df20b614602b18cd2da949bcb91",name:this.preIcon,iconWidth:this.iconSize,iconHeight:this.iconSize,color:this.fontColor}),a&&n("span",{key:"82447aab8b87bc4a89105cd0209e6c5681222f28",class:"text"},this.text),o&&n("dropi-icon",{key:"6bdefe7c1c819b213d24e0100c2303fb7840ea00",name:e,iconWidth:this.iconSize,iconHeight:this.iconSize,color:this.fontColor}),"loading"===this.state&&this.renderLoadingSpinner(),n("slot",{key:"44483caf52d2ca617ad86c1574a54709f8e77ab5"}))}static get formAssociated(){return!0}static get style(){return":host{display:inline-block;border:0}:host([full-width]){display:flex;width:100%}:host([full-width]) .btn{width:100%}*,*::before,*::after{box-sizing:border-box}.btn{all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:var(--Size-1, 4px);border-radius:var(--Border-2, 8px);font-weight:var(--font-weight-bold);min-width:33px;line-height:110%;cursor:pointer;white-space:nowrap;transition:background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease}.btn:active{transition:transform 0.01s ease-out;transform:scale(0.98)}.btn:hover:not(:active){transform:scale(1.01)}.btn.without-text{gap:0}.btn.large{padding:var(--Size-4, 16px);font-size:var(--Size-4, 16px);height:48px}.btn.normal{padding:var(--Size-3, 12px);font-size:var(--font-size-s, 12px);height:40px}.btn.small{padding:var(--Size-2, 8px);font-size:var(--font-size-s, 12px);height:29px}.btn.disabled,.btn.loading{cursor:not-allowed;pointer-events:none}.btn.primary.default{background:var(--Primary-Primary-500, #f49a3d);color:var(--Neutral-White, #ffffff)}.btn.primary.default:hover{background:var(--Primary-Primary-600, #e58017)}.btn.primary.success{background:var(--Success-Success-500, #0abb87);color:var(--Neutral-White, #ffffff)}.btn.primary.success:hover{background:var(--Success-Success-600, #09aa7b)}.btn.primary.info{background:var(--Info-Info-500, #50a5f1);color:var(--Neutral-White, #ffffff)}.btn.primary.info:hover{background:var(--Info-Info-600, #4996db)}.btn.primary.error{background:var(--Error-Error-500, #f46a6b);color:var(--Neutral-White, #ffffff)}.btn.primary.error:hover{background:var(--Error-Error-600, #de6061)}.btn.primary.warning{background:var(--Warning-Warning-500, #f1b44c);color:var(--Neutral-White, #ffffff)}.btn.primary.warning:hover{background:var(--Warning-Warning-600, #dba445)}.btn.primary.legacy{background:var(--Secondary-Secondary-500, #008dbf);color:var(--Neutral-White, #ffffff)}.btn.primary.legacy:hover{background:var(--Secondary-Secondary-600, #007199)}.btn.primary.disabled.default{background:var(--Primary-Primary-300, #f2bc85);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.success{background:var(--Success-Success-300, #5bd1af);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.info{background:var(--Info-Info-300, #8ac3f6);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.error{background:var(--Error-Error-300, #f89b9c);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.warning{background:var(--Warning-Warning-300, #f6cd87);color:var(--Neutral-White, #ffffff)}.btn.primary.disabled.legacy{background:var(--Secondary-Secondary-300, #62bad9);color:var(--Neutral-White, #ffffff)}.btn.secondary{background:var(--Neutral-White, #ffffff);border:1px solid}.btn.secondary.default{border-color:var(--Primary-Primary-500, #f49a3d);color:var(--Primary-Primary-500, #f49a3d)}.btn.secondary.default:hover{color:var(--Primary-Primary-600, #e58017);border-color:var(--Primary-Primary-600, #e58017)}.btn.secondary.success{border-color:var(--Success-Success-500, #0abb87);color:var(--Success-Success-500, #0abb87)}.btn.secondary.success:hover{color:var(--Success-Success-600, #09aa7b);border-color:var(--Success-Success-600, #09aa7b)}.btn.secondary.info{border-color:var(--Info-Info-500, #50a5f1);color:var(--Info-Info-500, #50a5f1)}.btn.secondary.info:hover{color:var(--Info-Info-600, #4996db);border-color:var(--Info-Info-600, #4996db)}.btn.secondary.error{border-color:var(--Error-Error-500, #f46a6b);color:var(--Error-Error-500, #f46a6b)}.btn.secondary.error:hover{color:var(--Error-Error-600, #de6061);border-color:var(--Error-Error-600, #de6061)}.btn.secondary.warning{border-color:var(--Warning-Warning-500, #f1b44c);color:var(--Warning-Warning-500, #f1b44c)}.btn.secondary.warning:hover{color:var(--Warning-Warning-600, #dba445);border-color:var(--Warning-Warning-600, #dba445)}.btn.secondary.legacy{border-color:var(--Secondary-Secondary-500, #008dbf);color:var(--Secondary-Secondary-500, #008dbf)}.btn.secondary.legacy:hover{color:var(--Secondary-Secondary-600, #007199);border-color:var(--Secondary-Secondary-600, #007199)}.btn.secondary.disabled.default{border-color:var(--Primary-Primary-300, #f2bc85);color:var(--Primary-Primary-300, #f2bc85)}.btn.secondary.disabled.success{border-color:var(--Success-Success-300, #5bd1af);color:var(--Success-Success-300, #5bd1af)}.btn.secondary.disabled.info{border-color:var(--Info-Info-300, #8ac3f6);color:var(--Info-Info-300, #8ac3f6)}.btn.secondary.disabled.error{border-color:var(--Error-Error-300, #f89b9c);color:var(--Error-Error-300, #f89b9c)}.btn.secondary.disabled.warning{border-color:var(--Warning-Warning-300, #f6cd87);color:var(--Warning-Warning-300, #f6cd87)}.btn.secondary.disabled.legacy{border-color:var(--Secondary-Secondary-300, #62bad9);color:var(--Secondary-Secondary-300, #62bad9)}.btn.tertiary{background:none;border:none}.btn.tertiary.default,.btn.tertiary.legacy{border:none !important;box-shadow:none !important;color:var(--Gray-Gray-500, #69738c)}.btn.tertiary.default:hover,.btn.tertiary.legacy:hover{background:var(--Gray-Gray-50, #f5f6f8);box-shadow:none !important;color:var(--Gray-Gray-600, #475066)}.btn.tertiary.success{color:var(--Success-Success-500, #0abb87)}.btn.tertiary.success:hover{background:var(--Success-Success-50, #e7f8f3)}.btn.tertiary.info{color:var(--Info-Info-500, #50a5f1)}.btn.tertiary.info:hover{background:var(--Info-Info-50, #eef6fe)}.btn.tertiary.error{color:var(--Error-Error-500, #f46a6b)}.btn.tertiary.error:hover{background:var(--Error-Error-50, #fef0f0)}.btn.tertiary.warning{color:var(--Warning-Warning-500, #f1b44c)}.btn.tertiary.warning:hover{background:var(--Warning-Warning-50, #fef8ed)}.btn.tertiary.dropdown{color:var(--Gray-Gray-500, #69738c);font-weight:var(--font-weight-regular);font-size:var(--font-size-s);background:transparent}.btn.tertiary.disabled.default,.btn.tertiary.disabled.legacy{border:none !important;color:var(--Gray-Gray-400, #858ea6)}.btn.tertiary.disabled.success{color:var(--Success-Success-300, #5bd1af)}.btn.tertiary.disabled.info{color:var(--Info-Info-300, #8ac3f6)}.btn.tertiary.disabled.error{color:var(--Error-Error-300, #f89b9c)}.btn.tertiary.disabled.warning{color:var(--Warning-Warning-300, #f6cd87)}.spin{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}"}},[833,"dropi-button",{type:[1],severity:[1],size:[1],state:[1],fullWidth:[516,"full-width"],preIcon:[1,"pre-icon"],postIcon:[1,"post-icon"],customIconColor:[1,"custom-icon-color"],text:[1],nativeType:[1,"native-type"]}]);function c(){"undefined"!=typeof customElements&&["dropi-button","dropi-icon"].forEach((a=>{switch(a){case"dropi-button":customElements.get(r(a))||customElements.define(r(a),i);break;case"dropi-icon":customElements.get(r(a))||t()}}))}c();export{i as D,c as d}
@@ -0,0 +1 @@
1
+ import{t as e,p as c,H as t,c as i,h as r}from"./index.js";const s=c(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.dropiChange=i(this,"dropiChange"),this.internals=this.attachInternals()}internals;name="";checked=!1;disabled=!1;dropiChange;checkedChanged(e){this.internals.setFormValue(e?"on":null)}componentWillLoad(){this.internals.setFormValue(this.checked?"on":null)}changeState(){this.disabled||(this.checked=!this.checked,this.dropiChange.emit(this.checked))}render(){return r("div",{key:"27fec5f03a48c19652c8ae01173dcbb6e3514693",class:"container-dropi-checkbox",onClick:()=>this.changeState()},r("div",{key:"243d07e4444c0dc149ff137258f9ddd58428c438",class:{check:!0,isCheck:this.checked,noCheck:!this.checked,disabled:this.disabled}},r("svg",{key:"7a1fd9c7b3fa575ec263fe5ad48fbc0294a79980",xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none"},r("path",{key:"e77e5cd40c71e542a045934641509e41a7cd4899",d:"M20.5991 5.69251L9.08325 17.2075C9.00583 17.2852 8.91382 17.3469 8.8125 17.389C8.71118 17.4311 8.60255 17.4527 8.49283 17.4527C8.38312 17.4527 8.27449 17.4311 8.17317 17.389C8.07185 17.3469 7.97984 17.2852 7.90242 17.2075L3.44908 12.75C3.37166 12.6723 3.27965 12.6106 3.17833 12.5685C3.07701 12.5264 2.96838 12.5048 2.85867 12.5048C2.74896 12.5048 2.64032 12.5264 2.53901 12.5685C2.43769 12.6106 2.34568 12.6723 2.26825 12.75C2.19052 12.8274 2.12884 12.9194 2.08676 13.0208C2.04467 13.1221 2.02301 13.2307 2.02301 13.3404C2.02301 13.4501 2.04467 13.5588 2.08676 13.6601C2.12884 13.7614 2.19052 13.8534 2.26825 13.9308L6.72325 18.385C7.19321 18.8541 7.83008 19.1175 8.49408 19.1175C9.15809 19.1175 9.79496 18.8541 10.2649 18.385L21.7799 6.87251C21.8575 6.7951 21.9191 6.70314 21.9611 6.6019C22.0031 6.50065 22.0247 6.39212 22.0247 6.28251C22.0247 6.17289 22.0031 6.06436 21.9611 5.96312C21.9191 5.86188 21.8575 5.76992 21.7799 5.69251C21.7025 5.61478 21.6105 5.5531 21.5092 5.51101C21.4078 5.46893 21.2992 5.44727 21.1895 5.44727C21.0798 5.44727 20.9712 5.46893 20.8698 5.51101C20.7685 5.5531 20.6765 5.61478 20.5991 5.69251Z",fill:"#FFFFFF"}))))}static get formAssociated(){return!0}static get watchers(){return{checked:[{checkedChanged:0}]}}static get style(){return":host{display:inline-block}*,*::before,*::after{box-sizing:border-box}.container-dropi-checkbox{display:inline-block}.check{width:20px;height:20px;border-radius:var(--Border-1, 4px);cursor:pointer;transition:background-color 0.3s ease-in-out, border-style 0.3s ease-in-out}.noCheck{border-style:solid;border-width:2px;border-color:var(--Gray-Gray-200, #c3c9d9);display:flex;justify-content:center;align-items:center}.noCheck svg{visibility:hidden}.isCheck{display:flex;background-color:var(--Primary-Primary-500, #f49a3d);justify-content:center;align-items:center}.disabled{background-color:var(--Gray-Gray-50, #f7f8fa);border-color:var(--Gray-Gray-100, #e6eaf2);cursor:not-allowed}"}},[577,"dropi-checkbox",{name:[513],checked:[1540],disabled:[516]},void 0,{checked:[{checkedChanged:0}]}]);function o(){"undefined"!=typeof customElements&&["dropi-checkbox"].forEach((c=>{"dropi-checkbox"===c&&(customElements.get(e(c))||customElements.define(e(c),s))}))}o();export{s as D,o as d}
@@ -6,7 +6,15 @@ const DropiButton = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  this.dropiClick = createEvent(this, "dropiClick", 7);
9
+ if (hostRef.$hostElement$["s-ei"]) {
10
+ this.internals = hostRef.$hostElement$["s-ei"];
11
+ }
12
+ else {
13
+ this.internals = hostRef.$hostElement$.attachInternals();
14
+ hostRef.$hostElement$["s-ei"] = this.internals;
15
+ }
9
16
  }
17
+ internals;
10
18
  /** Visual color palette */
11
19
  type = 'default';
12
20
  /** Primary (filled) | Secondary (outlined) | Tertiary (ghost) */
@@ -25,6 +33,8 @@ const DropiButton = class {
25
33
  customIconColor = '';
26
34
  /** Button label */
27
35
  text = '';
36
+ /** Native HTML button type (submit, reset, button) */
37
+ nativeType = 'button';
28
38
  /** Emitted on click (not emitted when disabled or loading) */
29
39
  dropiClick;
30
40
  colorMap = {
@@ -59,6 +69,12 @@ const DropiButton = class {
59
69
  handleClick(e) {
60
70
  if (this.state !== 'disabled' && this.state !== 'loading') {
61
71
  this.dropiClick.emit(e);
72
+ if (this.nativeType === 'submit') {
73
+ this.internals.form?.requestSubmit();
74
+ }
75
+ else if (this.nativeType === 'reset') {
76
+ this.internals.form?.reset();
77
+ }
62
78
  }
63
79
  }
64
80
  renderLoadingSpinner() {
@@ -69,7 +85,7 @@ const DropiButton = class {
69
85
  const hasText = (this.text ?? '') !== '';
70
86
  const showPostIcon = (this.postIcon ?? '') !== '' || (this.type ?? 'default') === 'dropdown';
71
87
  const dropdownIcon = (this.type ?? 'default') === 'dropdown' ? 'Dropdown-down' : (this.postIcon ?? '');
72
- return (h("button", { key: 'eefda6c7ac5090173a545d67e72073dc410ff05c', class: {
88
+ return (h("button", { key: '21d2654de08dff8db6c2b1ba87594e1184a7aa35', class: {
73
89
  btn: true,
74
90
  'without-text': !hasText,
75
91
  [this.severity ?? 'primary']: true,
@@ -77,8 +93,9 @@ const DropiButton = class {
77
93
  [this.size ?? 'normal']: true,
78
94
  [this.state ?? 'default']: true,
79
95
  'full-width': this.fullWidth,
80
- }, disabled: isDisabled, onClick: (e) => this.handleClick(e) }, this.preIcon && (h("dropi-icon", { key: '869ee8fc34dee93de0381a86db643c0fa9dc6918', name: this.preIcon, iconWidth: this.iconSize, iconHeight: this.iconSize, color: this.fontColor })), hasText && h("span", { key: '927ef142b4c549d01b087722e9f6759cff44e6b2', class: "text" }, this.text), showPostIcon && (h("dropi-icon", { key: 'cda1f5d0fa59a87abc1d3d73a87d4390f05f79eb', name: dropdownIcon, iconWidth: this.iconSize, iconHeight: this.iconSize, color: this.fontColor })), this.state === 'loading' && this.renderLoadingSpinner(), h("slot", { key: 'c83dd79efe5d858361815878192c0c554a9234ca' })));
96
+ }, type: this.nativeType, disabled: isDisabled, onClick: (e) => this.handleClick(e) }, this.preIcon && (h("dropi-icon", { key: '6c6c01c923a37df20b614602b18cd2da949bcb91', name: this.preIcon, iconWidth: this.iconSize, iconHeight: this.iconSize, color: this.fontColor })), hasText && h("span", { key: '82447aab8b87bc4a89105cd0209e6c5681222f28', class: "text" }, this.text), showPostIcon && (h("dropi-icon", { key: '6bdefe7c1c819b213d24e0100c2303fb7840ea00', name: dropdownIcon, iconWidth: this.iconSize, iconHeight: this.iconSize, color: this.fontColor })), this.state === 'loading' && this.renderLoadingSpinner(), h("slot", { key: '44483caf52d2ca617ad86c1574a54709f8e77ab5' })));
81
97
  }
98
+ static get formAssociated() { return true; }
82
99
  };
83
100
  DropiButton.style = dropiButtonCss();
84
101
 
@@ -1 +1 @@
1
- {"file":"dropi-button.entry.js","mappings":";;AAAA,MAAM,cAAc,GAAG,MAAM,CAAC,0tMAA0tM,CAAC;;MCiB5uM,WAAW,GAAA,MAAA;;;;;;IAEd,IAAI,GAAe,SAAS;;IAE5B,QAAQ,GAAmB,SAAS;;IAEpC,IAAI,GAAe,QAAQ;;IAE3B,KAAK,GAAgB,SAAS;;IAEb,SAAS,GAAY,KAAK;;IAE3C,OAAO,GAAW,EAAE;;IAEpB,QAAQ,GAAW,EAAE;;IAErB,eAAe,GAAW,EAAE;;IAE5B,IAAI,GAAW,EAAE;;AAGhB,IAAA,UAAU;AAEF,IAAA,QAAQ,GAA2B;AAClD,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,eAAe,EAAE,YAAY;KAC9B;AAED,IAAA,IAAY,QAAQ,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;AAAE,YAAA,OAAO,MAAM;AACxC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;AAAE,YAAA,OAAO,MAAM;AACxC,QAAA,OAAO,MAAM;;AAGf,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,GAAG,KAAK,GAAG,KAAK;AAC3D,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,IAAI,SAAS;;AAGrE,IAAA,IAAY,SAAS,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;YAChC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC,KAAK;;AAEzF,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC,KAAK;AACpD,QAAA,OAAO,eAAe;;AAGhB,IAAA,WAAW,CAAC,CAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AACzD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;;;IAInB,oBAAoB,GAAA;QAC1B,QACE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE,IAAI,CAAC,QAAQ,EACpB,MAAM,EAAE,IAAI,CAAC,QAAQ,EACrB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,EAElC,CAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,uiBAAuiB,EACziB,IAAI,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,SAAS,CAAA,CAAA,CAAG,EAAA,CAChC,CACE;;IAIV,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QACxE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE;QACxC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,MAAM,UAAU;QAC5F,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,MAAM,UAAU,GAAG,eAAe,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEtG,QACE,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,GAAG,EAAE,IAAI;gBACT,cAAc,EAAE,CAAC,OAAO;AACxB,gBAAA,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,GAAG,IAAI;AAClC,gBAAA,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI;AAC9B,gBAAA,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,IAAI;AAC7B,gBAAA,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,GAAG,IAAI;gBAC/B,YAAY,EAAE,IAAI,CAAC,SAAS;AAC7B,aAAA,EACD,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,EAElC,IAAI,CAAC,OAAO,KACX,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,SAAS,EAAE,IAAI,CAAC,QAAQ,EACxB,UAAU,EAAE,IAAI,CAAC,QAAQ,EACzB,KAAK,EAAE,IAAI,CAAC,SAAS,GACrB,CACH,EACA,OAAO,IAAI,6DAAM,KAAK,EAAC,MAAM,EAAA,EAAE,IAAI,CAAC,IAAI,CAAQ,EAChD,YAAY,KACX,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,IAAI,CAAC,QAAQ,EACxB,UAAU,EAAE,IAAI,CAAC,QAAQ,EACzB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAA,CACrB,CACH,EACA,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,oBAAoB,EAAE,EACxD,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACD;;;;;;;","names":[],"sources":["src/components/dropi-button/dropi-button.css?tag=dropi-button&encapsulation=shadow","src/components/dropi-button/dropi-button.tsx"],"sourcesContent":[":host {\n display: inline-block;\n border: 0;\n}\n\n:host([full-width]) {\n display: flex;\n width: 100%;\n}\n:host([full-width]) .btn {\n width: 100%;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.btn {\n all: unset;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--Size-1, 4px);\n border-radius: var(--Border-2, 8px);\n font-weight: var(--font-weight-bold);\n min-width: 33px;\n line-height: 110%;\n cursor: pointer;\n white-space: nowrap;\n transition:\n background 0.25s ease,\n color 0.25s ease,\n border-color 0.25s ease,\n transform 0.25s ease;\n}\n\n.btn:active {\n transition: transform 0.01s ease-out;\n transform: scale(0.98);\n}\n\n.btn:hover:not(:active) {\n transform: scale(1.01);\n}\n\n.btn.without-text {\n gap: 0;\n}\n\n/* ── Sizes ─────────────────────────────────────────────────── */\n.btn.large { padding: var(--Size-4, 16px); font-size: var(--Size-4, 16px); height: 48px; }\n.btn.normal { padding: var(--Size-3, 12px); font-size: var(--font-size-s, 12px); height: 40px; }\n.btn.small { padding: var(--Size-2, 8px); font-size: var(--font-size-s, 12px); height: 29px; }\n\n/* ── Disabled / Loading ─────────────────────────────────────── */\n.btn.disabled,\n.btn.loading {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ══════════════════════════════════════════════════════════════\n PRIMARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.primary.default { background: var(--Primary-Primary-500, #f49a3d); color: var(--Neutral-White, #ffffff); }\n.btn.primary.default:hover { background: var(--Primary-Primary-600, #e58017); }\n\n.btn.primary.success { background: var(--Success-Success-500, #0abb87); color: var(--Neutral-White, #ffffff); }\n.btn.primary.success:hover { background: var(--Success-Success-600, #09aa7b); }\n\n.btn.primary.info { background: var(--Info-Info-500, #50a5f1); color: var(--Neutral-White, #ffffff); }\n.btn.primary.info:hover { background: var(--Info-Info-600, #4996db); }\n\n.btn.primary.error { background: var(--Error-Error-500, #f46a6b); color: var(--Neutral-White, #ffffff); }\n.btn.primary.error:hover { background: var(--Error-Error-600, #de6061); }\n\n.btn.primary.warning { background: var(--Warning-Warning-500, #f1b44c); color: var(--Neutral-White, #ffffff); }\n.btn.primary.warning:hover { background: var(--Warning-Warning-600, #dba445); }\n\n.btn.primary.legacy { background: var(--Secondary-Secondary-500, #008dbf); color: var(--Neutral-White, #ffffff); }\n.btn.primary.legacy:hover { background: var(--Secondary-Secondary-600, #007199); }\n\n/* Disabled primary */\n.btn.primary.disabled.default { background: var(--Primary-Primary-300, #f2bc85); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.success { background: var(--Success-Success-300, #5bd1af); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.info { background: var(--Info-Info-300, #8ac3f6); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.error { background: var(--Error-Error-300, #f89b9c); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.warning { background: var(--Warning-Warning-300, #f6cd87); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.legacy { background: var(--Secondary-Secondary-300, #62bad9); color: var(--Neutral-White, #ffffff); }\n\n/* ══════════════════════════════════════════════════════════════\n SECONDARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.secondary {\n background: var(--Neutral-White, #ffffff);\n border: 1px solid;\n}\n\n.btn.secondary.default { border-color: var(--Primary-Primary-500, #f49a3d); color: var(--Primary-Primary-500, #f49a3d); }\n.btn.secondary.default:hover { color: var(--Primary-Primary-600, #e58017); border-color: var(--Primary-Primary-600, #e58017); }\n\n.btn.secondary.success { border-color: var(--Success-Success-500, #0abb87); color: var(--Success-Success-500, #0abb87); }\n.btn.secondary.success:hover { color: var(--Success-Success-600, #09aa7b); border-color: var(--Success-Success-600, #09aa7b); }\n\n.btn.secondary.info { border-color: var(--Info-Info-500, #50a5f1); color: var(--Info-Info-500, #50a5f1); }\n.btn.secondary.info:hover { color: var(--Info-Info-600, #4996db); border-color: var(--Info-Info-600, #4996db); }\n\n.btn.secondary.error { border-color: var(--Error-Error-500, #f46a6b); color: var(--Error-Error-500, #f46a6b); }\n.btn.secondary.error:hover { color: var(--Error-Error-600, #de6061); border-color: var(--Error-Error-600, #de6061); }\n\n.btn.secondary.warning { border-color: var(--Warning-Warning-500, #f1b44c); color: var(--Warning-Warning-500, #f1b44c); }\n.btn.secondary.warning:hover { color: var(--Warning-Warning-600, #dba445); border-color: var(--Warning-Warning-600, #dba445); }\n\n.btn.secondary.legacy { border-color: var(--Secondary-Secondary-500, #008dbf); color: var(--Secondary-Secondary-500, #008dbf); }\n.btn.secondary.legacy:hover { color: var(--Secondary-Secondary-600, #007199); border-color: var(--Secondary-Secondary-600, #007199); }\n\n/* Disabled secondary */\n.btn.secondary.disabled.default { border-color: var(--Primary-Primary-300, #f2bc85); color: var(--Primary-Primary-300, #f2bc85); }\n.btn.secondary.disabled.success { border-color: var(--Success-Success-300, #5bd1af); color: var(--Success-Success-300, #5bd1af); }\n.btn.secondary.disabled.info { border-color: var(--Info-Info-300, #8ac3f6); color: var(--Info-Info-300, #8ac3f6); }\n.btn.secondary.disabled.error { border-color: var(--Error-Error-300, #f89b9c); color: var(--Error-Error-300, #f89b9c); }\n.btn.secondary.disabled.warning { border-color: var(--Warning-Warning-300, #f6cd87); color: var(--Warning-Warning-300, #f6cd87); }\n.btn.secondary.disabled.legacy { border-color: var(--Secondary-Secondary-300, #62bad9); color: var(--Secondary-Secondary-300, #62bad9); }\n\n/* ══════════════════════════════════════════════════════════════\n TERTIARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.tertiary { background: none; border: none; }\n\n.btn.tertiary.default,\n.btn.tertiary.legacy {\n border: none !important;\n box-shadow: none !important;\n color: var(--Gray-Gray-500, #69738c);\n}\n.btn.tertiary.default:hover,\n.btn.tertiary.legacy:hover {\n background: var(--Gray-Gray-50, #f5f6f8);\n box-shadow: none !important;\n color: var(--Gray-Gray-600, #475066);\n}\n\n.btn.tertiary.success { color: var(--Success-Success-500, #0abb87); }\n.btn.tertiary.success:hover { background: var(--Success-Success-50, #e7f8f3); }\n\n.btn.tertiary.info { color: var(--Info-Info-500, #50a5f1); }\n.btn.tertiary.info:hover { background: var(--Info-Info-50, #eef6fe); }\n\n.btn.tertiary.error { color: var(--Error-Error-500, #f46a6b); }\n.btn.tertiary.error:hover { background: var(--Error-Error-50, #fef0f0); }\n\n.btn.tertiary.warning { color: var(--Warning-Warning-500, #f1b44c); }\n.btn.tertiary.warning:hover { background: var(--Warning-Warning-50, #fef8ed); }\n\n.btn.tertiary.dropdown {\n color: var(--Gray-Gray-500, #69738c);\n font-weight: var(--font-weight-regular);\n font-size: var(--font-size-s);\n background: transparent;\n}\n\n/* Disabled tertiary */\n.btn.tertiary.disabled.default,\n.btn.tertiary.disabled.legacy {\n border: none !important;\n color: var(--Gray-Gray-400, #858ea6);\n}\n.btn.tertiary.disabled.success { color: var(--Success-Success-300, #5bd1af); }\n.btn.tertiary.disabled.info { color: var(--Info-Info-300, #8ac3f6); }\n.btn.tertiary.disabled.error { color: var(--Error-Error-300, #f89b9c); }\n.btn.tertiary.disabled.warning { color: var(--Warning-Warning-300, #f6cd87); }\n\n/* ── Loading spinner ─────────────────────────────────────────── */\n.spin {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type ButtonType = 'legacy' | 'default' | 'success' | 'info' | 'error' | 'warning' | 'dropdown' | 'default-light';\nexport type ButtonSeverity = 'primary' | 'secondary' | 'tertiary';\nexport type ButtonSize = 'large' | 'normal' | 'small';\nexport type ButtonState = 'default' | 'disabled' | 'loading';\n\n/**\n * @component dropi-button\n * Primary action button with multiple types, severities, sizes and states.\n * Supports pre/post icons and a loading spinner.\n */\n@Component({\n tag: 'dropi-button',\n styleUrl: 'dropi-button.css',\n shadow: true,\n})\nexport class DropiButton {\n /** Visual color palette */\n @Prop() type: ButtonType = 'default';\n /** Primary (filled) | Secondary (outlined) | Tertiary (ghost) */\n @Prop() severity: ButtonSeverity = 'primary';\n /** Button size */\n @Prop() size: ButtonSize = 'normal';\n /** Button state */\n @Prop() state: ButtonState = 'default';\n /** Full width button */\n @Prop({ reflect: true }) fullWidth: boolean = false;\n /** Icon name to show before the text */\n @Prop() preIcon: string = '';\n /** Icon name to show after the text */\n @Prop() postIcon: string = '';\n /** Custom icon color override */\n @Prop() customIconColor: string = '';\n /** Button label */\n @Prop() text: string = '';\n\n /** Emitted on click (not emitted when disabled or loading) */\n @Event() dropiClick: EventEmitter<MouseEvent>;\n\n private readonly colorMap: Record<string, string> = {\n default: 'Primary-Primary-',\n success: 'Success-Success-',\n error: 'Error-Error-',\n info: 'Info-Info-',\n legacy: 'Secondary-Secondary-',\n warning: 'Warning-Warning-',\n dropdown: 'Gray-Gray-',\n 'default-light': 'Gray-Gray-',\n };\n\n private get iconSize(): string {\n if (this.size === 'large') return '24px';\n if (this.size === 'small') return '16px';\n return '18px';\n }\n\n private get color(): string {\n const intensity = this.state === 'disabled' ? '300' : '500';\n return (this.colorMap[this.type] ?? 'Primary-Primary-') + intensity;\n }\n\n private get fontColor(): string {\n if (this.severity === 'tertiary') {\n return this.type === 'default' || this.type === 'legacy' ? 'Gray-Gray-500' : this.color;\n }\n if (this.severity === 'secondary') return this.color;\n return 'Neutral-White';\n }\n\n private handleClick(e: MouseEvent) {\n if (this.state !== 'disabled' && this.state !== 'loading') {\n this.dropiClick.emit(e);\n }\n }\n\n private renderLoadingSpinner() {\n return (\n <svg\n class=\"spin\"\n width={this.iconSize}\n height={this.iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z\"\n fill={`var(--${this.fontColor})`}\n />\n </svg>\n );\n }\n\n render() {\n const isDisabled = this.state === 'disabled' || this.state === 'loading';\n const hasText = (this.text ?? '') !== '';\n const showPostIcon = (this.postIcon ?? '') !== '' || (this.type ?? 'default') === 'dropdown';\n const dropdownIcon = (this.type ?? 'default') === 'dropdown' ? 'Dropdown-down' : (this.postIcon ?? '');\n\n return (\n <button\n class={{\n btn: true,\n 'without-text': !hasText,\n [this.severity ?? 'primary']: true,\n [this.type ?? 'default']: true,\n [this.size ?? 'normal']: true,\n [this.state ?? 'default']: true,\n 'full-width': this.fullWidth,\n }}\n disabled={isDisabled}\n onClick={(e) => this.handleClick(e)}\n >\n {this.preIcon && (\n <dropi-icon\n name={this.preIcon}\n iconWidth={this.iconSize}\n iconHeight={this.iconSize}\n color={this.fontColor}\n />\n )}\n {hasText && <span class=\"text\">{this.text}</span>}\n {showPostIcon && (\n <dropi-icon\n name={dropdownIcon}\n iconWidth={this.iconSize}\n iconHeight={this.iconSize}\n color={this.fontColor}\n />\n )}\n {this.state === 'loading' && this.renderLoadingSpinner()}\n <slot />\n </button>\n );\n }\n}\n"],"version":3}
1
+ {"file":"dropi-button.entry.js","mappings":";;AAAA,MAAM,cAAc,GAAG,MAAM,CAAC,0tMAA0tM,CAAC;;MCoB5uM,WAAW,GAAA,MAAA;;;;;;;;;;;;AACH,IAAA,SAAS;;IAGpB,IAAI,GAAe,SAAS;;IAE5B,QAAQ,GAAmB,SAAS;;IAEpC,IAAI,GAAe,QAAQ;;IAE3B,KAAK,GAAgB,SAAS;;IAEb,SAAS,GAAY,KAAK;;IAE3C,OAAO,GAAW,EAAE;;IAEpB,QAAQ,GAAW,EAAE;;IAErB,eAAe,GAAW,EAAE;;IAE5B,IAAI,GAAW,EAAE;;IAEjB,UAAU,GAAqB,QAAQ;;AAItC,IAAA,UAAU;AAEF,IAAA,QAAQ,GAA2B;AAClD,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,MAAM,EAAE,sBAAsB;AAC9B,QAAA,OAAO,EAAE,kBAAkB;AAC3B,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,eAAe,EAAE,YAAY;KAC9B;AAED,IAAA,IAAY,QAAQ,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;AAAE,YAAA,OAAO,MAAM;AACxC,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;AAAE,YAAA,OAAO,MAAM;AACxC,QAAA,OAAO,MAAM;;AAGf,IAAA,IAAY,KAAK,GAAA;AACf,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,GAAG,KAAK,GAAG,KAAK;AAC3D,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,IAAI,SAAS;;AAGrE,IAAA,IAAY,SAAS,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;YAChC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,eAAe,GAAG,IAAI,CAAC,KAAK;;AAEzF,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC,KAAK;AACpD,QAAA,OAAO,eAAe;;AAGhB,IAAA,WAAW,CAAC,CAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;AACzD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;AAChC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE;;AAC/B,iBAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;AACtC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;;;;IAM1B,oBAAoB,GAAA;QAC1B,QACE,CAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,MAAM,EACZ,KAAK,EAAE,IAAI,CAAC,QAAQ,EACpB,MAAM,EAAE,IAAI,CAAC,QAAQ,EACrB,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAAA,EAElC,CAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,uiBAAuiB,EACziB,IAAI,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,SAAS,CAAA,CAAA,CAAG,EAAA,CAChC,CACE;;IAIV,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QACxE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE;QACxC,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,MAAM,UAAU;QAC5F,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,MAAM,UAAU,GAAG,eAAe,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEtG,QACE,CAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,GAAG,EAAE,IAAI;gBACT,cAAc,EAAE,CAAC,OAAO;AACxB,gBAAA,CAAC,IAAI,CAAC,QAAQ,IAAI,SAAS,GAAG,IAAI;AAClC,gBAAA,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI;AAC9B,gBAAA,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,IAAI;AAC7B,gBAAA,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,GAAG,IAAI;gBAC/B,YAAY,EAAE,IAAI,CAAC,SAAS;AAC7B,aAAA,EACD,IAAI,EAAE,IAAI,CAAC,UAAU,EACrB,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,EAElC,IAAI,CAAC,OAAO,KACX,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,SAAS,EAAE,IAAI,CAAC,QAAQ,EACxB,UAAU,EAAE,IAAI,CAAC,QAAQ,EACzB,KAAK,EAAE,IAAI,CAAC,SAAS,GACrB,CACH,EACA,OAAO,IAAI,6DAAM,KAAK,EAAC,MAAM,EAAA,EAAE,IAAI,CAAC,IAAI,CAAQ,EAChD,YAAY,KACX,CAAA,CAAA,YAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,IAAI,CAAC,QAAQ,EACxB,UAAU,EAAE,IAAI,CAAC,QAAQ,EACzB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAA,CACrB,CACH,EACA,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,oBAAoB,EAAE,EACxD,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAQ,CACD;;;;;;;;","names":[],"sources":["src/components/dropi-button/dropi-button.css?tag=dropi-button&encapsulation=shadow","src/components/dropi-button/dropi-button.tsx"],"sourcesContent":[":host {\n display: inline-block;\n border: 0;\n}\n\n:host([full-width]) {\n display: flex;\n width: 100%;\n}\n:host([full-width]) .btn {\n width: 100%;\n}\n\n*, *::before, *::after { box-sizing: border-box; }\n\n.btn {\n all: unset;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--Size-1, 4px);\n border-radius: var(--Border-2, 8px);\n font-weight: var(--font-weight-bold);\n min-width: 33px;\n line-height: 110%;\n cursor: pointer;\n white-space: nowrap;\n transition:\n background 0.25s ease,\n color 0.25s ease,\n border-color 0.25s ease,\n transform 0.25s ease;\n}\n\n.btn:active {\n transition: transform 0.01s ease-out;\n transform: scale(0.98);\n}\n\n.btn:hover:not(:active) {\n transform: scale(1.01);\n}\n\n.btn.without-text {\n gap: 0;\n}\n\n/* ── Sizes ─────────────────────────────────────────────────── */\n.btn.large { padding: var(--Size-4, 16px); font-size: var(--Size-4, 16px); height: 48px; }\n.btn.normal { padding: var(--Size-3, 12px); font-size: var(--font-size-s, 12px); height: 40px; }\n.btn.small { padding: var(--Size-2, 8px); font-size: var(--font-size-s, 12px); height: 29px; }\n\n/* ── Disabled / Loading ─────────────────────────────────────── */\n.btn.disabled,\n.btn.loading {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ══════════════════════════════════════════════════════════════\n PRIMARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.primary.default { background: var(--Primary-Primary-500, #f49a3d); color: var(--Neutral-White, #ffffff); }\n.btn.primary.default:hover { background: var(--Primary-Primary-600, #e58017); }\n\n.btn.primary.success { background: var(--Success-Success-500, #0abb87); color: var(--Neutral-White, #ffffff); }\n.btn.primary.success:hover { background: var(--Success-Success-600, #09aa7b); }\n\n.btn.primary.info { background: var(--Info-Info-500, #50a5f1); color: var(--Neutral-White, #ffffff); }\n.btn.primary.info:hover { background: var(--Info-Info-600, #4996db); }\n\n.btn.primary.error { background: var(--Error-Error-500, #f46a6b); color: var(--Neutral-White, #ffffff); }\n.btn.primary.error:hover { background: var(--Error-Error-600, #de6061); }\n\n.btn.primary.warning { background: var(--Warning-Warning-500, #f1b44c); color: var(--Neutral-White, #ffffff); }\n.btn.primary.warning:hover { background: var(--Warning-Warning-600, #dba445); }\n\n.btn.primary.legacy { background: var(--Secondary-Secondary-500, #008dbf); color: var(--Neutral-White, #ffffff); }\n.btn.primary.legacy:hover { background: var(--Secondary-Secondary-600, #007199); }\n\n/* Disabled primary */\n.btn.primary.disabled.default { background: var(--Primary-Primary-300, #f2bc85); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.success { background: var(--Success-Success-300, #5bd1af); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.info { background: var(--Info-Info-300, #8ac3f6); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.error { background: var(--Error-Error-300, #f89b9c); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.warning { background: var(--Warning-Warning-300, #f6cd87); color: var(--Neutral-White, #ffffff); }\n.btn.primary.disabled.legacy { background: var(--Secondary-Secondary-300, #62bad9); color: var(--Neutral-White, #ffffff); }\n\n/* ══════════════════════════════════════════════════════════════\n SECONDARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.secondary {\n background: var(--Neutral-White, #ffffff);\n border: 1px solid;\n}\n\n.btn.secondary.default { border-color: var(--Primary-Primary-500, #f49a3d); color: var(--Primary-Primary-500, #f49a3d); }\n.btn.secondary.default:hover { color: var(--Primary-Primary-600, #e58017); border-color: var(--Primary-Primary-600, #e58017); }\n\n.btn.secondary.success { border-color: var(--Success-Success-500, #0abb87); color: var(--Success-Success-500, #0abb87); }\n.btn.secondary.success:hover { color: var(--Success-Success-600, #09aa7b); border-color: var(--Success-Success-600, #09aa7b); }\n\n.btn.secondary.info { border-color: var(--Info-Info-500, #50a5f1); color: var(--Info-Info-500, #50a5f1); }\n.btn.secondary.info:hover { color: var(--Info-Info-600, #4996db); border-color: var(--Info-Info-600, #4996db); }\n\n.btn.secondary.error { border-color: var(--Error-Error-500, #f46a6b); color: var(--Error-Error-500, #f46a6b); }\n.btn.secondary.error:hover { color: var(--Error-Error-600, #de6061); border-color: var(--Error-Error-600, #de6061); }\n\n.btn.secondary.warning { border-color: var(--Warning-Warning-500, #f1b44c); color: var(--Warning-Warning-500, #f1b44c); }\n.btn.secondary.warning:hover { color: var(--Warning-Warning-600, #dba445); border-color: var(--Warning-Warning-600, #dba445); }\n\n.btn.secondary.legacy { border-color: var(--Secondary-Secondary-500, #008dbf); color: var(--Secondary-Secondary-500, #008dbf); }\n.btn.secondary.legacy:hover { color: var(--Secondary-Secondary-600, #007199); border-color: var(--Secondary-Secondary-600, #007199); }\n\n/* Disabled secondary */\n.btn.secondary.disabled.default { border-color: var(--Primary-Primary-300, #f2bc85); color: var(--Primary-Primary-300, #f2bc85); }\n.btn.secondary.disabled.success { border-color: var(--Success-Success-300, #5bd1af); color: var(--Success-Success-300, #5bd1af); }\n.btn.secondary.disabled.info { border-color: var(--Info-Info-300, #8ac3f6); color: var(--Info-Info-300, #8ac3f6); }\n.btn.secondary.disabled.error { border-color: var(--Error-Error-300, #f89b9c); color: var(--Error-Error-300, #f89b9c); }\n.btn.secondary.disabled.warning { border-color: var(--Warning-Warning-300, #f6cd87); color: var(--Warning-Warning-300, #f6cd87); }\n.btn.secondary.disabled.legacy { border-color: var(--Secondary-Secondary-300, #62bad9); color: var(--Secondary-Secondary-300, #62bad9); }\n\n/* ══════════════════════════════════════════════════════════════\n TERTIARY severity\n═══════════════════════════════════════════════════════════════ */\n.btn.tertiary { background: none; border: none; }\n\n.btn.tertiary.default,\n.btn.tertiary.legacy {\n border: none !important;\n box-shadow: none !important;\n color: var(--Gray-Gray-500, #69738c);\n}\n.btn.tertiary.default:hover,\n.btn.tertiary.legacy:hover {\n background: var(--Gray-Gray-50, #f5f6f8);\n box-shadow: none !important;\n color: var(--Gray-Gray-600, #475066);\n}\n\n.btn.tertiary.success { color: var(--Success-Success-500, #0abb87); }\n.btn.tertiary.success:hover { background: var(--Success-Success-50, #e7f8f3); }\n\n.btn.tertiary.info { color: var(--Info-Info-500, #50a5f1); }\n.btn.tertiary.info:hover { background: var(--Info-Info-50, #eef6fe); }\n\n.btn.tertiary.error { color: var(--Error-Error-500, #f46a6b); }\n.btn.tertiary.error:hover { background: var(--Error-Error-50, #fef0f0); }\n\n.btn.tertiary.warning { color: var(--Warning-Warning-500, #f1b44c); }\n.btn.tertiary.warning:hover { background: var(--Warning-Warning-50, #fef8ed); }\n\n.btn.tertiary.dropdown {\n color: var(--Gray-Gray-500, #69738c);\n font-weight: var(--font-weight-regular);\n font-size: var(--font-size-s);\n background: transparent;\n}\n\n/* Disabled tertiary */\n.btn.tertiary.disabled.default,\n.btn.tertiary.disabled.legacy {\n border: none !important;\n color: var(--Gray-Gray-400, #858ea6);\n}\n.btn.tertiary.disabled.success { color: var(--Success-Success-300, #5bd1af); }\n.btn.tertiary.disabled.info { color: var(--Info-Info-300, #8ac3f6); }\n.btn.tertiary.disabled.error { color: var(--Error-Error-300, #f89b9c); }\n.btn.tertiary.disabled.warning { color: var(--Warning-Warning-300, #f6cd87); }\n\n/* ── Loading spinner ─────────────────────────────────────────── */\n.spin {\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n","import { Component, Prop, Event, EventEmitter, AttachInternals, h } from '@stencil/core';\n\nexport type ButtonType = 'legacy' | 'default' | 'success' | 'info' | 'error' | 'warning' | 'dropdown' | 'default-light';\nexport type ButtonSeverity = 'primary' | 'secondary' | 'tertiary';\nexport type ButtonSize = 'large' | 'normal' | 'small';\nexport type ButtonState = 'default' | 'disabled' | 'loading';\nexport type ButtonNativeType = 'button' | 'submit' | 'reset';\n\n\n/**\n * @component dropi-button\n * Primary action button with multiple types, severities, sizes and states.\n * Supports pre/post icons and a loading spinner.\n */\n@Component({\n tag: 'dropi-button',\n styleUrl: 'dropi-button.css',\n shadow: true,\n formAssociated: true,\n})\nexport class DropiButton {\n @AttachInternals() internals: ElementInternals;\n\n /** Visual color palette */\n @Prop() type: ButtonType = 'default';\n /** Primary (filled) | Secondary (outlined) | Tertiary (ghost) */\n @Prop() severity: ButtonSeverity = 'primary';\n /** Button size */\n @Prop() size: ButtonSize = 'normal';\n /** Button state */\n @Prop() state: ButtonState = 'default';\n /** Full width button */\n @Prop({ reflect: true }) fullWidth: boolean = false;\n /** Icon name to show before the text */\n @Prop() preIcon: string = '';\n /** Icon name to show after the text */\n @Prop() postIcon: string = '';\n /** Custom icon color override */\n @Prop() customIconColor: string = '';\n /** Button label */\n @Prop() text: string = '';\n /** Native HTML button type (submit, reset, button) */\n @Prop() nativeType: ButtonNativeType = 'button';\n\n\n /** Emitted on click (not emitted when disabled or loading) */\n @Event() dropiClick: EventEmitter<MouseEvent>;\n\n private readonly colorMap: Record<string, string> = {\n default: 'Primary-Primary-',\n success: 'Success-Success-',\n error: 'Error-Error-',\n info: 'Info-Info-',\n legacy: 'Secondary-Secondary-',\n warning: 'Warning-Warning-',\n dropdown: 'Gray-Gray-',\n 'default-light': 'Gray-Gray-',\n };\n\n private get iconSize(): string {\n if (this.size === 'large') return '24px';\n if (this.size === 'small') return '16px';\n return '18px';\n }\n\n private get color(): string {\n const intensity = this.state === 'disabled' ? '300' : '500';\n return (this.colorMap[this.type] ?? 'Primary-Primary-') + intensity;\n }\n\n private get fontColor(): string {\n if (this.severity === 'tertiary') {\n return this.type === 'default' || this.type === 'legacy' ? 'Gray-Gray-500' : this.color;\n }\n if (this.severity === 'secondary') return this.color;\n return 'Neutral-White';\n }\n\n private handleClick(e: MouseEvent) {\n if (this.state !== 'disabled' && this.state !== 'loading') {\n this.dropiClick.emit(e);\n if (this.nativeType === 'submit') {\n this.internals.form?.requestSubmit();\n } else if (this.nativeType === 'reset') {\n this.internals.form?.reset();\n }\n }\n }\n\n\n private renderLoadingSpinner() {\n return (\n <svg\n class=\"spin\"\n width={this.iconSize}\n height={this.iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z\"\n fill={`var(--${this.fontColor})`}\n />\n </svg>\n );\n }\n\n render() {\n const isDisabled = this.state === 'disabled' || this.state === 'loading';\n const hasText = (this.text ?? '') !== '';\n const showPostIcon = (this.postIcon ?? '') !== '' || (this.type ?? 'default') === 'dropdown';\n const dropdownIcon = (this.type ?? 'default') === 'dropdown' ? 'Dropdown-down' : (this.postIcon ?? '');\n\n return (\n <button\n class={{\n btn: true,\n 'without-text': !hasText,\n [this.severity ?? 'primary']: true,\n [this.type ?? 'default']: true,\n [this.size ?? 'normal']: true,\n [this.state ?? 'default']: true,\n 'full-width': this.fullWidth,\n }}\n type={this.nativeType}\n disabled={isDisabled}\n onClick={(e) => this.handleClick(e)}\n >\n {this.preIcon && (\n <dropi-icon\n name={this.preIcon}\n iconWidth={this.iconSize}\n iconHeight={this.iconSize}\n color={this.fontColor}\n />\n )}\n {hasText && <span class=\"text\">{this.text}</span>}\n {showPostIcon && (\n <dropi-icon\n name={dropdownIcon}\n iconWidth={this.iconSize}\n iconHeight={this.iconSize}\n color={this.fontColor}\n />\n )}\n {this.state === 'loading' && this.renderLoadingSpinner()}\n <slot />\n </button>\n );\n }\n}\n"],"version":3}
@@ -6,13 +6,29 @@ const DropiCheckbox = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  this.dropiChange = createEvent(this, "dropiChange", 7);
9
+ if (hostRef.$hostElement$["s-ei"]) {
10
+ this.internals = hostRef.$hostElement$["s-ei"];
11
+ }
12
+ else {
13
+ this.internals = hostRef.$hostElement$.attachInternals();
14
+ hostRef.$hostElement$["s-ei"] = this.internals;
15
+ }
9
16
  }
17
+ internals;
18
+ /** Name for native form submission */
19
+ name = '';
10
20
  /** Whether the checkbox is checked */
11
21
  checked = false;
12
22
  /** Whether the checkbox is disabled */
13
23
  disabled = false;
14
24
  /** Emitted when the checked state changes */
15
25
  dropiChange;
26
+ checkedChanged(val) {
27
+ this.internals.setFormValue(val ? 'on' : null);
28
+ }
29
+ componentWillLoad() {
30
+ this.internals.setFormValue(this.checked ? 'on' : null);
31
+ }
16
32
  changeState() {
17
33
  if (this.disabled)
18
34
  return;
@@ -20,14 +36,19 @@ const DropiCheckbox = class {
20
36
  this.dropiChange.emit(this.checked);
21
37
  }
22
38
  render() {
23
- return (h("div", { key: '071505574decbf6b138256f73affe101c01080ef', class: "container-dropi-checkbox", onClick: () => this.changeState() }, h("div", { key: '03e7ec24a87e22c4a5fe1d94cc4ca1fe349d6e6f', class: {
39
+ return (h("div", { key: '27fec5f03a48c19652c8ae01173dcbb6e3514693', class: "container-dropi-checkbox", onClick: () => this.changeState() }, h("div", { key: '243d07e4444c0dc149ff137258f9ddd58428c438', class: {
24
40
  check: true,
25
41
  isCheck: this.checked,
26
42
  noCheck: !this.checked,
27
43
  disabled: this.disabled,
28
- } }, h("svg", { key: 'c56f01268919995cc7aac0173edf44a01a62e13e', xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: '575f863c9e82e862ea7049bf633b0d86ba374bb2', d: "M20.5991 5.69251L9.08325 17.2075C9.00583 17.2852 8.91382 17.3469 8.8125 17.389C8.71118 17.4311 8.60255 17.4527 8.49283 17.4527C8.38312 17.4527 8.27449 17.4311 8.17317 17.389C8.07185 17.3469 7.97984 17.2852 7.90242 17.2075L3.44908 12.75C3.37166 12.6723 3.27965 12.6106 3.17833 12.5685C3.07701 12.5264 2.96838 12.5048 2.85867 12.5048C2.74896 12.5048 2.64032 12.5264 2.53901 12.5685C2.43769 12.6106 2.34568 12.6723 2.26825 12.75C2.19052 12.8274 2.12884 12.9194 2.08676 13.0208C2.04467 13.1221 2.02301 13.2307 2.02301 13.3404C2.02301 13.4501 2.04467 13.5588 2.08676 13.6601C2.12884 13.7614 2.19052 13.8534 2.26825 13.9308L6.72325 18.385C7.19321 18.8541 7.83008 19.1175 8.49408 19.1175C9.15809 19.1175 9.79496 18.8541 10.2649 18.385L21.7799 6.87251C21.8575 6.7951 21.9191 6.70314 21.9611 6.6019C22.0031 6.50065 22.0247 6.39212 22.0247 6.28251C22.0247 6.17289 22.0031 6.06436 21.9611 5.96312C21.9191 5.86188 21.8575 5.76992 21.7799 5.69251C21.7025 5.61478 21.6105 5.5531 21.5092 5.51101C21.4078 5.46893 21.2992 5.44727 21.1895 5.44727C21.0798 5.44727 20.9712 5.46893 20.8698 5.51101C20.7685 5.5531 20.6765 5.61478 20.5991 5.69251Z", fill: "#FFFFFF" })))));
44
+ } }, h("svg", { key: '7a1fd9c7b3fa575ec263fe5ad48fbc0294a79980', xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none" }, h("path", { key: 'e77e5cd40c71e542a045934641509e41a7cd4899', d: "M20.5991 5.69251L9.08325 17.2075C9.00583 17.2852 8.91382 17.3469 8.8125 17.389C8.71118 17.4311 8.60255 17.4527 8.49283 17.4527C8.38312 17.4527 8.27449 17.4311 8.17317 17.389C8.07185 17.3469 7.97984 17.2852 7.90242 17.2075L3.44908 12.75C3.37166 12.6723 3.27965 12.6106 3.17833 12.5685C3.07701 12.5264 2.96838 12.5048 2.85867 12.5048C2.74896 12.5048 2.64032 12.5264 2.53901 12.5685C2.43769 12.6106 2.34568 12.6723 2.26825 12.75C2.19052 12.8274 2.12884 12.9194 2.08676 13.0208C2.04467 13.1221 2.02301 13.2307 2.02301 13.3404C2.02301 13.4501 2.04467 13.5588 2.08676 13.6601C2.12884 13.7614 2.19052 13.8534 2.26825 13.9308L6.72325 18.385C7.19321 18.8541 7.83008 19.1175 8.49408 19.1175C9.15809 19.1175 9.79496 18.8541 10.2649 18.385L21.7799 6.87251C21.8575 6.7951 21.9191 6.70314 21.9611 6.6019C22.0031 6.50065 22.0247 6.39212 22.0247 6.28251C22.0247 6.17289 22.0031 6.06436 21.9611 5.96312C21.9191 5.86188 21.8575 5.76992 21.7799 5.69251C21.7025 5.61478 21.6105 5.5531 21.5092 5.51101C21.4078 5.46893 21.2992 5.44727 21.1895 5.44727C21.0798 5.44727 20.9712 5.46893 20.8698 5.51101C20.7685 5.5531 20.6765 5.61478 20.5991 5.69251Z", fill: "#FFFFFF" })))));
29
45
  }
30
46
  static get formAssociated() { return true; }
47
+ static get watchers() { return {
48
+ "checked": [{
49
+ "checkedChanged": 0
50
+ }]
51
+ }; }
31
52
  };
32
53
  DropiCheckbox.style = dropiCheckboxCss();
33
54
 
@@ -1 +1 @@
1
- {"file":"dropi-checkbox.entry.js","mappings":";;AAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,8qBAA8qB,CAAC;;MCalsB,aAAa,GAAA,MAAA;;;;;;IAEgB,OAAO,GAAY,KAAK;;IAEvC,QAAQ,GAAY,KAAK;;AAGzC,IAAA,WAAW;IAEZ,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;IAGrC,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,0BAA0B,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EACrE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,EAAA,EAED,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAA,EAC5F,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,CAAC,EAAC,smCAAsmC,EACxmC,IAAI,EAAC,SAAS,EAAA,CACd,CACE,CACF,CACF;;;;;;;;","names":[],"sources":["src/components/dropi-checkbox/dropi-checkbox.css?tag=dropi-checkbox&encapsulation=shadow","src/components/dropi-checkbox/dropi-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n.container-dropi-checkbox {\n display: inline-block;\n}\n\n.check {\n width: 20px;\n height: 20px;\n border-radius: var(--Border-1, 4px);\n cursor: pointer;\n transition:\n background-color 0.3s ease-in-out,\n border-style 0.3s ease-in-out;\n}\n\n.noCheck {\n border-style: solid;\n border-width: 2px;\n border-color: var(--Gray-Gray-200, #c3c9d9);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.noCheck svg {\n visibility: hidden;\n}\n\n.isCheck {\n display: flex;\n background-color: var(--Primary-Primary-500, #f49a3d);\n justify-content: center;\n align-items: center;\n}\n\n.disabled {\n background-color: var(--Gray-Gray-50, #f7f8fa);\n border-color: var(--Gray-Gray-100, #e6eaf2);\n cursor: not-allowed;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\n/**\n * @component dropi-checkbox\n * A styled checkbox that emits change events.\n * Supports form association via native `<input type=\"checkbox\">` internals.\n */\n@Component({\n tag: 'dropi-checkbox',\n styleUrl: 'dropi-checkbox.css',\n shadow: true,\n formAssociated: true,\n})\nexport class DropiCheckbox {\n /** Whether the checkbox is checked */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n /** Whether the checkbox is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Emitted when the checked state changes */\n @Event() dropiChange: EventEmitter<boolean>;\n\n private changeState() {\n if (this.disabled) return;\n this.checked = !this.checked;\n this.dropiChange.emit(this.checked);\n }\n\n render() {\n return (\n <div class=\"container-dropi-checkbox\" onClick={() => this.changeState()}>\n <div\n class={{\n check: true,\n isCheck: this.checked,\n noCheck: !this.checked,\n disabled: this.disabled,\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M20.5991 5.69251L9.08325 17.2075C9.00583 17.2852 8.91382 17.3469 8.8125 17.389C8.71118 17.4311 8.60255 17.4527 8.49283 17.4527C8.38312 17.4527 8.27449 17.4311 8.17317 17.389C8.07185 17.3469 7.97984 17.2852 7.90242 17.2075L3.44908 12.75C3.37166 12.6723 3.27965 12.6106 3.17833 12.5685C3.07701 12.5264 2.96838 12.5048 2.85867 12.5048C2.74896 12.5048 2.64032 12.5264 2.53901 12.5685C2.43769 12.6106 2.34568 12.6723 2.26825 12.75C2.19052 12.8274 2.12884 12.9194 2.08676 13.0208C2.04467 13.1221 2.02301 13.2307 2.02301 13.3404C2.02301 13.4501 2.04467 13.5588 2.08676 13.6601C2.12884 13.7614 2.19052 13.8534 2.26825 13.9308L6.72325 18.385C7.19321 18.8541 7.83008 19.1175 8.49408 19.1175C9.15809 19.1175 9.79496 18.8541 10.2649 18.385L21.7799 6.87251C21.8575 6.7951 21.9191 6.70314 21.9611 6.6019C22.0031 6.50065 22.0247 6.39212 22.0247 6.28251C22.0247 6.17289 22.0031 6.06436 21.9611 5.96312C21.9191 5.86188 21.8575 5.76992 21.7799 5.69251C21.7025 5.61478 21.6105 5.5531 21.5092 5.51101C21.4078 5.46893 21.2992 5.44727 21.1895 5.44727C21.0798 5.44727 20.9712 5.46893 20.8698 5.51101C20.7685 5.5531 20.6765 5.61478 20.5991 5.69251Z\"\n fill=\"#FFFFFF\"\n />\n </svg>\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"dropi-checkbox.entry.js","mappings":";;AAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,8qBAA8qB,CAAC;;MCalsB,aAAa,GAAA,MAAA;;;;;;;;;;;;AACL,IAAA,SAAS;;IAGH,IAAI,GAAW,EAAE;;IAGF,OAAO,GAAY,KAAK;;IAEvC,QAAQ,GAAY,KAAK;;AAGzC,IAAA,WAAW;AAGpB,IAAA,cAAc,CAAC,GAAY,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;;IAGhD,iBAAiB,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;;IAIjD,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;QAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;IAGrC,MAAM,GAAA;AACJ,QAAA,QACE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,0BAA0B,EAAC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,EAAA,EACrE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,EAAA,EAED,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAA,EAC5F,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,CAAC,EAAC,smCAAsmC,EACxmC,IAAI,EAAC,SAAS,EAAA,CACd,CACE,CACF,CACF;;;;;;;;;;;;;","names":[],"sources":["src/components/dropi-checkbox/dropi-checkbox.css?tag=dropi-checkbox&encapsulation=shadow","src/components/dropi-checkbox/dropi-checkbox.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n.container-dropi-checkbox {\n display: inline-block;\n}\n\n.check {\n width: 20px;\n height: 20px;\n border-radius: var(--Border-1, 4px);\n cursor: pointer;\n transition:\n background-color 0.3s ease-in-out,\n border-style 0.3s ease-in-out;\n}\n\n.noCheck {\n border-style: solid;\n border-width: 2px;\n border-color: var(--Gray-Gray-200, #c3c9d9);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.noCheck svg {\n visibility: hidden;\n}\n\n.isCheck {\n display: flex;\n background-color: var(--Primary-Primary-500, #f49a3d);\n justify-content: center;\n align-items: center;\n}\n\n.disabled {\n background-color: var(--Gray-Gray-50, #f7f8fa);\n border-color: var(--Gray-Gray-100, #e6eaf2);\n cursor: not-allowed;\n}\n","import { Component, Prop, Event, EventEmitter, AttachInternals, Watch, h } from '@stencil/core';\n\n/**\n * @component dropi-checkbox\n * A styled checkbox that emits change events.\n * Supports form association via native `<input type=\"checkbox\">` internals.\n */\n@Component({\n tag: 'dropi-checkbox',\n styleUrl: 'dropi-checkbox.css',\n shadow: true,\n formAssociated: true,\n})\nexport class DropiCheckbox {\n @AttachInternals() internals: ElementInternals;\n\n /** Name for native form submission */\n @Prop({ reflect: true }) name: string = '';\n\n /** Whether the checkbox is checked */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n /** Whether the checkbox is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Emitted when the checked state changes */\n @Event() dropiChange: EventEmitter<boolean>;\n\n @Watch('checked')\n checkedChanged(val: boolean) {\n this.internals.setFormValue(val ? 'on' : null);\n }\n\n componentWillLoad() {\n this.internals.setFormValue(this.checked ? 'on' : null);\n }\n\n\n private changeState() {\n if (this.disabled) return;\n this.checked = !this.checked;\n this.dropiChange.emit(this.checked);\n }\n\n render() {\n return (\n <div class=\"container-dropi-checkbox\" onClick={() => this.changeState()}>\n <div\n class={{\n check: true,\n isCheck: this.checked,\n noCheck: !this.checked,\n disabled: this.disabled,\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M20.5991 5.69251L9.08325 17.2075C9.00583 17.2852 8.91382 17.3469 8.8125 17.389C8.71118 17.4311 8.60255 17.4527 8.49283 17.4527C8.38312 17.4527 8.27449 17.4311 8.17317 17.389C8.07185 17.3469 7.97984 17.2852 7.90242 17.2075L3.44908 12.75C3.37166 12.6723 3.27965 12.6106 3.17833 12.5685C3.07701 12.5264 2.96838 12.5048 2.85867 12.5048C2.74896 12.5048 2.64032 12.5264 2.53901 12.5685C2.43769 12.6106 2.34568 12.6723 2.26825 12.75C2.19052 12.8274 2.12884 12.9194 2.08676 13.0208C2.04467 13.1221 2.02301 13.2307 2.02301 13.3404C2.02301 13.4501 2.04467 13.5588 2.08676 13.6601C2.12884 13.7614 2.19052 13.8534 2.26825 13.9308L6.72325 18.385C7.19321 18.8541 7.83008 19.1175 8.49408 19.1175C9.15809 19.1175 9.79496 18.8541 10.2649 18.385L21.7799 6.87251C21.8575 6.7951 21.9191 6.70314 21.9611 6.6019C22.0031 6.50065 22.0247 6.39212 22.0247 6.28251C22.0247 6.17289 22.0031 6.06436 21.9611 5.96312C21.9191 5.86188 21.8575 5.76992 21.7799 5.69251C21.7025 5.61478 21.6105 5.5531 21.5092 5.51101C21.4078 5.46893 21.2992 5.44727 21.1895 5.44727C21.0798 5.44727 20.9712 5.46893 20.8698 5.51101C20.7685 5.5531 20.6765 5.61478 20.5991 5.69251Z\"\n fill=\"#FFFFFF\"\n />\n </svg>\n </div>\n </div>\n );\n }\n}\n"],"version":3}