UNPKG

directus-brazilian-pix

Version:

Brazilian PIX key extensions for Directus - Complete PIX key input with type selection and validation (CPF, CNPJ, Phone, Email)

2 lines (1 loc) 21.3 kB
import{defineInterface as e,defineDisplay as t}from"@directus/extensions-sdk";import{defineComponent as a,ref as n,computed as l,watch as o,onMounted as r,resolveComponent as i,createElementBlock as u,openBlock as c,createElementVNode as d,createCommentVNode as s,normalizeClass as p,createVNode as v,withCtx as y,toDisplayString as f,createSlots as m,createTextVNode as h,resolveDirective as g,withDirectives as x,createBlock as b,withModifiers as k}from"vue";var _=(e=>(e.CPF="cpf",e.CNPJ="cnpj",e.PHONE="phone",e.EMAIL="email",e.EVP="evp",e))(_||{});const w={cpf:"CPF",cnpj:"CNPJ",phone:"Telefone",email:"E-mail",evp:"EVP (Aleatoria)"},P={cpf:"person",cnpj:"business",phone:"phone",email:"email",evp:"key"},C={cpf:"123.456.789-01",cnpj:"12.345.678/0001-90",phone:"+55 (11) 99999-9999",email:"exemplo@email.com",evp:"123e4567-e89b-12d3-a456-426614174000"},I=[11,12,13,14,15,16,17,18,19,21,22,24,27,28,31,32,33,34,35,37,38,41,42,43,44,45,46,47,48,49,51,53,54,55,61,62,64,63,65,66,67,68,69,71,73,74,75,77,79,81,87,82,83,84,85,88,86,89,91,93,94,92,97,95,96,98,99];function $(e){const t=e.replace(/\D/g,""),a=t.startsWith("55")&&(12===t.length||13===t.length);return{local:a?t.slice(2):t,hasCountryCode:a}}function A(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function N(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e.trim())}function T(e){if(!e)return null;const t=e.trim();if(A(t))return"email";if(N(t))return"evp";const a=t.replace(/\D/g,"");if((12===a.length||13===a.length)&&a.startsWith("55"))return"phone";if(11===a.length){const e=Number.parseInt(a.substring(0,2),10);return I.includes(e)&&"9"===a.charAt(2)?"phone":"cpf"}return 10===a.length?"phone":14===a.length?"cnpj":null}function B(e,t){switch(t){case"cpf":return function(e){const t=e.replace(/\D/g,"");return 0===t.length?"":t.length<=3?t:t.length<=6?t.replace(/(\d{3})(\d{1,3})/,"$1.$2"):t.length<=9?t.replace(/(\d{3})(\d{3})(\d{1,3})/,"$1.$2.$3"):t.slice(0,11).replace(/(\d{3})(\d{3})(\d{3})(\d{1,2})/,"$1.$2.$3-$4")}(e);case"cnpj":return function(e){const t=e.replace(/\D/g,"");return 0===t.length?"":t.length<=2?t:t.length<=5?t.replace(/(\d{2})(\d{1,3})/,"$1.$2"):t.length<=8?t.replace(/(\d{2})(\d{3})(\d{1,3})/,"$1.$2.$3"):t.length<=12?t.replace(/(\d{2})(\d{3})(\d{3})(\d{1,4})/,"$1.$2.$3/$4"):t.slice(0,14).replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{1,2})/,"$1.$2.$3/$4-$5")}(e);case"phone":return function(e){const{local:t,hasCountryCode:a}=$(e);if(0===t.length)return"";let n=t;return n=t.length<=2?`(${t}`:t.length<=6?t.replace(/(\d{2})(\d{1,4})/,"($1) $2"):t.length<=10?t.replace(/(\d{2})(\d{4})(\d{1,4})/,"($1) $2-$3"):t.slice(0,11).replace(/(\d{2})(\d{5})(\d{1,4})/,"($1) $2-$3"),a?`+55 ${n}`:n}(e);case"email":case"evp":return e.trim().toLowerCase();default:return e}}function E(e,t){if(!e)return!1;switch(t){case"cpf":return function(e){const t=e.replace(/\D/g,"");if(11!==t.length||/^(\d)\1{10}$/.test(t))return!1;let a=0;for(let e=0;e<9;e++)a+=Number.parseInt(t.charAt(e),10)*(10-e);let n=11-a%11;n>9&&(n=0),a=0;for(let e=0;e<10;e++)a+=Number.parseInt(t.charAt(e),10)*(11-e);let l=11-a%11;return l>9&&(l=0),n===Number.parseInt(t.charAt(9),10)&&l===Number.parseInt(t.charAt(10),10)}(e);case"cnpj":return function(e){const t=e.replace(/\D/g,"");if(14!==t.length||/^(\d)\1{13}$/.test(t))return!1;let a=t.length-2,n=t.substring(0,a);const l=t.substring(a);let o=0,r=a-7;for(let e=a;e>=1;e--)o+=Number.parseInt(n.charAt(a-e),10)*r--,r<2&&(r=9);let i=o%11<2?0:11-o%11;if(i!==Number.parseInt(l.charAt(0),10))return!1;a+=1,n=t.substring(0,a),o=0,r=a-7;for(let e=a;e>=1;e--)o+=Number.parseInt(n.charAt(a-e),10)*r--,r<2&&(r=9);return i=o%11<2?0:11-o%11,i===Number.parseInt(l.charAt(1),10)}(e);case"phone":return function(e){const{local:t}=$(e);if(t.length<10||t.length>11)return!1;const a=Number.parseInt(t.substring(0,2),10);if(!I.includes(a))return!1;const n=Number.parseInt(t.charAt(2),10);return!(11===t.length&&9!==n||10===t.length&&![2,3,4,5,6,7,8,9].includes(n))}(e);case"email":return A(e);case"evp":return N(e);default:return!1}}const X={class:"pix-key-container"},q={key:0,class:"pix-type-selector"},D={class:"type-selection"},j={class:"type-option"},S={class:"pix-key-input"},F={key:0,class:"error-message"},K={key:1,class:"success-message"},z={key:2,class:"auto-detect-indicator"};var J=a({__name:"interface",props:{value:{default:null},placeholder:{default:"Digite ou cole sua chave PIX"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},autoDetectType:{type:Boolean,default:!0},auto_detect_type:{type:Boolean},allowedTypes:{},allowed_types:{},defaultType:{},default_type:{},validateKey:{type:Boolean,default:!0},validate_key:{type:Boolean},showTypeSelector:{type:Boolean,default:!0},show_type_selector:{type:Boolean}},emits:["input"],setup(e,{emit:t}){const a=Object.values(_);function g(e){return"string"!=typeof e?null:a.includes(e)?e:null}function x(e){if(!e)return null;try{const t=JSON.parse(e);if(t&&"object"==typeof t&&"key"in t){return{key:"string"==typeof t.key?t.key:"",type:g(t.type)}}}catch{}return{key:e,type:null}}const b=e,k=t,I=n(null),$=n(!1),A=n(""),N=n(!1),J=n(!1),V=l((()=>b.showTypeSelector??b.show_type_selector??!0)),O=l((()=>b.autoDetectType??b.auto_detect_type??!0)),L=l((()=>b.validateKey??b.validate_key??!0)),Q=l((()=>{const e=function(e){let t=[];if(Array.isArray(e))t=e;else if("string"==typeof e&&e.trim().length>0)try{const a=JSON.parse(e);Array.isArray(a)&&(t=a)}catch{t=e.split(",").map((e=>e.trim())).filter(Boolean)}return[...new Set(t.map((e=>g(e))).filter((e=>null!==e)))]}(b.allowedTypes??b.allowed_types);return e.length>0?e:a})),R=l((()=>{const e=g(b.defaultType??b.default_type);return e&&Q.value.includes(e)?e:Q.value[0]??_.CPF})),H=l((()=>Q.value.map((e=>({value:e,label:w[e],icon:P[e]}))))),U=l((()=>I.value?C[I.value]:b.placeholder)),W=l((()=>{if(!b.value)return"";const e=x(b.value);return e?.key?I.value?B(e.key,I.value):e.key:""})),M=()=>{switch(I.value){case _.CPF:return 14;case _.CNPJ:return 18;case _.PHONE:return 19;case _.EMAIL:return 254;case _.EVP:return 36;default:return 255}},Y=e=>{return $.value=!1,A.value="",N.value=!1,!e&&b.required?($.value=!0,A.value="Chave PIX e obrigatoria",!1):!e||(I.value?L.value&&!E(e,I.value)?($.value=!0,A.value=`Chave PIX ${t=I.value,w[t]} invalida`,!1):(L.value&&(N.value=!0),!0):($.value=!0,A.value="Selecione o tipo de chave PIX",!1));var t},G=e=>{if(!O.value)return;if(!(!I.value||J.value||!V.value))return;const t=T(e);t&&Q.value.includes(t)&&(I.value=t,J.value=!0)},Z=e=>{if(J.value&&(J.value=!1),!e||""===e.trim())return k("input",null),$.value=!1,A.value="",void(N.value=!1);G(e);const t=I.value?B(e,I.value):e.trim();Y(t);const a={key:(I.value?function(e,t){switch(t){case"cpf":case"cnpj":case"phone":return e.replace(/\D/g,"");case"email":case"evp":return e.trim().toLowerCase();default:return e}}(t,I.value):t)||null,type:I.value??null};k("input",JSON.stringify(a))},ee=()=>{const e=x(b.value);if(!e?.key)return;const t=I.value?B(e.key,I.value):e.key;Y(t)},te=e=>{I.value=e,J.value=!1},ae=e=>{if(!I.value||![_.CPF,_.CNPJ,_.PHONE].includes(I.value))return;new Set(["Backspace","Delete","Tab","Escape","Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"]).has(e.key)||(e.ctrlKey||e.metaKey)&&["a","c","v","x","z"].includes(e.key.toLowerCase())||/^\d$/.test(e.key)||e.preventDefault()};return o(I,(e=>{if(!e)return;const t=x(b.value);if(!t?.key)return;const a=B(t.key,e);Y(a)})),o((()=>b.value),(e=>{if(!e)return $.value=!1,A.value="",void(N.value=!1);const t=x(e);if(!t?.key)return;const a=t.type;a&&Q.value.includes(a)?I.value=a:G(t.key),I.value&&Q.value.includes(I.value)||(I.value=R.value);const n=I.value?B(t.key,I.value):t.key;Y(n)}),{immediate:!0}),o(Q,(()=>{I.value&&Q.value.includes(I.value)||(I.value=R.value)}),{immediate:!0}),r((()=>{b.value||I.value&&Q.value.includes(I.value)||(I.value=R.value)})),(e,t)=>{const a=i("v-icon"),n=i("v-select"),l=i("v-input");return c(),u("div",X,[d("div",{class:p(["pix-key-input-group",{"without-selector":!V.value}])},[V.value?(c(),u("div",q,[v(n,{modelValue:I.value,"onUpdate:modelValue":[t[0]||(t[0]=e=>I.value=e),te],items:H.value,"item-text":"label","item-value":"value",disabled:b.disabled,placeholder:"Tipo de chave",class:"type-dropdown"},{selection:y((({item:e})=>[d("div",D,[v(a,{name:e.icon,small:""},null,8,["name"]),d("span",null,f(e.label),1)])])),item:y((({item:e})=>[d("div",j,[v(a,{name:e.icon,small:""},null,8,["name"]),d("span",null,f(e.label),1)])])),_:1},8,["modelValue","items","disabled"])])):s("v-if",!0),d("div",S,[v(l,{"model-value":W.value,placeholder:U.value,disabled:b.disabled,class:p({"has-error":$.value}),"onUpdate:modelValue":Z,onBlur:ee,onKeydown:ae,maxlength:M()},m({prepend:y((()=>[v(a,{name:I.value?P[I.value]:"qr_code",class:"key-type-icon"},null,8,["name"])])),_:2},[$.value?{name:"append",fn:y((()=>[v(a,{name:"error",class:"error-icon"})])),key:"0"}:N.value&&b.value?{name:"append",fn:y((()=>[v(a,{name:"check_circle",class:"success-icon"})])),key:"1"}:void 0]),1032,["model-value","placeholder","disabled","class","maxlength"])])],2),$.value&&A.value?(c(),u("div",F,[v(a,{name:"error"}),h(" "+f(A.value),1)])):N.value&&b.value?(c(),u("div",K,f("Chave PIX valida"),1)):s("v-if",!0),O.value&&J.value&&I.value?(c(),u("div",z,[v(a,{name:"auto_awesome",small:""}),t[1]||(t[1]=d("span",null,"Tipo detectado automaticamente",-1))])):s("v-if",!0)])}}}),V=[],O=[];function L(e,t){if(e&&"undefined"!=typeof document){var a,n=!0===t.prepend?"prepend":"append",l=!0===t.singleTag,o="string"==typeof t.container?document.querySelector(t.container):document.getElementsByTagName("head")[0];if(l){var r=V.indexOf(o);-1===r&&(r=V.push(o)-1,O[r]={}),a=O[r]&&O[r][n]?O[r][n]:O[r][n]=i()}else a=i();65279===e.charCodeAt(0)&&(e=e.substring(1)),a.styleSheet?a.styleSheet.cssText+=e:a.appendChild(document.createTextNode(e))}function i(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),t.attributes)for(var a=Object.keys(t.attributes),l=0;l<a.length;l++)e.setAttribute(a[l],t.attributes[a[l]]);var r="prepend"===n?"afterbegin":"beforeend";return o.insertAdjacentElement(r,e),e}}L("\n.pix-key-container[data-v-e0e4d7a4] {\n\twidth: 100%;\n}\n.pix-key-input-group[data-v-e0e4d7a4] {\n\tdisplay: flex;\n\tgap: 8px;\n\talign-items: flex-start;\n}\n.pix-key-input-group.without-selector .pix-key-input[data-v-e0e4d7a4] {\n\twidth: 100%;\n}\n.pix-type-selector[data-v-e0e4d7a4] {\n\tmin-width: 160px;\n\tflex-shrink: 0;\n}\n.pix-key-input[data-v-e0e4d7a4] {\n\tflex: 1;\n}\n.type-dropdown[data-v-e0e4d7a4] {\n\tborder-radius: 6px 0 0 6px;\n}\n.type-selection[data-v-e0e4d7a4],\n.type-option[data-v-e0e4d7a4] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n}\n.type-selection .v-icon[data-v-e0e4d7a4],\n.type-option .v-icon[data-v-e0e4d7a4],\n.key-type-icon[data-v-e0e4d7a4] {\n\tcolor: var(--foreground-subdued);\n}\n.has-error[data-v-e0e4d7a4] {\n\tborder-color: var(--danger) !important;\n}\n.error-icon[data-v-e0e4d7a4] {\n\tcolor: var(--danger);\n}\n.success-icon[data-v-e0e4d7a4] {\n\tcolor: var(--success);\n}\n.error-message[data-v-e0e4d7a4],\n.success-message[data-v-e0e4d7a4] {\n\tfont-size: 12px;\n\tmargin-top: 4px;\n}\n.auto-detect-indicator[data-v-e0e4d7a4] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 6px;\n\tfont-size: 11px;\n\tcolor: var(--foreground-subdued);\n\tmargin-top: 4px;\n}\n@media (max-width: 600px) {\n.pix-key-input-group[data-v-e0e4d7a4] {\n\t\tflex-direction: column;\n\t\tgap: 12px;\n}\n.pix-type-selector[data-v-e0e4d7a4] {\n\t\tmin-width: unset;\n\t\twidth: 100%;\n}\n}\n",{});var Q=(e,t)=>{const a=e.__vccOpts||e;for(const[e,n]of t)a[e]=n;return a},R=e({id:"pix-key",name:"Brazilian PIX Key",description:"With type selection and validation (CPF, CNPJ, Phone, Email, EVP)",icon:"qr_code_2",component:Q(J,[["__scopeId","data-v-e0e4d7a4"]]),types:["string"],group:"standard",options:[{field:"placeholder",name:"Placeholder",type:"string",meta:{width:"half",interface:"input"},schema:{default_value:"Digite ou cole sua chave PIX"}},{field:"disabled",name:"Disabled",type:"boolean",meta:{width:"half",interface:"boolean"},schema:{default_value:!1}},{field:"required",name:"Required",type:"boolean",meta:{width:"half",interface:"boolean"},schema:{default_value:!1}},{field:"auto_detect_type",name:"Auto-detect PIX Key Type",type:"boolean",meta:{width:"half",interface:"boolean",note:"Automatically detect PIX key type based on input format"},schema:{default_value:!0}},{field:"allowed_types",name:"Allowed PIX Key Types",type:"json",meta:{width:"full",interface:"select-multiple-checkbox",options:{choices:[{text:"CPF",value:"cpf"},{text:"CNPJ",value:"cnpj"},{text:"Telefone",value:"phone"},{text:"E-mail",value:"email"},{text:"EVP (Aleatoria)",value:"evp"}]},note:"Select which PIX key types are allowed. Leave empty to allow all types."}},{field:"default_type",name:"Default PIX Key Type",type:"string",meta:{width:"half",interface:"select-dropdown",options:{choices:[{text:"CPF",value:"cpf"},{text:"CNPJ",value:"cnpj"},{text:"Telefone",value:"phone"},{text:"E-mail",value:"email"},{text:"EVP (Aleatoria)",value:"evp"}]},note:"Default PIX key type when creating new items"},schema:{default_value:"cpf"}},{field:"show_type_selector",name:"Show Type Selector",type:"boolean",meta:{width:"half",interface:"boolean",note:"Show or hide the PIX key type selector"},schema:{default_value:!0}},{field:"validate_key",name:"Validate Key Format",type:"boolean",meta:{width:"half",interface:"boolean",note:"Validar formato da chave"},schema:{default_value:!0}}]});const H={class:"pix-key-content"},U={key:0,class:"type-icon"},W={class:"pix-key-value"},M=["title"],Y={key:1,class:"no-value"},G={key:1,class:"pix-key-actions"},Z={key:0,class:"copy-success"},ee={class:"dialog-title"},te={class:"qr-code-container"},ae={class:"qr-code-placeholder"},ne={class:"pix-key-text"};var le=a({__name:"display",props:{value:{default:null},showTypeBadge:{type:Boolean,default:!0},show_type_badge:{type:Boolean},formatKey:{type:Boolean,default:!0},format_key:{type:Boolean},hideKeyPartial:{type:Boolean,default:!1},hide_key_partial:{type:Boolean},copyToClipboard:{type:Boolean,default:!0},copy_to_clipboard:{type:Boolean},showQrCode:{type:Boolean,default:!1},show_qr_code:{type:Boolean}},setup(e){const t=Object.values(_);function a(e){if(!e)return null;try{const n=JSON.parse(e);if(n&&"object"==typeof n&&"key"in n){const e="string"==typeof n.key?n.key:"";return{key:e,type:("string"!=typeof(a=n.type)?null:t.includes(a)?a:null)??T(e)}}}catch{}var a;return{key:e,type:T(e)}}const o=e,r=n(!1),m=n(!1),w=n(!1),C=l((()=>o.showTypeBadge??o.show_type_badge??!0)),I=l((()=>o.formatKey??o.format_key??!0)),$=l((()=>o.hideKeyPartial??o.hide_key_partial??!1)),A=l((()=>o.copyToClipboard??o.copy_to_clipboard??!0)),N=l((()=>o.showQrCode??o.show_qr_code??!1)),E=l((()=>a(o.value))),X=l((()=>E.value?.key||null)),q=l((()=>E.value?.type||null)),D=l((()=>A.value&&!!X.value)),j=l((()=>{if(!X.value)return null;let e=X.value;return I.value&&q.value&&(e=B(X.value,q.value)),$.value&&q.value&&[_.CPF,_.CNPJ].includes(q.value)&&(e=K(e,q.value)),e})),S=l((()=>r.value?"hourglass_empty":m.value?"check":"content_copy")),F=l((()=>r.value?"Copiando...":m.value?"Copiado!":"Copiar chave PIX")),K=(e,t)=>t===_.CPF?e.replace(/\d{3}\.\d{3}\.\d{3}/,"***.***.***"):t===_.CNPJ?e.replace(/\d{2}\.\d{3}\.\d{3}\/\d{4}/,"**.***.***/****"):e,z=async()=>{if(D.value&&X.value&&!r.value)try{if(r.value=!0,navigator.clipboard?.writeText)await navigator.clipboard.writeText(X.value);else{const e=document.createElement("textarea");e.value=X.value,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}m.value=!0,setTimeout((()=>{m.value=!1}),2e3)}catch(e){console.error("Failed to copy PIX key:",e)}finally{r.value=!1}};return(e,t)=>{const a=i("v-icon"),n=i("v-card-title"),l=i("v-card-text"),o=i("v-button"),r=i("v-card-actions"),_=i("v-card"),I=i("v-dialog"),$=g("tooltip");return c(),u("div",{class:p(["pix-key-display",{clickable:D.value}]),onClick:z},[d("div",H,[C.value&&q.value?(c(),u("div",U,[v(a,{name:(A=q.value,P[A]||"qr_code"),size:"16"},null,8,["name"])])):s("v-if",!0),d("div",W,[j.value?(c(),u("span",{key:0,title:D.value?"Clique para copiar":""},f(j.value),9,M)):(c(),u("span",Y,"—"))]),X.value&&(D.value||N.value)?(c(),u("div",G,[D.value?x((c(),b(a,{key:0,name:S.value,size:"16",class:"action-icon",onClick:k(z,["stop"])},null,8,["name"])),[[$,F.value]]):s("v-if",!0),N.value?x((c(),b(a,{key:1,name:"qr_code",size:"16",class:"action-icon",onClick:t[0]||(t[0]=k((e=>w.value=!0),["stop"]))},null,512)),[[$,"Gerar QR Code"]]):s("v-if",!0)])):s("v-if",!0)]),m.value?(c(),u("div",Z,[v(a,{name:"check",size:"12"}),t[4]||(t[4]=d("span",null,"Copiado!",-1))])):s("v-if",!0),v(I,{modelValue:w.value,"onUpdate:modelValue":t[2]||(t[2]=e=>w.value=e),onEsc:t[3]||(t[3]=e=>w.value=!1)},{default:y((()=>[v(_,null,{default:y((()=>[v(n,null,{default:y((()=>[d("div",ee,[v(a,{name:"qr_code"}),t[5]||(t[5]=d("span",null,"QR Code - Chave PIX",-1))])])),_:1}),v(l,null,{default:y((()=>[d("div",te,[d("div",ae,[v(a,{name:"qr_code",size:"120"}),t[6]||(t[6]=d("p",null,"QR Code seria gerado aqui",-1)),d("p",ne,f(X.value),1)])])])),_:1}),v(r,null,{default:y((()=>[v(o,{onClick:t[1]||(t[1]=e=>w.value=!1)},{default:y((()=>[...t[7]||(t[7]=[h("Fechar",-1)])])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue"])],2);var A}}});L("\n.pix-key-display[data-v-600430c7] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 8px;\n\tmax-width: 100%;\n\tposition: relative;\n}\n.pix-key-display.clickable[data-v-600430c7] {\n\tcursor: pointer;\n}\n.pix-key-content[data-v-600430c7] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tmin-width: 0;\n\tflex: 1;\n}\n.type-icon[data-v-600430c7] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: var(--foreground-subdued);\n\tflex-shrink: 0;\n}\n.pix-key-value[data-v-600430c7] {\n\tfont-family: var(--family-sans-serif);\n\tfont-size: 13px;\n\tmin-width: 0;\n\tflex: 1;\n\tcolor: var(--foreground);\n}\n.pix-key-value span[data-v-600430c7] {\n\tword-break: break-all;\n}\n.no-value[data-v-600430c7] {\n\tcolor: var(--foreground-subdued);\n\tfont-style: italic;\n}\n.pix-key-actions[data-v-600430c7] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tflex-shrink: 0;\n}\n.action-icon[data-v-600430c7] {\n\tcolor: var(--foreground-subdued);\n\tcursor: pointer;\n\ttransition: color 0.2s ease;\n}\n.action-icon[data-v-600430c7]:hover {\n\tcolor: var(--foreground);\n}\n.copy-success[data-v-600430c7] {\n\tposition: absolute;\n\ttop: -30px;\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 4px 8px;\n\tbackground: var(--background-normal-alt);\n\tcolor: var(--foreground);\n\tborder: 1px solid var(--border-normal);\n\tborder-radius: 4px;\n\tfont-size: 11px;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\tanimation: fadeInOut-600430c7 2s ease-in-out;\n}\n@keyframes fadeInOut-600430c7 {\n0%,\n\t100% {\n\t\topacity: 0;\n\t\ttransform: translateX(-50%) translateY(4px);\n}\n20%,\n\t80% {\n\t\topacity: 1;\n\t\ttransform: translateX(-50%) translateY(0);\n}\n}\n.dialog-title[data-v-600430c7] {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n}\n.qr-code-container[data-v-600430c7] {\n\tdisplay: flex;\n\tjustify-content: center;\n\tpadding: 20px;\n}\n.qr-code-placeholder[data-v-600430c7] {\n\ttext-align: center;\n\tcolor: var(--foreground-subdued);\n}\n.qr-code-placeholder p[data-v-600430c7] {\n\tmargin: 8px 0;\n}\n.pix-key-text[data-v-600430c7] {\n\tfont-family: var(--family-sans-serif);\n\tfont-size: 12px;\n\tbackground: var(--background-normal-alt);\n\tpadding: 8px;\n\tborder-radius: 4px;\n\tword-break: break-all;\n}\n@media (max-width: 600px) {\n.pix-key-content[data-v-600430c7] {\n\t\tflex-direction: column;\n\t\talign-items: flex-start;\n\t\tgap: 4px;\n}\n.type-icon[data-v-600430c7] {\n\t\talign-self: flex-start;\n}\n}\n",{});const oe=[R],re=[t({id:"brazilian-pix-key-display",name:"Brazilian PIX Key Display",description:"Display Brazilian PIX key with type badge and proper formatting",icon:"qr_code",component:Q(le,[["__scopeId","data-v-600430c7"]]),types:["string"],options:[{field:"show_type_badge",name:"Show Type Badge",type:"boolean",meta:{width:"half",interface:"boolean",note:"Display an icon showing the PIX key type (CPF, CNPJ, Phone, Email, EVP)"},schema:{default_value:!0}},{field:"format_key",name:"Format Key",type:"boolean",meta:{width:"half",interface:"boolean",note:"Apply formatting to CPF, CNPJ, and phone numbers"},schema:{default_value:!0}},{field:"hide_key_partial",name:"Hide Partial Key",type:"boolean",meta:{width:"half",interface:"boolean",note:"Hide part of the key for privacy (CPF and CNPJ only)"},schema:{default_value:!1}},{field:"copy_to_clipboard",name:"Enable Copy to Clipboard",type:"boolean",meta:{width:"half",interface:"boolean",note:"Allow users to copy the PIX key by clicking on it"},schema:{default_value:!0}},{field:"show_qr_code",name:"Show QR Code Option",type:"boolean",meta:{width:"half",interface:"boolean",note:"Show a button to generate QR code for the PIX key"},schema:{default_value:!1}}]})],ie=[],ue=[],ce=[],de=[],se=[];export{re as displays,oe as interfaces,ie as layouts,ue as modules,se as operations,ce as panels,de as themes};