bromcom-ui-next 0.1.25 → 0.1.26
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.
- package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tabs-trigger.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
- package/dist/bromcom-ui/p-6bc82dd4.entry.js +2 -0
- package/dist/bromcom-ui/p-6bc82dd4.entry.js.map +1 -0
- package/dist/bromcom-ui/p-bd293ffd.entry.js +2 -0
- package/dist/bromcom-ui/p-bd293ffd.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-c709842a.entry.js → p-d3206345.entry.js} +2 -2
- package/dist/bromcom-ui/p-d3206345.entry.js.map +1 -0
- package/dist/cjs/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-button_8.cjs.entry.js +1414 -0
- package/dist/cjs/bcm-button_8.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +3 -3
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tabs-trigger.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-tabs.cjs.entry.js +2 -2
- package/dist/cjs/bcm-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/bromcom-ui.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/tabs/tabs-trigger.component.js +2 -2
- package/dist/collection/components/tabs/tabs-trigger.component.js.map +1 -1
- package/dist/collection/components/tabs/tabs-trigger.css +1 -1
- package/dist/collection/components/tabs/tabs.component.js +2 -2
- package/dist/collection/components/tabs/tabs.component.js.map +1 -1
- package/dist/components/bcm-button.js +1 -1
- package/dist/components/bcm-dropdown.js +1 -1
- package/dist/components/bcm-pop-confirm.js +1 -1
- package/dist/components/bcm-tabs-trigger.js +3 -3
- package/dist/components/bcm-tabs-trigger.js.map +1 -1
- package/dist/components/bcm-tabs.js +2 -2
- package/dist/components/bcm-tabs.js.map +1 -1
- package/dist/components/{p-e6quW4es.js → p-BdGAZ8M0.js} +3 -3
- package/dist/components/{p-e6quW4es.js.map → p-BdGAZ8M0.js.map} +1 -1
- package/dist/esm/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.js.map +1 -0
- package/dist/esm/bcm-button_8.entry.js +1405 -0
- package/dist/esm/bcm-button_8.entry.js.map +1 -0
- package/dist/esm/bcm-tabs-trigger.entry.js +3 -3
- package/dist/esm/bcm-tabs-trigger.entry.js.map +1 -1
- package/dist/esm/bcm-tabs.entry.js +2 -2
- package/dist/esm/bcm-tabs.entry.js.map +1 -1
- package/dist/esm/bromcom-ui.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/package.json +1 -1
- package/dist/bromcom-ui/bcm-button.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-drawer.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-dropdown-item.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-input.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-shortcut.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-text.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/p-00dc393e.entry.js +0 -2
- package/dist/bromcom-ui/p-00dc393e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-0421d64a.entry.js +0 -2
- package/dist/bromcom-ui/p-0421d64a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-06656239.entry.js +0 -2
- package/dist/bromcom-ui/p-06656239.entry.js.map +0 -1
- package/dist/bromcom-ui/p-48c554fc.entry.js +0 -2
- package/dist/bromcom-ui/p-48c554fc.entry.js.map +0 -1
- package/dist/bromcom-ui/p-b37f2434.entry.js +0 -2
- package/dist/bromcom-ui/p-b37f2434.entry.js.map +0 -1
- package/dist/bromcom-ui/p-c709842a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-e989b918.entry.js +0 -2
- package/dist/bromcom-ui/p-e989b918.entry.js.map +0 -1
- package/dist/bromcom-ui/p-ed796a79.entry.js +0 -2
- package/dist/bromcom-ui/p-ed796a79.entry.js.map +0 -1
- package/dist/bromcom-ui/p-edd01d0d.entry.js +0 -2
- package/dist/bromcom-ui/p-edd01d0d.entry.js.map +0 -1
- package/dist/bromcom-ui/p-f34bfa88.entry.js +0 -2
- package/dist/bromcom-ui/p-f34bfa88.entry.js.map +0 -1
- package/dist/cjs/bcm-button.cjs.entry.js +0 -316
- package/dist/cjs/bcm-button.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-button.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-drawer.cjs.entry.js +0 -206
- package/dist/cjs/bcm-drawer.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-drawer.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js +0 -61
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-dropdown-item.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-dropdown.cjs.entry.js +0 -54
- package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-dropdown.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-input.cjs.entry.js +0 -315
- package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-input.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-linked.cjs.entry.js +0 -343
- package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-linked.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-shortcut.cjs.entry.js +0 -50
- package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-shortcut.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-text.cjs.entry.js +0 -124
- package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-text.entry.cjs.js.map +0 -1
- package/dist/esm/bcm-button.entry.js +0 -314
- package/dist/esm/bcm-button.entry.js.map +0 -1
- package/dist/esm/bcm-drawer.entry.js +0 -204
- package/dist/esm/bcm-drawer.entry.js.map +0 -1
- package/dist/esm/bcm-dropdown-item.entry.js +0 -59
- package/dist/esm/bcm-dropdown-item.entry.js.map +0 -1
- package/dist/esm/bcm-dropdown.entry.js +0 -52
- package/dist/esm/bcm-dropdown.entry.js.map +0 -1
- package/dist/esm/bcm-input.entry.js +0 -313
- package/dist/esm/bcm-input.entry.js.map +0 -1
- package/dist/esm/bcm-linked.entry.js +0 -341
- package/dist/esm/bcm-linked.entry.js.map +0 -1
- package/dist/esm/bcm-shortcut.entry.js +0 -48
- package/dist/esm/bcm-shortcut.entry.js.map +0 -1
- package/dist/esm/bcm-text.entry.js +0 -122
- package/dist/esm/bcm-text.entry.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as e,h as i,H as o,a as r}from"./p-B84DzIAh.js";import{t as a}from"./p-CEcVC0yX.js";import{c as s}from"./p-BfTCfPZ1.js";import{g as n}from"./p-IBjzkjef.js";import{s as l,g as c,d}from"./p-CUvT12BL.js";import{b as h,c as b,o as u,f,s as m}from"./p-DxMLMJ3r.js";const p={save:{text:"Save",status:"success",icon:"far fa-save",iconPosition:"prefix",kind:"primary"},ok:{text:"Ok",status:"success",icon:"far fa-check",iconPosition:"prefix"},new:{text:"New",status:"success",icon:"far fa-plus",iconPosition:"prefix"},add:{text:"Add",status:"success",icon:"far fa-plus",iconPosition:"prefix"},create:{text:"Create",status:"success",icon:"far fa-plus",iconPosition:"prefix"},prev:{text:"Prev",status:"default",icon:"far fa-arrow-left",iconPosition:"prefix"},next:{text:"Next",status:"default",icon:"far fa-arrow-right",iconPosition:"suffix"},apply:{text:"Apply",status:"default",icon:"far fa-check-circle",iconPosition:"prefix"},submit:{text:"Submit",status:"default",icon:"far fa-save",iconPosition:"prefix"},send:{text:"Send",status:"success",icon:"far fa-paper-plane",iconPosition:"prefix"},delete:{text:"Delete",status:"error",icon:"far fa-trash",iconPosition:"prefix"},cancel:{text:"Cancel",status:"error",icon:"far fa-times",iconPosition:"prefix"},decline:{text:"Decline",status:"error",icon:"far fa-ban",iconPosition:"prefix"},close:{text:"Close",status:"error",icon:"far fa-times-circle",iconPosition:"prefix"},archive:{text:"Archive",status:"error",icon:"far fa-folder-open",iconPosition:"prefix"},remove:{text:"Remove",status:"error",icon:"far fa-minus-circle",iconPosition:"prefix"},edit:{text:"Edit",status:"default",icon:"far fa-edit",iconPosition:"prefix"},export:{text:"Export",status:"default",icon:"far fa-sign-out",iconPosition:"prefix"},import:{text:"Import",status:"default",icon:"far fa-sign-in",iconPosition:"prefix"},filter:{text:"Filter",status:"default",icon:"far fa-filter",iconPosition:"prefix"},update:{text:"Update",status:"default",icon:"far fa-sync",iconPosition:"prefix"},reset:{text:"Reset",status:"default",icon:"far fa-sync",iconPosition:"prefix"},download:{text:"Download",status:"default",icon:"far fa-download",iconPosition:"prefix"}};const x=".relative{position:relative}:host{display:inline-flex;height:-moz-fit-content;height:fit-content;position:relative;width:-moz-fit-content;width:fit-content}:host([full-width]){width:100%}:host([position=first]) .bcm-button{border-bottom-right-radius:0;border-top-right-radius:0}:host([position=middle]) .bcm-button{border-radius:0}:host([position=last]) .bcm-button{border-bottom-left-radius:0;border-top-left-radius:0}:host([position=first].orientation-vertical) .bcm-button{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--bcm-ui-border-radius,4px);border-top-right-radius:var(--bcm-ui-border-radius,4px)}:host([position=middle].orientation-vertical) .bcm-button{border-radius:0}:host([position=last].orientation-vertical) .bcm-button{border-bottom-left-radius:var(--bcm-ui-border-radius,4px);border-bottom-right-radius:var(--bcm-ui-border-radius,4px);border-top-left-radius:0;border-top-right-radius:0}.static{position:static}.inline-flex{display:inline-flex}.min-h-10{min-height:2.5rem}.min-h-6{min-height:1.5rem}.min-h-8{min-height:2rem}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-final-border-color\\]{border-color:var(--bcm-final-border-color)}.border-color-disabled{border-color:var(--bcm-ui-color-border-disabled)}.bg-\\[--bcm-final-bg-color\\]{background-color:var(--bcm-final-bg-color)}.bg-\\[--bcm-ui-color-background-disabled-default\\]{background-color:var(--bcm-ui-color-background-disabled-default)}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-px{padding-bottom:1px;padding-top:1px}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.leading-none{line-height:1}.text-\\[--bcm-final-text-color\\]{color:var(--bcm-final-text-color)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-0{outline-width:0}.hover\\:bg-\\[--bcm-final-hover-bg-color\\]:hover{background-color:var(--bcm-final-hover-bg-color)}.focus-visible\\:ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.active\\:bg-\\[--bcm-final-active-bg-color\\]:active{background-color:var(--bcm-final-active-bg-color)}.flex{display:flex}.max-h-64{max-height:16rem}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.absolute{position:absolute}.z-\\[9999\\]{z-index:9999}.mx-auto{margin-left:auto;margin-right:auto}.hidden{display:none}.size-6{height:1.5rem;width:1.5rem}.h-2{height:.5rem}.w-4{width:1rem}.max-w-80{max-width:20rem}.max-w-96{max-width:24rem}.flex-1{flex:1 1 0%}.flex-row{flex-direction:row}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.text-pretty{text-wrap:pretty}.rounded-\\[--popover-radius\\]{border-radius:var(--popover-radius)}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.font-sans{font-family:Inter,sans-serif}.text-size-7{font-size:var(--bcm-ui-font-size-7,20px);line-height:var(--bcm-ui-line-height-7,28px)}.text-size-inherit{font-size:inherit;line-height:inherit}.font-semibold{font-weight:600}.\\!text-color-header{color:var(--bcm-ui-color-text-header)!important}.text-\\[--text-color\\]{color:var(--text-color)}.shadow,.shadow-2{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2{--tw-shadow:var(--bcm-ui-box-shadow-2);--tw-shadow-colored:var(--bcm-ui-box-shadow-2)}.hover\\:bg-gray-100:hover{background-color:oklch(.967 .003 264.542)}";const g=class{constructor(i){t(this,i);this.bcmClick=e(this,"bcmClick",1);this.bcmFocus=e(this,"bcmFocus",1);this.bcmBlur=e(this,"bcmBlur",1);this.kind="primary";this.size="medium";this.status="default";this.iconPosition="prefix";this.iconOnly=false;this.fullWidth=false;this.type="button";this.loading=false;this.disabled=false;this.active=false;this.handleClick=t=>{if(!this.disabled&&!this.loading){this.bcmClick.emit(t)}};this.handleFocus=t=>{this.bcmFocus.emit(t)};this.handleBlur=t=>{this.bcmBlur.emit(t)};this.buttonClass=a({base:"bcm-button appearance-none inline-flex items-center justify-center border border-solid rounded outline-0",variants:{size:{small:"text-size-4 py-px px-2 min-h-6",medium:"text-size-5 py-0.5 px-3 min-h-8",large:"text-size-6 py-1 px-3 min-h-10"},kind:{primary:"kind-primary",ghost:"kind-ghost",text:"kind-text",outline:"kind-outline"},fullWidth:{true:"full-width w-full"},disabled:{true:"disabled cursor-not-allowed bg-[--bcm-ui-color-background-disabled-default] text-color-disabled border-color-disabled",false:["cursor-pointer","bg-[--bcm-final-bg-color] text-[--bcm-final-text-color] border-[--bcm-final-border-color]","hover:bg-[--bcm-final-hover-bg-color]","active:bg-[--bcm-final-active-bg-color]","focus-visible:ring"]},loading:{true:""},position:{first:"position-first",middle:"position-middle",last:"position-last"}},defaultVariants:{size:"medium",kind:"primary",fullWidth:false,disabled:false,loading:false}},{twMerge:false})}get buttonText(){return this.text||(this.variant?p[this.variant].text:"")}get buttonIcon(){if(this.variant&&p[this.variant].icon){return{icon:p[this.variant].icon,position:p[this.variant].iconPosition||"prefix"}}return{icon:this.icon,position:this.iconPosition}}get buttonStatus(){return this.variant?p[this.variant].status:this.status}get buttonStyles(){const t=this.buttonStatus==="default"?"primary":this.buttonStatus;const e={primary:{"--bcm-button-bg":`var(--bcm-ui-color-background-${t}-default)`,"--bcm-button-bg-hover":`var(--bcm-ui-color-background-${t}-hover)`,"--bcm-button-bg-active":`var(--bcm-ui-color-background-${t}-active)`,"--bcm-button-border":"transparent","--bcm-button-text":"var(--bcm-ui-color-text-base)"},outline:{"--bcm-button-bg":"var(--bcm-ui-color-background-default-default)","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":`var(--bcm-ui-color-border-${this.buttonStatus})`,"--bcm-button-text":`var(--bcm-ui-color-text-${this.buttonStatus})`},ghost:{"--bcm-button-bg":"transparent","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":"transparent","--bcm-button-text":`var(--bcm-ui-color-text-${this.buttonStatus})`},text:{"--bcm-button-bg":"transparent","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":"transparent","--bcm-button-text":`var(--bcm-ui-color-text-${t})`}};const i=e[this.kind];const o={"--bcm-final-text-color":`var(--bcm-button-custom-text-color, ${i["--bcm-button-text"]})`,"--bcm-final-border-color":`var(--bcm-button-custom-border-color, ${i["--bcm-button-border"]})`,"--bcm-final-bg-color":`var(--bcm-button-custom-bg-color, ${i["--bcm-button-bg"]})`,"--bcm-final-hover-bg-color":`var(--bcm-button-custom-hover-bg-color, ${i["--bcm-button-bg-hover"]})`,"--bcm-final-active-bg-color":`var(--bcm-button-custom-active-bg-color, ${i["--bcm-button-bg-active"]})`};return Object.assign(Object.assign({},i),o)}render(){const{icon:t,position:e}=this.buttonIcon;return i(o,{key:"33e438220fdb261ff87289f8dcbaa7e0601d73c1"},i("button",{key:"4fb4d22a44bac12b3780f9570c734f60fdaba788",type:this.type,disabled:this.disabled||this.loading,"aria-label":this.label,"aria-expanded":this.expanded,"aria-controls":this.controls,"aria-disabled":this.disabled,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,style:this.buttonStyles,class:this.buttonClass({size:this.size,kind:this.kind,fullWidth:this.fullWidth,disabled:this.disabled,loading:this.loading,position:this.position})},this.loading&&i("slot",{key:"fa8dcbcba338f94700842fd0482d0261c9a1d3e3",name:"loading"}),i("span",{key:"345162b4ad0034d5081dee0438ceeefe4930ecfb"},i("slot",{key:"c65c9aa07fd2f159426192fc6239c394ee6ec58d",name:"prefix"},e==="prefix"&&t&&i("i",{key:"c94e32a5d308ba3ad98ac10239fc9a155f47e2ac",class:" leading-none "+t}))),i("slot",{key:"171402bb9251492c7e5b0cf572fb0e2ae62a6add"},this.buttonText),i("span",{key:"ae3c5a885029b3d4c54e5ca21ac22adffa26b013"},i("slot",{key:"f80819d122624bb279d19822278c8e651dec27c7",name:"suffix"},e==="suffix"&&t&&i("i",{key:"69631e99a8b7f47dd1d00984f582ec6e7b5433e8",class:" leading-none "+t})))))}};g.style=x;const w=".contents{display:contents}:host{display:contents}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.flex{display:flex}.hidden{display:none}.h-6{height:1.5rem}.w-6{width:1.5rem}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y:-100%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x:100%}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.overflow-y-auto{overflow-y:auto}.border-none{border-style:none}.bg-color-base{background-color:var(--bcm-ui-color-background-base-default)}.bg-color-default{background-color:var(--bcm-ui-color-background-default-default)}.bg-color-transparent{background-color:var(--bcm-ui-color-background-transparent-default)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-default{color:var(--bcm-ui-color-text-default)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-color-default-hover:hover{background-color:var(--bcm-ui-color-background-default-hover)}.active\\:bg-color-default-active:active{background-color:var(--bcm-ui-color-background-default-active)}";const v=class{constructor(i){t(this,i);this.bcmOpen=e(this,"bcmOpen",7);this.bcmClose=e(this,"bcmClose",7);this.bcmBeforeOpen=e(this,"bcmBeforeOpen",7);this.bcmBeforeClose=e(this,"bcmBeforeClose",7);this.open=false;this.size="medium";this.position="right";this.fullWidth=false;this.noHeader=false;this.drawerClass=a({slots:{backdrop:"fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300",wrapper:"bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col",header:"flex justify-between items-center bg-color-default text-color-default",title:"font-semibold m-0 text-size-6",closeButton:"text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active",content:"overflow-y-auto flex-grow"},variants:{open:{true:{backdrop:"opacity-100 visible"},false:{backdrop:"opacity-0 invisible"}},position:{left:{wrapper:"top-0 left-0 bottom-0"},right:{wrapper:"top-0 right-0 bottom-0"},top:{wrapper:"top-0 left-0 right-0"},bottom:{wrapper:"bottom-0 left-0 right-0"}},size:{small:{header:"py-3 px-4",content:"p-4"},medium:{header:"py-3 px-4",content:"p-4"},large:{header:"py-3 px-4",content:"p-4"}},noHeader:{true:{header:"hidden"}}},compoundVariants:[{open:true,position:["left","right"],class:{wrapper:"translate-x-0"}},{open:true,position:["top","bottom"],class:{wrapper:"translate-y-0"}},{open:false,position:"left",class:{wrapper:"-translate-x-full"}},{open:false,position:"right",class:{wrapper:"translate-x-full"}},{open:false,position:"top",class:{wrapper:"-translate-y-full"}},{open:false,position:"bottom",class:{wrapper:"translate-y-full"}}]})}handleOpenChange(t){if(t){document.body.style.overflow="hidden";this.bcmOpen.emit()}else{document.body.style.overflow="";this.bcmClose.emit()}}handleKeyDown(t){if(t.key==="Escape"&&this.open){this.hide()}}async show(){const t=this.bcmBeforeOpen.emit();if(!t.defaultPrevented){this.open=true}}async hide(){const t=this.bcmBeforeClose.emit();if(!t.defaultPrevented){this.open=false}}disconnectedCallback(){document.body.style.overflow=""}getWrapperStyle(){const t={};if(this.fullWidth){if(this.position==="left"||this.position==="right"){t.width="100vw"}else{t.height="100vh"}return t}if(this.position==="left"||this.position==="right"){switch(this.size){case"small":t.width="320px";break;case"medium":t.width="480px";break;case"large":t.width="1064px";break}}else{switch(this.size){case"small":t.height="40vh";break;case"medium":t.height="60vh";break;case"large":t.height="90vh";break}}return t}render(){const{backdrop:t,wrapper:e,header:o,title:r,closeButton:a,content:s}=this.drawerClass({open:this.open,position:this.position,size:this.size,noHeader:this.noHeader});return i("div",{key:"44379905f1499a16d625ac4d1ff5e89fc6367d46",part:"base"},i("div",{key:"bc53e5322a61cd4af0691905c509d4c5fb765939",part:"backdrop",class:t(),onClick:()=>this.hide()}),i("div",{key:"d5a666671d24b2f3b55b7462b5218a3e11358982",part:"wrapper",class:e(),style:this.getWrapperStyle(),role:"dialog","aria-modal":"true","aria-hidden":!this.open?"true":"false","aria-label":this.headerText},i("div",{key:"5124de9d7fa8f3aa7267f0998f4c4f98f3ebbc4a",part:"header",class:o()},i("h2",{key:"8aa4b971efa9fe0fafa1cfb94f0b6b96f21f2f15",part:"title",class:r()},i("slot",{key:"949ae8f65d13e9e1c973c16a9f90205ac7e7042f",name:"header"},this.headerText)),i("button",{key:"a0c42761ee859e87dee5c267ea7245dde4fb8756",part:"close-button",class:a(),onClick:()=>this.hide(),"aria-label":"Close"},i("bcm-icon",{key:"2df273d63da93eda2280759a909906fe4ae0c493",name:"fa-solid fa-xmark"}))),i("div",{key:"b2532537d10f9aa0dcfa2fca8ac806577363e05b",part:"content",class:s()},i("slot",{key:"bfec5cff35a7bf7bf1d9801ba89559501e6f301f"})),i("div",{key:"4d44fdba62c74fd5c893c5296f998754228cf961",part:"footer"},i("slot",{key:"fd0a58127fd2f0ba0955cef629e55700142a8f32",name:"footer"}))))}get host(){return r(this)}static get watchers(){return{open:["handleOpenChange"]}}};v.style=w;const y=".visible{visibility:visible}.hidden{display:none}.static{position:static}.flex{display:flex}.max-h-64{max-height:16rem}.w-full{width:100%}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.items-center{align-items:center}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.outline{outline-style:solid}";const k=class{constructor(i){t(this,i);this.bcmDropdownChange=e(this,"bcmDropdownChange",1);this.isReady=false;this.dropdownItems=[];this.dropdownClass=a({base:"dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto"});this.handleSlotChange=()=>{this.dropdownItems=Array.from(this.host.querySelectorAll("bcm-dropdown-item"));if(this.dropdownItems.length===0){console.warn("No dropdown items found in dropdown component")}}}componentDidLoad(){const t=this.host.shadowRoot.querySelector("bcm-button");if(t){this.buttonRef=t;this.isReady=true}}handleDropdownItemChange(t){var e;const{element:i,selected:o}=t===null||t===void 0?void 0:t.detail;(e=this.dropdownItems)===null||e===void 0?void 0:e.forEach((t=>{if(t!=i){t.selected=false}}));this.bcmDropdownChange.emit({element:i,selected:o})}render(){return i(o,{key:"6aaff12c84d38c32df5bc8dccb83421afb315eef"},i("bcm-button",{key:"5612cef7303a6b839531e125c895a4e7b8d32282",kind:"outline"},i("span",{key:"951418845cb1ec71fe6dc5bbbc33c49934447640",part:"text"},this.text)),this.isReady&&i("bcm-linked",{key:"d594359d6a9b7c673307c6a92e6d69cc47be3e1a",targetElement:this.buttonRef},i("div",{key:"9badba5b1e99af6a5d58b02e849cb0923e49dfd8",part:"dropdown-container",class:this.dropdownClass()},i("slot",{key:"c8191f215600170475d514bb6b4056047e6442d2",onSlotchange:this.handleSlotChange}))))}get host(){return r(this)}};k.style=y;const z=".flex{display:flex}:host{display:inline-block;width:100%}::slotted([slot=left-content]){align-items:center;display:flex;flex-direction:row;gap:8px}::slotted([slot=right-content]){align-items:center;display:flex;flex-direction:row;gap:8px}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.w-full{width:100%}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.gap-2{gap:.5rem}.text-pretty{text-wrap:pretty}.bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]{background-color:var(--bcm-ui-color-background-base-active)}.bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]{background-color:var(--bcm-ui-color-background-palette-red-default)}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-active)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-hover\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-hover)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]:hover{background-color:var(--bcm-ui-color-background-palette-red-default)}";const C=class{constructor(i){t(this,i);this.bcmDropDownItemChange=e(this,"bcmDropDownItemChange",1);this.selected=false;this.error=false;this.disabled=false;this.dropdownItemClass=a({base:"dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color",variants:{selected:{true:"bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]",false:"hover:bg-[var(--bcm-ui-color-background-base-hover)]"},error:{true:"bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]",false:""},disabled:{true:"",false:""}},defaultVariants:{selected:false,error:false,disabled:false}},{twMerge:false})}handleClick(){this.selected=true;this.bcmDropDownItemChange.emit({element:this.host,selected:this.selected})}render(){var t;return i("div",{key:"69beaac4c9225bc7803b4002f1543c18e76e36cc","aria-checked":this.selected,class:this.dropdownItemClass({selected:this.selected,error:this.error}),onClick:()=>this.handleClick()},i("slot",{key:"ca2712023285689a1774b5869d982e87d3add46a",name:"left-content"},this.icon&&i("bcm-icon",{key:"bef7483a47c823ed746c39ae37acc3a2360f0c59","icon-name":this.icon})),i("div",{key:"a9bdddf97d4a4e07e601599a4adb11354227dd0f",class:"flex flex-row text-pretty w-full"},i("slot",{key:"51c488350d2daabc32fc9693211a4e89d8cce16f"},this.text)),i("slot",{key:"9bf3f8b4affa41ea72f181a073aea8cd56f8a2df",name:"right-content"},(t=this.rightIcons)===null||t===void 0?void 0:t.map((t=>i("bcm-icon",{"icon-name":t})))))}get host(){return r(this)}};C.style=z;const P=(t,e)=>{var i;const o=(i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector(`slot[name="${e}"]`);if(!o)return false;const r=o.assignedNodes();return r.length>0};const j='.visible{visibility:visible}.collapse{visibility:collapse}.relative{position:relative}.block{display:block}.table{display:table}.contents{display:contents}.hidden{display:none}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.underline{text-decoration-line:underline}.outline{outline-style:solid}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid oklch(92.8% .006 264.531deg);box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:oklch(70.7% .022 261.325deg);opacity:1}input::placeholder,textarea::placeholder{color:oklch(70.7% .022 261.325deg);opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}:host{display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.mt-1{margin-top:.25rem}.flex{display:flex}.h-full{height:100%}.w-6{width:1.5rem}.w-full{width:100%}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.appearance-none{appearance:none}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.text-ellipsis{text-overflow:ellipsis}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border-0{border-width:0}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.border-\\[--bcm-ui-color-border-error\\]{border-color:var(--bcm-ui-color-border-error)}.border-\\[--bcm-ui-color-border-info\\]{border-color:var(--bcm-ui-color-border-info)}.border-\\[--bcm-ui-color-border-success\\]{border-color:var(--bcm-ui-color-border-success)}.border-\\[--bcm-ui-color-border-warning\\]{border-color:var(--bcm-ui-color-border-warning)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-transparent{background-color:transparent}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-px{padding-bottom:1px;padding-top:1px}.font-sans{font-family:Inter,sans-serif}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.leading-6{line-height:1.5rem}.text-\\[--bcm-ui-color-text-caption\\]{color:var(--bcm-ui-color-text-caption)}.text-\\[--bcm-ui-color-text-default\\]{color:var(--bcm-ui-color-text-default)}.text-\\[--bcm-ui-color-text-disabled\\]{color:var(--bcm-ui-color-text-disabled)}.text-\\[--bcm-ui-color-text-error\\]{color:var(--bcm-ui-color-text-error)}.text-\\[--bcm-ui-color-text-info\\]{color:var(--bcm-ui-color-text-info)}.text-\\[--bcm-ui-color-text-success\\]{color:var(--bcm-ui-color-text-success)}.text-\\[--bcm-ui-color-text-warning\\]{color:var(--bcm-ui-color-text-warning)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-label{color:var(--bcm-ui-color-text-label)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-0{outline-width:0}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.placeholder\\:font-normal::placeholder{font-weight:400}.placeholder\\:text-\\[--bcm-ui-color-text-placeholder\\]::placeholder{color:var(--bcm-ui-color-text-placeholder)}.hover\\:border-\\[--bcm-ui-color-border-error\\]:hover{border-color:var(--bcm-ui-color-border-error)}.hover\\:border-\\[--bcm-ui-color-border-info\\]:hover{border-color:var(--bcm-ui-color-border-info)}.hover\\:border-\\[--bcm-ui-color-border-primary\\]:hover{border-color:var(--bcm-ui-color-border-primary)}.hover\\:border-\\[--bcm-ui-color-border-success\\]:hover{border-color:var(--bcm-ui-color-border-success)}.hover\\:border-\\[--bcm-ui-color-border-warning\\]:hover{border-color:var(--bcm-ui-color-border-warning)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-error\\]:has(:focus){border-color:var(--bcm-ui-color-border-error)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-info\\]:has(:focus){border-color:var(--bcm-ui-color-border-info)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-primary\\]:has(:focus){border-color:var(--bcm-ui-color-border-primary)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-success\\]:has(:focus){border-color:var(--bcm-ui-color-border-success)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-warning\\]:has(:focus){border-color:var(--bcm-ui-color-border-warning)}.\\[\\&\\:\\:-webkit-inner-spin-button\\]\\:appearance-none::-webkit-inner-spin-button{appearance:none}';const I=class{constructor(o){t(this,o);this.bcmInput=e(this,"bcmInput",1);this.bcmChange=e(this,"bcmChange",1);this.bcmFocus=e(this,"bcmFocus",1);this.bcmBlur=e(this,"bcmBlur",1);this.bcmKeyDown=e(this,"bcmKeyDown",1);this.bcmKeyUp=e(this,"bcmKeyUp",1);this.isFocused=false;this.isValid=true;this.internalStatus="default";this.isPasswordVisible=false;this.value="";this._id=n("input");this.size="medium";this.status="default";this.fullWidth=false;this.type="text";this.disabled=false;this.readonly=false;this.required=false;this.useNativeValidation=true;this.onInput=t=>{const e=t.target;this.value=e.value;this.bcmInput.emit(t);this.validateInput()};this.onChange=t=>{this.bcmChange.emit(t)};this.onFocus=t=>{this.isFocused=true;this.bcmFocus.emit(t)};this.onBlur=t=>{this.isFocused=false;this.bcmBlur.emit(t);this.validateInput()};this.onKeyDown=t=>{this.bcmKeyDown.emit(t)};this.onKeyUp=t=>{this.bcmKeyUp.emit(t)};this.styleClass=a({slots:{base:["bcm-input bcm-input__container","bg-[--bcm-ui-color-background-base-default]","text-[--bcm-ui-color-text-default]","border border-solid rounded","flex items-center justify-between","transition-colors duration-200","px-2"],inputClass:["input","w-full flex-1","border-0 outline-0 bg-transparent","appearance-none text-ellipsis","text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal","font-sans antialiased font-medium","px-1","[appearance:textfield][&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"]},variants:{size:{small:{base:"",inputClass:"text-size-4 py-px"},medium:{base:"",inputClass:"text-size-5 leading-6 py-1"},large:{base:"",inputClass:"text-size-6 py-2"}},status:{default:{base:["border-[--bcm-ui-color-border-default]","hover:border-[--bcm-ui-color-border-primary]","has-[:focus]:border-[--bcm-ui-color-border-primary]"]},error:{base:["border-[--bcm-ui-color-border-error]","hover:border-[--bcm-ui-color-border-error]","has-[:focus]:border-[--bcm-ui-color-border-error]"]},success:{base:["border-[--bcm-ui-color-border-success]","hover:border-[--bcm-ui-color-border-success]","has-[:focus]:border-[--bcm-ui-color-border-success]"]},warning:{base:["border-[--bcm-ui-color-border-warning]","hover:border-[--bcm-ui-color-border-warning]","has-[:focus]:border-[--bcm-ui-color-border-warning]"]},info:{base:["border-[--bcm-ui-color-border-info]","hover:border-[--bcm-ui-color-border-info]","has-[:focus]:border-[--bcm-ui-color-border-info]"]}},fullWidth:{true:"full-width w-full"},disabled:{true:"disabled cursor-not-allowed",false:""},focused:{true:{base:""}}},defaultVariants:{size:"medium",status:"default",fullWidth:false,disabled:false,focused:false}},{twMerge:false});this.togglePasswordVisibility=()=>{this.isPasswordVisible=!this.isPasswordVisible;this.inputRef.type=this.isPasswordVisible?"text":"password"};this.PasswordToggleButton=()=>{var t;if(this.type!=="password"||this.disabled||this.readonly||((t=this.value)===null||t===void 0?void 0:t.length)===0)return null;return i("button",{class:"appearance-none flex items-center w-6 h-full justify-center",onClick:this.togglePasswordVisibility,type:"button"},i("bcm-icon",{name:this.isPasswordVisible?"fa-eye-slash fa-regular":"fa-regular fa-eye",size:this.iconSize}))};this.iconSize={small:14,medium:16,large:18}[this.size]}handleValueChange(t){if(this.inputRef){this.inputRef.value=t}}watchStatus(t){this.internalStatus=t}watchErrorMessage(t){this.internalErrorMessage=t}async setFocus(){var t;(t=this.inputRef)===null||t===void 0?void 0:t.focus()}async setBlur(){var t;(t=this.inputRef)===null||t===void 0?void 0:t.blur()}async select(){var t;(t=this.inputRef)===null||t===void 0?void 0:t.select()}async setLocale(t,e){l(t,e);if(!this.isValid){this.validateInput()}}componentWillLoad(){l("en",d);this.internalStatus=this.status;this.internalErrorMessage=this.errorMessage}validateInput(){if(!this.inputRef)return;this.isValid=true;this.validationMessage="";const t=this.inputRef.value;if(this.required&&!t){this.isValid=false;this.validationMessage=c("required");this.internalStatus="error";this.internalErrorMessage=this.validationMessage;return}else if(this.minLength&&t.length<this.minLength){this.isValid=false;this.validationMessage=c("minlength",{min:this.minLength})}else if(this.maxLength&&t.length>this.maxLength){this.isValid=false;this.validationMessage=c("maxlength",{max:this.maxLength})}else if(this.pattern&&!new RegExp(this.pattern).test(t)){this.isValid=false;this.validationMessage=c("pattern")}else if(this.type==="email"&&t&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)){this.isValid=false;this.validationMessage=c("email")}else if(this.type==="number"&&t){const e=parseFloat(t);if(this.min!==undefined&&e<this.min){this.isValid=false;this.validationMessage=c("min",{min:this.min})}else if(this.max!==undefined&&e>this.max){this.isValid=false;this.validationMessage=c("max",{max:this.max})}}this.internalStatus=this.isValid?"default":"error";this.internalErrorMessage=this.validationMessage}hasSlotContent(t){return P(this.el,t)}getDefaultIconForType(){return}render(){const t=this._id+"-input"||this.name;const{base:e,inputClass:o}=this.styleClass({size:this.size,status:this.internalStatus,fullWidth:this.fullWidth,disabled:this.disabled,focused:this.isFocused});return i("div",{key:"effaec9bfaf730d8dc64c1eebb18f24f1b81d6a7",class:"bcm-ui-element"},this.label&&i("label",{key:"1ab316bc8c04c5a17280d539976f8304d9a146cf",class:s("input-label font-medium",{"text-color-label":!this.disabled,"text-color-disabled":this.disabled},{"text-size-3":this.size==="small","text-size-4":this.size==="medium","text-size-5":this.size==="large"}),htmlFor:t},i("slot",{key:"89fb855f3c84bd43759fdf3ab19298dd376e9714",name:"label"},this.label),this.required&&i("span",{key:"e82f1aa9da8e7b6098128e6a9fb49453aab662a9"},"*")),i("div",{key:"b2503d3e60b246fe6342c0ae9ad74c95f993b11b",class:e()},(this.hasSlotContent("prefix")||this.prefixIcon||this.getDefaultIconForType())&&i("div",{key:"311435f21f3e357d8f7e87e191152d32b2b39ba3",class:"flex items-center gap-2 px-2"},(this.prefixIcon||this.getDefaultIconForType())&&i("bcm-icon",{key:"9bcff2b57c2364e5e84c4cd5202c9a7c5c6a59f6",class:"prefix-icon","icon-name":this.prefixIcon||this.getDefaultIconForType(),size:this.iconSize}),i("slot",{key:"bacfdc130d70df0c8e6bcadb9fc4d58a66067a47",name:"prefix"})),i("input",{key:"9d78831b435a606f06214bfb9ac8a17f743c8ba9",ref:t=>this.inputRef=t,id:t,class:o(),type:this.type,name:this.name,disabled:this.disabled,readonly:this.readonly,required:this.required,placeholder:this.placeholder,autocomplete:this.autocomplete,minlength:this.minLength,maxlength:this.maxLength,min:this.min,max:this.max,step:this.step,pattern:this.pattern,"aria-invalid":this.status==="error","aria-required":this.required,"aria-labelledby":this.labelledby,"aria-describedby":this.describedby,value:this.value,onInput:this.onInput,onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp}),(this.hasSlotContent("suffix")||this.suffixIcon)&&i("div",{key:"060a4cb048a6f041acadfb6375307d736e18c6e4",class:"flex items-center gap-2 px-2"},i("slot",{key:"54536a8b871e6524f3e2aa885ff38dbe8e1f7337",name:"suffix"}),this.suffixIcon&&i("bcm-icon",{key:"ec7482256e4fc4154ddaef6070045b6c926d9f7b",class:"suffix-icon","icon-name":this.suffixIcon,size:this.iconSize})),this.PasswordToggleButton()),(this.captionText||this.internalErrorMessage||this.validationMessage)&&i("div",{key:"6c09a0de12102b805ad224da2007405d4f03e03f",class:s("input-caption-text font-regular mt-1",{"text-[--bcm-ui-color-text-caption]":!this.disabled&&this.internalStatus==="default","text-[--bcm-ui-color-text-error]":!this.disabled&&(this.internalStatus==="error"||!this.isValid),"text-[--bcm-ui-color-text-success]":!this.disabled&&this.internalStatus==="success","text-[--bcm-ui-color-text-warning]":!this.disabled&&this.internalStatus==="warning","text-[--bcm-ui-color-text-info]":!this.disabled&&this.internalStatus==="info","text-[--bcm-ui-color-text-disabled]":this.disabled},{"text-size-3":this.size==="small","text-size-4":this.size==="medium","text-size-5":this.size==="large"})},!this.isValid?this.validationMessage:this.internalStatus==="error"?this.internalErrorMessage:this.captionText))}get el(){return r(this)}static get watchers(){return{value:["handleValueChange"],status:["watchStatus"],errorMessage:["watchErrorMessage"]}}};I.style=j;const $='.absolute{position:absolute}.relative{position:relative}.block{display:block}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.border{border-width:1px}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}bcm-linked{display:block;position:relative}bcm-linked[append-to-body]{display:none}.floating-content{min-width:-moz-max-content;min-width:max-content;transition:opacity .2s ease,visibility .2s ease,transform .2s ease;will-change:transform,opacity}.floating-visible{animation:fadeInScale .2s ease-out}.floating-hidden{display:none!important;pointer-events:none}.floating-wrapper{position:relative;z-index:1}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.floating-arrow{z-index:-1}.floating-arrow,.floating-arrow:before{height:10px;position:absolute;width:10px}.floating-arrow:before{background:#fff;border:1px solid #e2e8f0;content:"";transform:rotate(45deg)}.arrow-top{bottom:-5px}.arrow-bottom,.arrow-top{left:50%;transform:translateX(-50%)}.arrow-bottom{top:-5px}.arrow-left{right:-5px}.arrow-left,.arrow-right{top:50%;transform:translateY(-50%)}.arrow-right{left:-5px}.arrow-top:before{border-bottom:0;border-right:0}.arrow-bottom:before{border-left:0;border-top:0}.arrow-left:before{border-right:0;border-top:0}.arrow-right:before{border-bottom:0;border-left:0}@media (max-width:768px){.floating-content{max-height:calc(100vh - 32px);max-width:calc(100vw - 32px)}}.static{position:static}.flex{display:flex}.max-h-64{max-height:16rem}.w-full{width:100%}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.items-center{align-items:center}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.outline{outline-style:solid}.visible{visibility:visible}.fixed{position:fixed}.hidden{display:none}.resize{resize:both}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}';const T=class{constructor(i){t(this,i);this.bcmShow=e(this,"bcmShow",7);this.bcmHide=e(this,"bcmHide",7);this.bcmShown=e(this,"bcmShown",7);this.bcmHidden=e(this,"bcmHidden",7);this.trigger="click";this.placement="bottom-start";this.showDelay=0;this.hideDelay=0;this.offset=8;this.arrow=false;this.disabled=false;this.zIndex=1e3;this.appendToBody=false;this.destroyOnHide=false;this.isVisible=false;this.isReady=false;this.handleMouseEnter=()=>{this.clearTimeouts();if(this.showDelay>0){this.showTimeout=setTimeout((()=>this.show()),this.showDelay)}else{this.show()}};this.handleMouseLeave=()=>{this.clearTimeouts();if(this.hideDelay>0){this.hideTimeout=setTimeout((()=>this.hide()),this.hideDelay)}else{this.hide()}};this.handleFloatingMouseEnter=()=>{this.clearTimeouts()};this.handleFloatingMouseLeave=()=>{this.clearTimeouts();if(this.hideDelay>0){this.hideTimeout=setTimeout((()=>this.hide()),this.hideDelay)}else{this.hide()}};this.handleClick=t=>{t.stopPropagation();this.toggle()};this.handleFocus=()=>{this.show()};this.handleBlur=()=>{this.hide()}}setupTarget(){this.disconnectTarget();this.connectTarget()}onVisibilityChange(t){if(t){this.updatePosition();this.bcmShown.emit()}else{this.bcmHidden.emit()}}async componentDidLoad(){await new Promise((t=>requestAnimationFrame(t)));this.floatingEl=this.host.querySelector(".floating-content");if(this.floatingEl){this.isReady=true;this.connectTarget();this.setupFloatingObserver();console.log("✅ bcm-linked initialized successfully")}else{console.error("❌ Could not find .floating-content element")}}disconnectedCallback(){var t,e;this.disconnectTarget();this.clearTimeouts();(t=this.cleanup)===null||t===void 0?void 0:t.call(this);(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect();if(this.appendToBody&&this.floatingEl&&this.originalParent){this.originalParent.appendChild(this.floatingEl)}}connectTarget(){if(!this.isReady)return;this.targetEl=this.targetElement||(this.targetId?document.getElementById(this.targetId):null)||this.host.previousElementSibling||this.host.parentElement;if(!this.targetEl){console.warn("bcm-linked: No target element found");return}this.setupEventListeners();if(this.targetEl&&this.floatingEl){this.cleanup=h(this.targetEl,this.floatingEl,(()=>{if(this.isVisible){this.updatePosition()}}))}this.resizeObserver=new ResizeObserver((()=>{if(this.isVisible){this.updatePosition()}}));this.resizeObserver.observe(this.floatingEl)}disconnectTarget(){var t,e;if(this.targetEl){this.removeEventListeners()}(t=this.cleanup)===null||t===void 0?void 0:t.call(this);(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect()}setupEventListeners(){var t,e;if(!this.targetEl||this.disabled)return;switch(this.trigger){case"hover":this.targetEl.addEventListener("mouseenter",this.handleMouseEnter);this.targetEl.addEventListener("mouseleave",this.handleMouseLeave);(t=this.floatingEl)===null||t===void 0?void 0:t.addEventListener("mouseenter",this.handleFloatingMouseEnter);(e=this.floatingEl)===null||e===void 0?void 0:e.addEventListener("mouseleave",this.handleFloatingMouseLeave);break;case"click":this.targetEl.addEventListener("click",this.handleClick);this.setupClickOutside();break;case"focus":this.targetEl.addEventListener("focus",this.handleFocus);this.targetEl.addEventListener("blur",this.handleBlur);break}}removeEventListeners(){var t,e;if(!this.targetEl)return;this.targetEl.removeEventListener("mouseenter",this.handleMouseEnter);this.targetEl.removeEventListener("mouseleave",this.handleMouseLeave);this.targetEl.removeEventListener("click",this.handleClick);this.targetEl.removeEventListener("focus",this.handleFocus);this.targetEl.removeEventListener("blur",this.handleBlur);(t=this.floatingEl)===null||t===void 0?void 0:t.removeEventListener("mouseenter",this.handleFloatingMouseEnter);(e=this.floatingEl)===null||e===void 0?void 0:e.removeEventListener("mouseleave",this.handleFloatingMouseLeave);this.removeClickOutside()}setupClickOutside(){this.clickOutsideHandler=t=>{var e,i;const o=t.target;if(!((e=this.floatingEl)===null||e===void 0?void 0:e.contains(o))&&!((i=this.targetEl)===null||i===void 0?void 0:i.contains(o))&&!this.host.contains(o)){this.hide()}};document.addEventListener("click",this.clickOutsideHandler,true)}removeClickOutside(){if(this.clickOutsideHandler){document.removeEventListener("click",this.clickOutsideHandler,true);this.clickOutsideHandler=undefined}}clearTimeouts(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=undefined}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=undefined}}async updatePosition(){if(!this.targetEl||!this.floatingEl||!this.isVisible)return;const t=[u(this.offset),f({fallbackPlacements:["top","bottom","left","right","top-start","top-end","bottom-start","bottom-end","left-start","left-end","right-start","right-end"]}),m({padding:8})];const{x:e,y:i,placement:o}=await b(this.targetEl,this.floatingEl,{placement:this.placement,middleware:t,strategy:"fixed"});Object.assign(this.floatingEl.style,{left:`${e}px`,top:`${i}px`,zIndex:this.zIndex.toString()});if(this.arrow){this.updateArrow(o)}}updateArrow(t){var e;const i=(e=this.floatingEl)===null||e===void 0?void 0:e.querySelector(".floating-arrow");if(!i)return;i.className="floating-arrow";const o=t.split("-")[0];i.classList.add(`arrow-${o}`)}async show(){if(this.disabled||this.isVisible)return;this.bcmShow.emit();if(this.appendToBody&&this.floatingEl){this.originalParent=this.floatingEl.parentNode;this.originalNextSibling=this.floatingEl.nextSibling;document.body.appendChild(this.floatingEl)}this.isVisible=true;await new Promise((t=>requestAnimationFrame(t)));await this.updatePosition()}async hide(){if(!this.isVisible)return;this.bcmHide.emit();this.isVisible=false;if(this.appendToBody&&this.floatingEl&&this.originalParent){if(this.originalNextSibling){this.originalParent.insertBefore(this.floatingEl,this.originalNextSibling)}else{this.originalParent.appendChild(this.floatingEl)}this.originalParent=undefined;this.originalNextSibling=undefined}if(this.destroyOnHide&&this.floatingEl&&this.floatingEl.parentNode){this.floatingEl.parentNode.removeChild(this.floatingEl)}}async toggle(){if(this.isVisible){await this.hide()}else{await this.show()}}async updatePositioning(){await this.updatePosition()}setupFloatingObserver(){if(!this.floatingEl)return;this.resizeObserver=new ResizeObserver((()=>{if(this.isVisible){this.updatePosition()}}));this.resizeObserver.observe(this.floatingEl)}render(){const t={"floating-content":true,"floating-visible":this.isVisible,"floating-hidden":!this.isVisible,"floating-with-arrow":this.arrow,"floating-destroy-on-hide":this.destroyOnHide};return i(o,{key:"f5835cc1b6044476e66402d23a3becf18d3f2049"},i("div",{key:"2c7f92bbe85bc938a767734ef4b27702247fb390",class:t,style:{position:"fixed",top:"0px",left:"0px",zIndex:this.zIndex.toString(),display:this.isVisible?"block":"none",visibility:this.isVisible?"visible":"hidden",opacity:this.isVisible?"1":"0",pointerEvents:this.isVisible?"auto":"none"}},this.arrow&&i("div",{key:"f6eedac02b29b3ca00a9a84eea940ac89089f30c",class:"floating-arrow"}),i("div",{key:"7cb19f085de1d77a41fd9897be90999e78a0a54d",class:"floating-wrapper"},i("slot",{key:"a4b4289642850e3c2f7f27771b3d28bc41c8248a"}))),i("div",{key:"61cd7af9a4a47c87c308e1e67f96efb987c97312",style:{display:"none"}},i("slot",{key:"7160df275f5c7c66733158f95266598d0d207a17",name:"fallback"})))}get host(){return r(this)}static get watchers(){return{targetId:["setupTarget"],targetElement:["setupTarget"],isVisible:["onVisibilityChange"]}}};T.style=$;const D=":host{display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.block{display:block}.h-fit{height:fit-content}.w-fit{width:fit-content}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-color-default{border-color:var(--bcm-ui-color-border-default)}.bg-color-default{background-color:var(--bcm-ui-color-background-default-default)}.px-1{padding-left:.25rem;padding-right:.25rem}.text-center{text-align:center}.text-size-2{font-size:var(--bcm-ui-font-size-2,10px);line-height:var(--bcm-ui-line-height-2,12px)}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.font-medium{font-weight:500}.capitalize{text-transform:capitalize}.text-color-default{color:var(--bcm-ui-color-text-default)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";const S={ctrl:"⌘",alt:"⌥",shift:"⇧",del:"⌫",delete:"⌫",backspace:"⌦",enter:"⏎",return:"⏎"};const Y=class{constructor(e){t(this,e);this.size="small";this.isMac=/Mac/.test(window.navigator.userAgent)}getHotkey(t){if(!t){return""}if(this.isMac&&(t.includes(" ")||t.includes("+"))){const e=t.split(/[\s+]+/);return e.map((t=>S[t]||t)).join("")}else{return t}}render(){const{size:t,hotkey:e}=this;return i("div",{key:"007588d1d20941ead644a3d1fd72410cb6793ff5",class:s("bcm-ui-element bcm-ui-content-display","block h-fit w-fit rounded border border-solid px-1","border-color-default bg-color-default text-color-default","text-center font-medium capitalize",{"text-size-2":t==="small","text-size-3":t==="medium","text-size-4":t==="large"})},this.getHotkey(e))}};Y.style=D;const M={display:"h1",heading1:"h2",heading2:"h3",title1:"h4",title2:"h5",title3:"h6",body:"p",bodyAccent:"p",helper:"p",caption:"p",label:"label",placeholder:"p",link:"a",info:"p",infoAccent:"p"};const X=".static{position:static}.m-0{margin:0}.appearance-none{appearance:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-0{padding:0}.text-size-12{font-size:var(--bcm-ui-font-size-12,60px);line-height:var(--bcm-ui-line-height-12,72px)}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.text-size-7{font-size:var(--bcm-ui-font-size-7,20px);line-height:var(--bcm-ui-line-height-7,28px)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-caption{color:var(--bcm-ui-color-text-caption)}.text-color-default{color:var(--bcm-ui-color-text-default)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-header{color:var(--bcm-ui-color-text-header)}.text-color-helper{color:var(--bcm-ui-color-text-helper)}.text-color-label{color:var(--bcm-ui-color-text-label)}.text-color-placeholder{color:var(--bcm-ui-color-text-placeholder)}.text-color-primary{color:var(--bcm-ui-color-text-primary)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";const B=class{constructor(e){t(this,e);this.variant="body";this.size="medium";this.overflow=false;this.variantClassMap={display:"font-semibold text-size-12 text-color-header",heading1:"font-semibold text-size-7 text-color-header",heading2:"font-semibold text-size-6 text-color-header",title1:{small:"font-semibold text-size-5 text-color-header",medium:"font-semibold text-size-6 text-color-header",large:"font-semibold text-size-7 text-color-header"},title2:{small:"font-semibold text-size-4 text-color-default",medium:"font-semibold text-size-5 text-color-default",large:"font-semibold text-size-6 text-color-default"},title3:{small:"font-semibold text-size-3 text-color-disabled",medium:"font-semibold text-size-4 text-color-disabled",large:"font-semibold text-size-5 text-color-disabled"},body:{small:"font-regular text-size-4 text-color-default",medium:"font-regular text-size-5 text-color-default",large:"font-regular text-size-6 text-color-default"},bodyAccent:{small:"font-medium text-size-4 text-color-default",medium:"font-medium text-size-5 text-color-default",large:"font-medium text-size-6 text-color-default"},helper:{small:"font-regular text-size-4 text-color-helper",medium:"font-regular text-size-5 text-color-helper",large:"font-regular text-size-6 text-color-helper"},caption:{small:"font-regular text-size-3 text-color-caption",medium:"font-regular text-size-4 text-color-caption",large:"font-regular text-size-5 text-color-caption"},link:{small:"font-medium text-size-4 underline text-color-primary",medium:"font-medium text-size-5 underline text-color-primary",large:"font-medium text-size-6 underline text-color-primary"},label:{small:"font-medium text-size-3 text-color-label",medium:"font-medium text-size-4 text-color-label",large:"font-medium text-size-5 text-color-label"},placeholder:{small:"font-regular text-size-4 text-color-placeholder",medium:"font-regular text-size-5 text-color-placeholder",large:"font-regular text-size-6 text-color-placeholder"},info:{small:"font-regular text-size-3 text-color-default",medium:"font-regular text-size-4 text-color-default",large:"font-regular text-size-5 text-color-default"},infoAccent:{small:"font-medium text-size-3 text-color-header",medium:"font-medium text-size-4 text-color-header",large:"font-medium text-size-5 text-color-header"}};this.getTextClass=(t,e)=>{const i=this.variantClassMap[t];if(typeof i==="string"){return i}return i[e]};this.getOverflowClass=t=>t?"truncate":""}render(){var t;const e=M[this.variant];const o=this.getTextClass(this.variant,this.size);const r=this.getOverflowClass((t=this.overflow)!==null&&t!==void 0?t:false);return i(e,{key:"cb3c78143a1f52fdadd9458219ef5f12eace04e6",class:s("bcm-text appearance-none m-0 p-0",o,r),part:"text"},i("slot",{key:"7ab30bbf72b0fe1be98089b6c452662a382363e1"},this.text))}};B.style=X;export{g as bcm_button,v as bcm_drawer,k as bcm_dropdown,C as bcm_dropdown_item,I as bcm_input,T as bcm_linked,Y as bcm_shortcut,B as bcm_text};
|
|
2
|
+
//# sourceMappingURL=p-bd293ffd.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["variantOptions","save","text","status","icon","iconPosition","kind","ok","new","add","create","prev","next","apply","submit","send","delete","cancel","decline","close","archive","remove","edit","export","import","filter","update","reset","download","buttonCss","BcmButton","constructor","hostRef","this","size","iconOnly","fullWidth","type","loading","disabled","active","handleClick","event","bcmClick","emit","handleFocus","bcmFocus","handleBlur","bcmBlur","buttonClass","tv","base","variants","small","medium","large","primary","ghost","outline","true","false","position","first","middle","last","defaultVariants","twMerge","buttonText","variant","buttonIcon","buttonStatus","buttonStyles","kindStyleMap","internalDefaultStyles","finalEffectiveStyles","Object","assign","render","h","Host","key","label","expanded","controls","onClick","onFocus","onBlur","style","class","name","drawerCss","BcmDrawer","open","noHeader","drawerClass","slots","backdrop","wrapper","header","title","closeButton","content","left","right","top","bottom","compoundVariants","handleOpenChange","isOpen","document","body","overflow","bcmOpen","bcmClose","handleKeyDown","hide","show","bcmBeforeOpen","defaultPrevented","bcmBeforeClose","disconnectedCallback","getWrapperStyle","width","height","part","role","headerText","dropdownCss","Dropdown","isReady","dropdownItems","dropdownClass","handleSlotChange","Array","from","host","querySelectorAll","length","console","warn","componentDidLoad","button","shadowRoot","querySelector","buttonRef","handleDropdownItemChange","element","selected","detail","_a","forEach","item","bcmDropdownChange","targetElement","onSlotchange","dropdownItemCss","DropdownItem","error","dropdownItemClass","bcmDropDownItemChange","rightIcons","map","checkSlotContent","slotName","slot","assignedNodes","inputCss","BcmInput","isFocused","isValid","internalStatus","isPasswordVisible","value","_id","generateId","readonly","required","useNativeValidation","onInput","input","target","bcmInput","validateInput","onChange","bcmChange","onKeyDown","bcmKeyDown","onKeyUp","bcmKeyUp","styleClass","inputClass","default","success","warning","info","focused","togglePasswordVisibility","inputRef","PasswordToggleButton","iconSize","handleValueChange","newValue","watchStatus","watchErrorMessage","internalErrorMessage","setFocus","focus","setBlur","blur","select","setLocale","locale","messages","setValidationMessages","componentWillLoad","defaultValidationMessages","errorMessage","validationMessage","getValidationMessage","minLength","min","maxLength","max","pattern","RegExp","test","numValue","parseFloat","undefined","hasSlotContent","el","getDefaultIconForType","inputId","classNames","htmlFor","prefixIcon","ref","id","placeholder","autocomplete","minlength","maxlength","step","labelledby","describedby","suffixIcon","captionText","linkedCss","BcmLinked","trigger","placement","showDelay","hideDelay","offset","arrow","zIndex","appendToBody","destroyOnHide","isVisible","handleMouseEnter","clearTimeouts","showTimeout","setTimeout","handleMouseLeave","hideTimeout","handleFloatingMouseEnter","handleFloatingMouseLeave","e","stopPropagation","toggle","setupTarget","disconnectTarget","connectTarget","onVisibilityChange","updatePosition","bcmShown","bcmHidden","Promise","resolve","requestAnimationFrame","floatingEl","setupFloatingObserver","log","cleanup","call","_b","resizeObserver","disconnect","originalParent","appendChild","targetEl","targetId","getElementById","previousElementSibling","parentElement","setupEventListeners","autoUpdate","ResizeObserver","observe","removeEventListeners","addEventListener","setupClickOutside","removeEventListener","removeClickOutside","clickOutsideHandler","contains","clearTimeout","middleware","flip","fallbackPlacements","shift","padding","x","y","computePosition","strategy","toString","updateArrow","className","side","split","classList","bcmShow","parentNode","originalNextSibling","nextSibling","bcmHide","insertBefore","removeChild","updatePositioning","floatingClasses","display","visibility","opacity","pointerEvents","shortcutCss","osKeys","ctrl","alt","del","backspace","enter","return","BcmShortcut","isMac","window","navigator","userAgent","getHotkey","includes","keys","k","join","hotkey","cs","variantTagMap","heading1","heading2","title1","title2","title3","bodyAccent","helper","caption","link","infoAccent","textCss","BcmText","variantClassMap","getTextClass","variantClasses","getOverflowClass","Tag","variantClass","overflowClass"],"sources":["src/components/button/types.ts","src/components/button/button.css?tag=bcm-button&encapsulation=shadow","src/components/button/button.component.tsx","src/components/drawer/drawer.css?tag=bcm-drawer&encapsulation=shadow","src/components/drawer/drawer.component.tsx","src/components/dropdown/dropdown.css?tag=bcm-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.component.tsx","src/components/dropdown-item/dropdown-item.css?tag=bcm-dropdown-item&encapsulation=shadow","src/components/dropdown-item/dropdown-item.component.tsx","src/utils/slot/check-slot-content.ts","src/components/input/input.scss?tag=bcm-input&encapsulation=shadow","src/components/input/input.component.tsx","src/components/linked/linked.css?tag=bcm-linked","src/components/linked/linked.component.tsx","src/components/shortcut/shortcut.css?tag=bcm-shortcut&encapsulation=shadow","src/components/shortcut/shortcut.tsx","src/components/text/text.utils.ts","src/components/text/text.scss?tag=bcm-text&encapsulation=shadow","src/components/text/text.component.tsx"],"sourcesContent":["export type ButtonKind = 'primary' | 'ghost' | 'text' | 'outline';\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'reset' | 'submit';\nexport type ButtonStatus = 'default' | 'success' | 'error' | 'warning' | 'info';\nexport type IconPosition = 'prefix' | 'suffix';\n\n// Button group position\nexport type ButtonPosition = 'first' | 'middle' | 'last' | null;\n\nexport interface VariantOption {\n text: string;\n icon?: string;\n iconPosition?: IconPosition;\n status?: ButtonStatus;\n kind?: ButtonKind;\n}\n\nexport const variantOptions: Record<string, VariantOption> = {\n save: {\n text: 'Save',\n status: 'success',\n icon: 'far fa-save',\n iconPosition: 'prefix',\n kind: 'primary',\n },\n ok: {\n text: 'Ok',\n status: 'success',\n icon: 'far fa-check',\n iconPosition: 'prefix',\n },\n new: {\n text: 'New',\n status: 'success',\n icon: 'far fa-plus',\n iconPosition: 'prefix',\n },\n add: {\n text: 'Add',\n status: 'success',\n icon: 'far fa-plus',\n iconPosition: 'prefix',\n },\n create: {\n text: 'Create',\n status: 'success',\n icon: 'far fa-plus',\n iconPosition: 'prefix',\n },\n prev: {\n text: 'Prev',\n status: 'default',\n icon: 'far fa-arrow-left',\n iconPosition: 'prefix',\n },\n next: {\n text: 'Next',\n status: 'default',\n icon: 'far fa-arrow-right',\n iconPosition: 'suffix',\n },\n apply: {\n text: 'Apply',\n status: 'default',\n icon: 'far fa-check-circle',\n iconPosition: 'prefix',\n },\n submit: {\n text: 'Submit',\n status: 'default',\n icon: 'far fa-save',\n iconPosition: 'prefix',\n },\n send: {\n text: 'Send',\n status: 'success',\n icon: 'far fa-paper-plane',\n iconPosition: 'prefix',\n },\n delete: {\n text: 'Delete',\n status: 'error',\n icon: 'far fa-trash',\n iconPosition: 'prefix',\n },\n cancel: {\n text: 'Cancel',\n status: 'error',\n icon: 'far fa-times',\n iconPosition: 'prefix',\n },\n decline: {\n text: 'Decline',\n status: 'error',\n icon: 'far fa-ban',\n iconPosition: 'prefix',\n },\n close: {\n text: 'Close',\n status: 'error',\n icon: 'far fa-times-circle',\n iconPosition: 'prefix',\n },\n archive: {\n text: 'Archive',\n status: 'error',\n icon: 'far fa-folder-open',\n iconPosition: 'prefix',\n },\n remove: {\n text: 'Remove',\n status: 'error',\n icon: 'far fa-minus-circle',\n iconPosition: 'prefix',\n },\n edit: {\n text: 'Edit',\n status: 'default',\n icon: 'far fa-edit',\n iconPosition: 'prefix',\n },\n export: {\n text: 'Export',\n status: 'default',\n icon: 'far fa-sign-out',\n iconPosition: 'prefix',\n },\n import: {\n text: 'Import',\n status: 'default',\n icon: 'far fa-sign-in',\n iconPosition: 'prefix',\n },\n filter: {\n text: 'Filter',\n status: 'default',\n icon: 'far fa-filter',\n iconPosition: 'prefix',\n },\n update: {\n text: 'Update',\n status: 'default',\n icon: 'far fa-sync',\n iconPosition: 'prefix',\n },\n reset: {\n text: 'Reset',\n status: 'default',\n icon: 'far fa-sync',\n iconPosition: 'prefix',\n },\n download: {\n text: 'Download',\n status: 'default',\n icon: 'far fa-download',\n iconPosition: 'prefix',\n },\n};\n\nexport type ButtonVariant = keyof typeof variantOptions;\n",":host {\n display: inline-flex;\n position: relative;\n height: fit-content;\n width: fit-content;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n:host([position='first']) .bcm-button {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n:host([position='middle']) .bcm-button {\n border-radius: 0;\n}\n\n:host([position='last']) .bcm-button {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n:host([position='first'].orientation-vertical) .bcm-button {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-right-radius: var(--bcm-ui-border-radius, 4px);\n border-top-left-radius: var(--bcm-ui-border-radius, 4px);\n}\n\n:host([position='middle'].orientation-vertical) .bcm-button {\n border-radius: 0;\n}\n\n:host([position='last'].orientation-vertical) .bcm-button {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: var(--bcm-ui-border-radius, 4px);\n border-bottom-left-radius: var(--bcm-ui-border-radius, 4px);\n}\n","import { Component, Prop, h, Event, EventEmitter, Host } from '@stencil/core';\nimport { ButtonKind, ButtonSize, ButtonType, ButtonStatus, ButtonVariant, IconPosition, ButtonPosition, variantOptions } from './types';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-button',\n styleUrl: 'button.css',\n shadow: true,\n})\nexport class BcmButton {\n /** Defines the main visual style of the button */\n @Prop()\n kind: ButtonKind = 'primary';\n\n /** Controls the button size */\n @Prop()\n size: ButtonSize = 'medium';\n\n /** Defines the button's status/state color */\n @Prop()\n status: ButtonStatus = 'default';\n\n /** Predefined button variants */\n @Prop()\n variant?: ButtonVariant;\n\n /** Button position in button group (first, middle, last) */\n @Prop({ reflect: true })\n position?: ButtonPosition;\n\n /** Icon class name */\n @Prop()\n icon?: string;\n\n /** Icon placement (prefix/suffix) */\n @Prop()\n iconPosition: IconPosition = 'prefix';\n\n /** Icon-only button mode */\n @Prop()\n iconOnly = false;\n\n /** Full width button */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML button type */\n @Prop()\n type: ButtonType = 'button';\n\n /** Loading state */\n @Prop()\n loading = false;\n\n /** Disabled state */\n @Prop()\n disabled = false;\n\n /** Button text content */\n @Prop()\n text?: string;\n\n /** Active state */\n @Prop()\n active = false;\n\n /** Form association */\n @Prop()\n form: string;\n\n @Prop()\n value: string;\n\n @Prop()\n name: string;\n\n /** Screen reader label */\n @Prop()\n label: string;\n\n /** Expanded state for expandable content */\n @Prop()\n expanded?: string;\n\n /** ID of controlled element */\n @Prop()\n controls: string;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmClick: EventEmitter<MouseEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.disabled && !this.loading) {\n this.bcmClick.emit(event);\n }\n };\n\n private handleFocus = (event: FocusEvent) => {\n this.bcmFocus.emit(event);\n };\n\n private handleBlur = (event: FocusEvent) => {\n this.bcmBlur.emit(event);\n };\n\n private get buttonText(): string {\n return this.text || (this.variant ? variantOptions[this.variant].text : '');\n }\n\n private get buttonIcon(): { icon?: string; position: IconPosition } {\n if (this.variant && variantOptions[this.variant].icon) {\n return {\n icon: variantOptions[this.variant].icon,\n position: variantOptions[this.variant].iconPosition || 'prefix',\n };\n }\n\n return {\n icon: this.icon,\n position: this.iconPosition,\n };\n }\n\n private get buttonStatus(): ButtonStatus {\n return this.variant ? variantOptions[this.variant].status : this.status;\n }\n\n private get buttonStyles() {\n const status = this.buttonStatus === 'default' ? 'primary' : this.buttonStatus;\n\n // These are the internal default styles based on component props (kind, status)\n const kindStyleMap = {\n primary: {\n '--bcm-button-bg': `var(--bcm-ui-color-background-${status}-default)`,\n '--bcm-button-bg-hover': `var(--bcm-ui-color-background-${status}-hover)`,\n '--bcm-button-bg-active': `var(--bcm-ui-color-background-${status}-active)`,\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': 'var(--bcm-ui-color-text-base)',\n },\n outline: {\n '--bcm-button-bg': 'var(--bcm-ui-color-background-default-default)',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': `var(--bcm-ui-color-border-${this.buttonStatus})`,\n '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,\n },\n ghost: {\n '--bcm-button-bg': 'transparent',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,\n },\n text: {\n '--bcm-button-bg': 'transparent',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': `var(--bcm-ui-color-text-${status})`,\n },\n };\n const internalDefaultStyles = kindStyleMap[this.kind];\n\n // These are the \"final\" CSS custom properties used by the component's styling.\n // They use the \"--bcm-button-custom-...\" token if provided by the user,\n // otherwise, they fall back to the internal \"--bcm-button-...\" style defined above.\n const finalEffectiveStyles = {\n '--bcm-final-text-color': `var(--bcm-button-custom-text-color, ${internalDefaultStyles['--bcm-button-text']})`,\n '--bcm-final-border-color': `var(--bcm-button-custom-border-color, ${internalDefaultStyles['--bcm-button-border']})`,\n '--bcm-final-bg-color': `var(--bcm-button-custom-bg-color, ${internalDefaultStyles['--bcm-button-bg']})`,\n '--bcm-final-hover-bg-color': `var(--bcm-button-custom-hover-bg-color, ${internalDefaultStyles['--bcm-button-bg-hover']})`,\n '--bcm-final-active-bg-color': `var(--bcm-button-custom-active-bg-color, ${internalDefaultStyles['--bcm-button-bg-active']})`,\n };\n\n // return kindStyleMap[this.kind];\n\n return {\n ...internalDefaultStyles, // Provides the fallback values like --bcm-button-text\n ...finalEffectiveStyles, // Defines the --bcm-final-xxx tokens that handle the override logic\n };\n }\n\n private buttonClass = tv(\n {\n base: 'bcm-button appearance-none inline-flex items-center justify-center border border-solid rounded outline-0',\n variants: {\n size: {\n small: 'text-size-4 py-px px-2 min-h-6',\n medium: 'text-size-5 py-0.5 px-3 min-h-8',\n large: 'text-size-6 py-1 px-3 min-h-10',\n },\n kind: {\n primary: 'kind-primary',\n ghost: 'kind-ghost',\n text: 'kind-text',\n outline: 'kind-outline',\n },\n fullWidth: {\n true: 'full-width w-full',\n },\n disabled: {\n true: 'disabled cursor-not-allowed bg-[--bcm-ui-color-background-disabled-default] text-color-disabled border-color-disabled',\n false: [\n 'cursor-pointer',\n 'bg-[--bcm-final-bg-color] text-[--bcm-final-text-color] border-[--bcm-final-border-color]',\n 'hover:bg-[--bcm-final-hover-bg-color]',\n 'active:bg-[--bcm-final-active-bg-color]',\n 'focus-visible:ring',\n ],\n },\n loading: {\n true: '',\n },\n position: {\n first: 'position-first',\n middle: 'position-middle',\n last: 'position-last',\n },\n },\n defaultVariants: {\n size: 'medium',\n kind: 'primary',\n fullWidth: false,\n disabled: false,\n loading: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const { icon, position } = this.buttonIcon;\n\n return (\n <Host>\n <button\n type={this.type}\n disabled={this.disabled || this.loading}\n aria-label={this.label}\n aria-expanded={this.expanded}\n aria-controls={this.controls}\n aria-disabled={this.disabled}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n style={this.buttonStyles}\n class={this.buttonClass({\n size: this.size,\n kind: this.kind,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n loading: this.loading,\n position: this.position,\n })}\n >\n {this.loading && <slot name=\"loading\"></slot>}\n <span>\n <slot name=\"prefix\">{position === 'prefix' && icon && <i class={' leading-none ' + icon}></i>}</slot>\n </span>\n <slot>{this.buttonText}</slot>\n <span>\n <slot name=\"suffix\">{position === 'suffix' && icon && <i class={' leading-none ' + icon}></i>}</slot>\n </span>\n </button>\n </Host>\n );\n }\n}\n",":host {\n display: contents;\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { DrawerPosition, DrawerSize } from './types';\n\n@Component({\n tag: 'bcm-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class BcmDrawer {\n @Element() host: HTMLElement;\n\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n @Prop() size: DrawerSize = 'medium';\n @Prop() position: DrawerPosition = 'right';\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n @Prop() headerText?: string;\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n\n @Event() bcmOpen: EventEmitter<void>;\n @Event() bcmClose: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeOpen: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeClose: EventEmitter<void>;\n\n private drawerClass = tv({\n slots: {\n backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',\n wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',\n header: 'flex justify-between items-center bg-color-default text-color-default',\n title: 'font-semibold m-0 text-size-6',\n closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',\n content: 'overflow-y-auto flex-grow',\n },\n variants: {\n open: {\n true: {\n backdrop: 'opacity-100 visible',\n },\n false: {\n backdrop: 'opacity-0 invisible',\n },\n },\n position: {\n left: {\n wrapper: 'top-0 left-0 bottom-0',\n },\n right: {\n wrapper: 'top-0 right-0 bottom-0',\n },\n top: {\n wrapper: 'top-0 left-0 right-0',\n },\n bottom: {\n wrapper: 'bottom-0 left-0 right-0',\n },\n },\n size: {\n small: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n medium: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n large: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n },\n noHeader: {\n true: {\n header: 'hidden',\n },\n },\n },\n compoundVariants: [\n {\n open: true,\n position: ['left', 'right'],\n class: {\n wrapper: 'translate-x-0',\n },\n },\n {\n open: true,\n position: ['top', 'bottom'],\n class: {\n wrapper: 'translate-y-0',\n },\n },\n {\n open: false,\n position: 'left',\n class: {\n wrapper: '-translate-x-full',\n },\n },\n {\n open: false,\n position: 'right',\n class: {\n wrapper: 'translate-x-full',\n },\n },\n {\n open: false,\n position: 'top',\n class: {\n wrapper: '-translate-y-full',\n },\n },\n {\n open: false,\n position: 'bottom',\n class: {\n wrapper: 'translate-y-full',\n },\n },\n ],\n });\n\n @Watch('open')\n handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n this.bcmOpen.emit();\n } else {\n document.body.style.overflow = '';\n this.bcmClose.emit();\n }\n }\n\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n }\n\n @Method()\n async show(): Promise<void> {\n const event = this.bcmBeforeOpen.emit();\n if (!event.defaultPrevented) {\n this.open = true;\n }\n }\n\n @Method()\n async hide(): Promise<void> {\n const event = this.bcmBeforeClose.emit();\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n disconnectedCallback() {\n document.body.style.overflow = '';\n }\n\n private getWrapperStyle() {\n const style: { [key: string]: string } = {};\n\n if (this.fullWidth) {\n if (this.position === 'left' || this.position === 'right') {\n style.width = '100vw';\n } else {\n style.height = '100vh';\n }\n return style;\n }\n\n if (this.position === 'left' || this.position === 'right') {\n switch (this.size) {\n case 'small':\n style.width = '320px';\n break;\n case 'medium':\n style.width = '480px';\n break;\n case 'large':\n style.width = '1064px';\n break;\n }\n } else {\n switch (this.size) {\n case 'small':\n style.height = '40vh';\n break;\n case 'medium':\n style.height = '60vh';\n break;\n case 'large':\n style.height = '90vh';\n break;\n }\n }\n\n return style;\n }\n\n render() {\n const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({\n open: this.open,\n position: this.position,\n size: this.size,\n noHeader: this.noHeader,\n });\n\n return (\n <div part=\"base\">\n <div part=\"backdrop\" class={backdrop()} onClick={() => this.hide()} />\n <div\n part=\"wrapper\"\n class={wrapper()}\n style={this.getWrapperStyle()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-label={this.headerText}\n >\n <div part=\"header\" class={header()}>\n <h2 part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n <button part=\"close-button\" class={closeButton()} onClick={() => this.hide()} aria-label=\"Close\">\n <bcm-icon name=\"fa-solid fa-xmark\"></bcm-icon>\n </button>\n </div>\n <div part=\"content\" class={content()}>\n <slot />\n </div>\n <div part=\"footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n );\n }\n}\n","/* :host {\n --dropdown-box-min-weight: 32px;\n --dropdown-box-max-width: 384px;\n --dropdown-box-max-height: 384px;\n --dropdown-box-background-color: var(--bcm-ui-color-background-basic-panel);\n} */\n/* \n.scroll {\n height: 140px;\n width: 140px;\n overflow-y: auto;\n}\n\n.scroll:active::-webkit-scrollbar-thumb,\n.scroll:focus::-webkit-scrollbar-thumb,\n.scroll:hover::-webkit-scrollbar-thumb {\n visibility: visible;\n}\n.scroll::-webkit-scrollbar-thumb {\n background-color: darkgrey;\n visibility: hidden;\n}\n\n.scroll::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n} */\n","import { Component, ComponentInterface, h, Prop, State, Element, Host, Event, EventEmitter, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown',\n styleUrl: 'dropdown.css',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n @Element() host: HTMLElement;\n\n @Prop() text?: string;\n\n @State() isReady: boolean = false;\n\n @State() dropdownItems: HTMLBcmDropdownItemElement[] = [];\n\n protected buttonRef?: HTMLBcmButtonElement;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropdownChange',\n })\n bcmDropdownChange: EventEmitter<any>;\n\n componentDidLoad() {\n const button = this.host.shadowRoot.querySelector('bcm-button') as HTMLBcmButtonElement;\n if (button) {\n this.buttonRef = button;\n this.isReady = true;\n }\n }\n\n @Listen('bcmDropDownItemChange', { capture: true })\n handleDropdownItemChange(event: CustomEvent) {\n const { element, selected } = event?.detail;\n\n this.dropdownItems?.forEach(item => {\n if (item != element) {\n item.selected = false;\n }\n });\n\n this.bcmDropdownChange.emit({\n element: element,\n selected,\n });\n }\n\n private dropdownClass = tv({\n base: 'dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto',\n });\n\n private handleSlotChange = () => {\n this.dropdownItems = Array.from(this.host.querySelectorAll('bcm-dropdown-item'));\n\n if (this.dropdownItems.length === 0) {\n console.warn('No dropdown items found in dropdown component');\n }\n };\n\n render() {\n return (\n <Host>\n <bcm-button kind=\"outline\">\n <span part=\"text\">{this.text}</span>\n </bcm-button>\n {this.isReady && (\n <bcm-linked targetElement={this.buttonRef}>\n <div part=\"dropdown-container\" class={this.dropdownClass()}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n </bcm-linked>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n width: 100%;\n}\n\n::slotted([slot='left-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n\n::slotted([slot='right-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown-item',\n styleUrl: 'dropdown-item.css',\n shadow: true,\n})\nexport class DropdownItem implements ComponentInterface {\n @Element() host: HTMLElement;\n @Prop() text: string;\n @Prop() icon: string;\n @Prop() rightIcons: string[];\n @Prop({ reflect: true }) selected: boolean = false;\n @Prop({ reflect: true }) error: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropDownItemChange',\n })\n bcmDropDownItemChange: EventEmitter<any>;\n\n private handleClick() {\n this.selected = true;\n this.bcmDropDownItemChange.emit({\n element: this.host,\n selected: this.selected,\n });\n }\n\n private dropdownItemClass = tv(\n {\n base: 'dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color',\n variants: {\n selected: {\n true: 'bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]',\n false: 'hover:bg-[var(--bcm-ui-color-background-base-hover)]',\n },\n error: {\n true: 'bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]',\n false: '',\n },\n disabled: {\n true: '', // should be discuss with ux team\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n error: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <div\n aria-checked={this.selected}\n class={this.dropdownItemClass({\n selected: this.selected,\n error: this.error,\n })}\n onClick={() => this.handleClick()}\n >\n <slot name=\"left-content\">{this.icon && <bcm-icon icon-name={this.icon}></bcm-icon>}</slot>\n <div class=\"flex flex-row text-pretty w-full\">\n <slot>{this.text}</slot>\n </div>\n <slot name=\"right-content\">\n {this.rightIcons?.map(icon => (\n <bcm-icon icon-name={icon}></bcm-icon>\n ))}\n </slot>\n </div>\n );\n }\n}\n","/**\n * Checks if a named slot has any content\n * @param element - The host element (component instance)\n * @param slotName - Name of the slot to check\n * @returns boolean indicating if the slot has any assigned nodes\n */\nexport const checkSlotContent = (element: HTMLElement, slotName: string): boolean => {\n const slot = element.shadowRoot?.querySelector(`slot[name=\"${slotName}\"]`) as HTMLSlotElement;\n if (!slot) return false;\n\n const assignedNodes = slot.assignedNodes();\n return assignedNodes.length > 0;\n};\n",":host {\n display: inline-block;\n}\n","import { Component, Prop, h, Event, EventEmitter, Method, State, Watch, Element } from '@stencil/core';\nimport { InputSize, InputStatus, InputType } from './types';\nimport { tv } from '@utils/tv';\nimport classNames from 'classnames';\nimport { generateId } from '../../utils/id/generate-id';\nimport { checkSlotContent } from '../../utils/slot/check-slot-content';\nimport { getValidationMessage, setValidationMessages, defaultValidationMessages } from '../../utils/validation-messages';\n\n@Component({\n tag: 'bcm-input',\n styleUrl: 'input.scss',\n shadow: true,\n})\nexport class BcmInput {\n @Element() el: HTMLElement;\n private inputRef: HTMLInputElement;\n\n @State() isFocused = false;\n @State() validationMessage: string;\n @State() isValid = true;\n @State() internalStatus: InputStatus = 'default';\n @State() internalErrorMessage: string;\n @State() isPasswordVisible = false;\n\n /** Input value */\n @Prop({ mutable: true, reflect: true })\n value: string = '';\n\n /** Input placeholder text */\n @Prop()\n placeholder?: string;\n\n /** Input name */\n @Prop()\n name?: string;\n\n /** Input id */\n @Prop({ attribute: 'id', reflect: true })\n _id?: string = generateId('input');\n\n /** Controls the input size */\n @Prop()\n size: InputSize = 'medium';\n\n /** Defines the input's status/state */\n @Prop()\n status: InputStatus = 'default';\n\n /** Full width input */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML input type */\n @Prop()\n type: InputType = 'text';\n\n /** Whether the input is disabled */\n @Prop()\n disabled = false;\n\n /** Whether the input is readonly */\n @Prop()\n readonly = false;\n\n /** Whether the input is required */\n @Prop()\n required = false;\n\n /** Input autocomplete attribute */\n @Prop()\n autocomplete?: string;\n\n /** Min length for text input */\n @Prop()\n minLength?: number;\n\n /** Max length for text input */\n @Prop()\n maxLength?: number;\n\n /** Min value for number input */\n @Prop()\n min?: number;\n\n /** Max value for number input */\n @Prop()\n max?: number;\n\n /** Step value for number input */\n @Prop()\n step?: number;\n\n /** Pattern for validation */\n @Prop()\n pattern?: string;\n\n /** Input label for accessibility */\n @Prop()\n label?: string;\n\n /** Error message to display */\n @Prop()\n errorMessage?: string;\n\n /** Caption text to display below input */\n @Prop()\n captionText?: string;\n\n /** ID of associated label element */\n @Prop()\n labelledby?: string;\n\n /** ID of associated caption/error text element */\n @Prop()\n describedby?: string;\n\n /** Prefix icon class name */\n @Prop()\n prefixIcon?: string;\n\n /** Suffix icon class name */\n @Prop()\n suffixIcon?: string;\n\n /** Whether to use native form validation\n * If false, component will handle validation internally\n */\n @Prop()\n useNativeValidation = true;\n\n /** Custom validation function */\n @Prop()\n validator?: (value: string) => string | undefined;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmInput: EventEmitter<InputEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<Event>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyDown: EventEmitter<KeyboardEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyUp: EventEmitter<KeyboardEvent>;\n\n @Watch('value')\n handleValueChange(newValue: string) {\n if (this.inputRef) {\n this.inputRef.value = newValue;\n }\n }\n\n @Watch('status')\n watchStatus(newValue: InputStatus) {\n this.internalStatus = newValue;\n }\n\n @Watch('errorMessage')\n watchErrorMessage(newValue: string) {\n this.internalErrorMessage = newValue;\n }\n\n @Method()\n async setFocus() {\n this.inputRef?.focus();\n }\n\n @Method()\n async setBlur() {\n this.inputRef?.blur();\n }\n\n @Method()\n async select() {\n this.inputRef?.select();\n }\n\n /** Sets locale and messages for all inputs */\n @Method()\n async setLocale(locale: string, messages: Record<string, string>) {\n // Set messages and update validation immediately\n setValidationMessages(locale, messages);\n\n // Mevcut validasyon mesajını güncelle\n if (!this.isValid) {\n this.validateInput();\n }\n }\n\n componentWillLoad() {\n // I18n için default mesajları set et\n setValidationMessages('en', defaultValidationMessages);\n this.internalStatus = this.status;\n this.internalErrorMessage = this.errorMessage;\n }\n\n private validateInput(): void {\n if (!this.inputRef) return;\n\n // Reset validation state\n this.isValid = true;\n this.validationMessage = '';\n\n const value = this.inputRef.value;\n\n // Required check\n if (this.required && !value) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('required');\n this.internalStatus = 'error';\n this.internalErrorMessage = this.validationMessage;\n return;\n }\n\n // Minimum length check\n else if (this.minLength && value.length < this.minLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('minlength', { min: this.minLength });\n }\n // Maximum length check\n else if (this.maxLength && value.length > this.maxLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('maxlength', { max: this.maxLength });\n }\n // Pattern check\n else if (this.pattern && !new RegExp(this.pattern).test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('pattern');\n }\n // Email check\n else if (this.type === 'email' && value && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('email');\n }\n // Number range check\n else if (this.type === 'number' && value) {\n const numValue = parseFloat(value);\n if (this.min !== undefined && numValue < this.min) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('min', { min: this.min });\n } else if (this.max !== undefined && numValue > this.max) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('max', { max: this.max });\n }\n }\n\n // Update component state\n this.internalStatus = this.isValid ? 'default' : 'error';\n this.internalErrorMessage = this.validationMessage;\n }\n\n private onInput = (event: InputEvent) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.bcmInput.emit(event);\n this.validateInput();\n };\n\n private onChange = (event: Event) => {\n this.bcmChange.emit(event);\n };\n\n private onFocus = (event: FocusEvent) => {\n this.isFocused = true;\n this.bcmFocus.emit(event);\n };\n\n private onBlur = (event: FocusEvent) => {\n this.isFocused = false;\n this.bcmBlur.emit(event);\n this.validateInput();\n };\n\n private onKeyDown = (event: KeyboardEvent) => {\n this.bcmKeyDown.emit(event);\n };\n\n private onKeyUp = (event: KeyboardEvent) => {\n this.bcmKeyUp.emit(event);\n };\n\n private hasSlotContent(slotName: string): boolean {\n return checkSlotContent(this.el, slotName);\n }\n\n private styleClass = tv(\n {\n slots: {\n base: [\n 'bcm-input bcm-input__container',\n 'bg-[--bcm-ui-color-background-base-default]',\n 'text-[--bcm-ui-color-text-default]',\n 'border border-solid rounded',\n 'flex items-center justify-between',\n 'transition-colors duration-200',\n 'px-2',\n ],\n inputClass: [\n 'input',\n 'w-full flex-1',\n 'border-0 outline-0 bg-transparent',\n 'appearance-none text-ellipsis',\n 'text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal',\n 'font-sans antialiased font-medium',\n 'px-1',\n '[appearance:textfield][&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n ],\n },\n variants: {\n size: {\n small: {\n base: '',\n inputClass: 'text-size-4 py-px',\n },\n medium: {\n base: '',\n inputClass: 'text-size-5 leading-6 py-1',\n },\n large: {\n base: '',\n inputClass: 'text-size-6 py-2',\n },\n },\n status: {\n default: {\n base: ['border-[--bcm-ui-color-border-default]', 'hover:border-[--bcm-ui-color-border-primary]', 'has-[:focus]:border-[--bcm-ui-color-border-primary]'],\n },\n error: {\n base: ['border-[--bcm-ui-color-border-error]', 'hover:border-[--bcm-ui-color-border-error]', 'has-[:focus]:border-[--bcm-ui-color-border-error]'],\n },\n success: {\n base: ['border-[--bcm-ui-color-border-success]', 'hover:border-[--bcm-ui-color-border-success]', 'has-[:focus]:border-[--bcm-ui-color-border-success]'],\n },\n warning: {\n base: ['border-[--bcm-ui-color-border-warning]', 'hover:border-[--bcm-ui-color-border-warning]', 'has-[:focus]:border-[--bcm-ui-color-border-warning]'],\n },\n info: {\n base: ['border-[--bcm-ui-color-border-info]', 'hover:border-[--bcm-ui-color-border-info]', 'has-[:focus]:border-[--bcm-ui-color-border-info]'],\n },\n },\n fullWidth: {\n true: 'full-width w-full',\n },\n disabled: {\n true: 'disabled cursor-not-allowed',\n false: '',\n },\n focused: {\n true: {\n base: '',\n },\n },\n },\n defaultVariants: {\n size: 'medium',\n status: 'default',\n fullWidth: false,\n disabled: false,\n focused: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n private getDefaultIconForType(): string | undefined {\n return; // TODO: Will be implemented later\n // return defaultIcons[this.type as keyof typeof defaultIcons];\n }\n\n private togglePasswordVisibility = () => {\n this.isPasswordVisible = !this.isPasswordVisible;\n this.inputRef.type = this.isPasswordVisible ? 'text' : 'password';\n };\n\n private PasswordToggleButton = () => {\n if (this.type !== 'password' || this.disabled || this.readonly || this.value?.length === 0) return null;\n return (\n <button class=\"appearance-none flex items-center w-6 h-full justify-center\" onClick={this.togglePasswordVisibility} type=\"button\">\n <bcm-icon name={this.isPasswordVisible ? 'fa-eye-slash fa-regular' : 'fa-regular fa-eye'} size={this.iconSize}></bcm-icon>\n </button>\n );\n };\n\n private iconSize = {\n small: 14,\n medium: 16,\n large: 18,\n }[this.size];\n\n render() {\n const inputId = this._id + '-input' || this.name;\n\n const { base, inputClass } = this.styleClass({\n size: this.size,\n status: this.internalStatus,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n focused: this.isFocused,\n });\n\n return (\n <div class=\"bcm-ui-element\">\n {this.label && (\n <label\n class={classNames(\n 'input-label font-medium',\n {\n 'text-color-label': !this.disabled,\n 'text-color-disabled': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n htmlFor={inputId}\n >\n <slot name=\"label\">{this.label}</slot>\n {this.required && <span>*</span>}\n </label>\n )}\n\n <div class={base()}>\n {(this.hasSlotContent('prefix') || this.prefixIcon || this.getDefaultIconForType()) && (\n <div class=\"flex items-center gap-2 px-2\">\n {(this.prefixIcon || this.getDefaultIconForType()) && (\n <bcm-icon class=\"prefix-icon\" icon-name={this.prefixIcon || this.getDefaultIconForType()} size={this.iconSize}></bcm-icon>\n )}\n <slot name=\"prefix\"></slot>\n </div>\n )}\n <input\n ref={el => (this.inputRef = el)}\n id={inputId}\n class={inputClass()}\n type={this.type}\n name={this.name}\n disabled={this.disabled}\n readonly={this.readonly}\n required={this.required}\n placeholder={this.placeholder}\n autocomplete={this.autocomplete}\n minlength={this.minLength}\n maxlength={this.maxLength}\n min={this.min}\n max={this.max}\n step={this.step}\n pattern={this.pattern}\n aria-invalid={this.status === 'error'}\n aria-required={this.required}\n aria-labelledby={this.labelledby}\n aria-describedby={this.describedby}\n value={this.value}\n onInput={this.onInput}\n onChange={this.onChange}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onKeyDown={this.onKeyDown}\n onKeyUp={this.onKeyUp}\n />\n {(this.hasSlotContent('suffix') || this.suffixIcon) && (\n <div class=\"flex items-center gap-2 px-2\">\n <slot name=\"suffix\"></slot>\n {this.suffixIcon && <bcm-icon class=\"suffix-icon\" icon-name={this.suffixIcon} size={this.iconSize}></bcm-icon>}\n </div>\n )}\n {/* {this.type === 'password' && this.value?.length > 0 && !this.disabled && ( \n // <bcm-icon\n // class=\"password-toggle-icon cursor-pointer\"\n // icon-name={this.isPasswordVisible ? 'fa-regular fa-eye-slash' : 'fa-regular fa-eye'}\n // size={iconSize}\n // onClick={this.togglePasswordVisibility}\n // ></bcm-icon>\n // )}*/}\n {this.PasswordToggleButton()}\n </div>\n {(this.captionText || this.internalErrorMessage || this.validationMessage) && (\n <div\n class={classNames(\n 'input-caption-text font-regular mt-1',\n {\n 'text-[--bcm-ui-color-text-caption]': !this.disabled && this.internalStatus === 'default',\n 'text-[--bcm-ui-color-text-error]': !this.disabled && (this.internalStatus === 'error' || !this.isValid),\n 'text-[--bcm-ui-color-text-success]': !this.disabled && this.internalStatus === 'success',\n 'text-[--bcm-ui-color-text-warning]': !this.disabled && this.internalStatus === 'warning',\n 'text-[--bcm-ui-color-text-info]': !this.disabled && this.internalStatus === 'info',\n 'text-[--bcm-ui-color-text-disabled]': this.disabled,\n },\n {\n 'text-size-3': this.size === 'small',\n 'text-size-4': this.size === 'medium',\n 'text-size-5': this.size === 'large',\n },\n )}\n >\n {!this.isValid ? this.validationMessage : this.internalStatus === 'error' ? this.internalErrorMessage : this.captionText}\n </div>\n )}\n </div>\n );\n }\n}\n","bcm-linked {\n display: block;\n position: relative;\n}\nbcm-linked[append-to-body] {\n display: none;\n}\n\n.floating-content {\n min-width: max-content;\n transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;\n will-change: transform, opacity;\n}\n\n.floating-visible {\n animation: fadeInScale 0.2s ease-out;\n}\n\n.floating-hidden {\n display: none !important;\n pointer-events: none;\n}\n\n.floating-wrapper {\n position: relative;\n z-index: 1;\n}\n\n/* Animations */\n@keyframes fadeInScale {\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-5px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n\n/* Arrow Styles */\n.floating-arrow {\n position: absolute;\n width: 10px;\n height: 10px;\n z-index: -1;\n}\n\n.floating-arrow::before {\n content: '';\n position: absolute;\n width: 10px;\n height: 10px;\n background: white;\n border: 1px solid #e2e8f0;\n transform: rotate(45deg);\n}\n\n/* Arrow positioning based on placement */\n.arrow-top {\n bottom: -5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.arrow-bottom {\n top: -5px;\n left: 50%;\n transform: translateX(-50%);\n}\n\n.arrow-left {\n right: -5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n.arrow-right {\n left: -5px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* Arrow border fix for bordered popups */\n.arrow-top::before {\n border-bottom: 0;\n border-right: 0;\n}\n\n.arrow-bottom::before {\n border-top: 0;\n border-left: 0;\n}\n\n.arrow-left::before {\n border-top: 0;\n border-right: 0;\n}\n\n.arrow-right::before {\n border-bottom: 0;\n border-left: 0;\n}\n\n/* Responsive adjustments */\n@media (max-width: 768px) {\n .floating-content {\n max-width: calc(100vw - 32px);\n max-height: calc(100vh - 32px);\n }\n}\n","import { Component, ComponentInterface, Prop, Element, State, h, Event, EventEmitter, Watch, Method, Host } from '@stencil/core';\nimport { computePosition, shift, offset, autoUpdate, flip, type Placement } from '@floating-ui/dom';\n\nexport type TriggerType = 'hover' | 'click' | 'focus' | 'manual';\n\n@Component({\n tag: 'bcm-linked',\n styleUrl: 'linked.css',\n shadow: false,\n})\nexport class BcmLinked implements ComponentInterface {\n @Element() host: HTMLElement;\n\n // Target configuration\n @Prop({ reflect: true, attribute: 'target-id' }) targetId?: string;\n @Prop() targetElement?: HTMLElement;\n\n // Trigger configuration\n @Prop() trigger: TriggerType = 'click';\n @Prop() placement: Placement = 'bottom-start';\n\n // Timing configuration\n @Prop() showDelay: number = 0;\n @Prop() hideDelay: number = 0;\n\n // Positioning configuration\n @Prop() offset: number = 8;\n @Prop() arrow: boolean = false;\n @Prop() disabled: boolean = false;\n\n // Style configuration\n @Prop() zIndex: number = 1000;\n @Prop() appendToBody: boolean = false;\n @Prop() destroyOnHide: boolean = false;\n\n // State\n @State() isVisible: boolean = false;\n @State() isReady: boolean = false;\n\n // Events\n @Event() bcmShow: EventEmitter<void>;\n @Event() bcmHide: EventEmitter<void>;\n @Event() bcmShown: EventEmitter<void>;\n @Event() bcmHidden: EventEmitter<void>;\n\n // Private properties\n private floatingEl?: HTMLElement;\n private targetEl?: HTMLElement;\n private showTimeout?: NodeJS.Timeout;\n private hideTimeout?: NodeJS.Timeout;\n private cleanup?: () => void;\n private clickOutsideHandler?: (e: MouseEvent) => void;\n private resizeObserver?: ResizeObserver;\n private originalParent?: Node;\n private originalNextSibling?: Node;\n\n // Watch for changes\n @Watch('targetId')\n @Watch('targetElement')\n setupTarget() {\n this.disconnectTarget();\n this.connectTarget();\n }\n\n @Watch('isVisible')\n onVisibilityChange(newValue: boolean) {\n if (newValue) {\n this.updatePosition();\n this.bcmShown.emit();\n } else {\n this.bcmHidden.emit();\n }\n }\n\n async componentDidLoad() {\n // Wait for render\n await new Promise(resolve => requestAnimationFrame(resolve));\n\n this.floatingEl = this.host.querySelector('.floating-content') as HTMLElement;\n\n if (this.floatingEl) {\n this.isReady = true;\n this.connectTarget();\n this.setupFloatingObserver();\n console.log('✅ bcm-linked initialized successfully');\n } else {\n console.error('❌ Could not find .floating-content element');\n }\n }\n\n disconnectedCallback() {\n this.disconnectTarget();\n this.clearTimeouts();\n this.cleanup?.();\n this.resizeObserver?.disconnect();\n\n // Restore element to original position if component is destroyed while in portal\n if (this.appendToBody && this.floatingEl && this.originalParent) {\n this.originalParent.appendChild(this.floatingEl);\n }\n }\n\n private connectTarget() {\n if (!this.isReady) return;\n\n // Find target element\n this.targetEl =\n this.targetElement || (this.targetId ? document.getElementById(this.targetId) : null) || (this.host.previousElementSibling as HTMLElement) || this.host.parentElement;\n\n if (!this.targetEl) {\n console.warn('bcm-linked: No target element found');\n return;\n }\n\n // Setup event listeners based on trigger type\n this.setupEventListeners();\n\n // Setup auto-update for position\n if (this.targetEl && this.floatingEl) {\n this.cleanup = autoUpdate(this.targetEl, this.floatingEl, () => {\n if (this.isVisible) {\n this.updatePosition();\n }\n });\n }\n\n // Setup resize observer for responsive positioning\n this.resizeObserver = new ResizeObserver(() => {\n if (this.isVisible) {\n this.updatePosition();\n }\n });\n this.resizeObserver.observe(this.floatingEl);\n }\n\n private disconnectTarget() {\n if (this.targetEl) {\n this.removeEventListeners();\n }\n this.cleanup?.();\n this.resizeObserver?.disconnect();\n }\n\n private setupEventListeners() {\n if (!this.targetEl || this.disabled) return;\n\n switch (this.trigger) {\n case 'hover':\n this.targetEl.addEventListener('mouseenter', this.handleMouseEnter);\n this.targetEl.addEventListener('mouseleave', this.handleMouseLeave);\n this.floatingEl?.addEventListener('mouseenter', this.handleFloatingMouseEnter);\n this.floatingEl?.addEventListener('mouseleave', this.handleFloatingMouseLeave);\n break;\n\n case 'click':\n this.targetEl.addEventListener('click', this.handleClick);\n this.setupClickOutside();\n break;\n\n case 'focus':\n this.targetEl.addEventListener('focus', this.handleFocus);\n this.targetEl.addEventListener('blur', this.handleBlur);\n break;\n }\n }\n\n private removeEventListeners() {\n if (!this.targetEl) return;\n\n this.targetEl.removeEventListener('mouseenter', this.handleMouseEnter);\n this.targetEl.removeEventListener('mouseleave', this.handleMouseLeave);\n this.targetEl.removeEventListener('click', this.handleClick);\n this.targetEl.removeEventListener('focus', this.handleFocus);\n this.targetEl.removeEventListener('blur', this.handleBlur);\n\n this.floatingEl?.removeEventListener('mouseenter', this.handleFloatingMouseEnter);\n this.floatingEl?.removeEventListener('mouseleave', this.handleFloatingMouseLeave);\n\n this.removeClickOutside();\n }\n\n private setupClickOutside() {\n this.clickOutsideHandler = (e: MouseEvent) => {\n const target = e.target as Node;\n if (!this.floatingEl?.contains(target) && !this.targetEl?.contains(target) && !this.host.contains(target)) {\n this.hide();\n }\n };\n document.addEventListener('click', this.clickOutsideHandler, true);\n }\n\n private removeClickOutside() {\n if (this.clickOutsideHandler) {\n document.removeEventListener('click', this.clickOutsideHandler, true);\n this.clickOutsideHandler = undefined;\n }\n }\n\n private handleMouseEnter = () => {\n this.clearTimeouts();\n if (this.showDelay > 0) {\n this.showTimeout = setTimeout(() => this.show(), this.showDelay);\n } else {\n this.show();\n }\n };\n\n private handleMouseLeave = () => {\n this.clearTimeouts();\n if (this.hideDelay > 0) {\n this.hideTimeout = setTimeout(() => this.hide(), this.hideDelay);\n } else {\n this.hide();\n }\n };\n\n private handleFloatingMouseEnter = () => {\n this.clearTimeouts();\n };\n\n private handleFloatingMouseLeave = () => {\n this.clearTimeouts();\n if (this.hideDelay > 0) {\n this.hideTimeout = setTimeout(() => this.hide(), this.hideDelay);\n } else {\n this.hide();\n }\n };\n\n private handleClick = (e: Event) => {\n e.stopPropagation();\n this.toggle();\n };\n\n private handleFocus = () => {\n this.show();\n };\n\n private handleBlur = () => {\n this.hide();\n };\n\n private clearTimeouts() {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = undefined;\n }\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = undefined;\n }\n }\n\n private async updatePosition() {\n if (!this.targetEl || !this.floatingEl || !this.isVisible) return;\n\n // Use autoPlacement only for bottom-start (dropdown default)\n // For other placements, respect the manual placement with flip fallback\n // const useAutoPlacement = this.placement === 'bottom-start';\n\n const middleware = [\n offset(this.offset),\n // useAutoPlacement\n // ? autoPlacement({\n // allowedPlacements: ['bottom-start', 'bottom-end', 'bottom', 'top-start', 'top-end', 'top', 'right-start', 'right-end', 'right', 'left-start', 'left-end', 'left'],\n // boundary: document.body,\n // })\n // :\n flip({\n fallbackPlacements: ['top', 'bottom', 'left', 'right', 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-start', 'left-end', 'right-start', 'right-end'],\n }),\n shift({\n padding: 8,\n }),\n ];\n\n const { x, y, placement } = await computePosition(this.targetEl, this.floatingEl, {\n placement: this.placement,\n middleware,\n strategy: 'fixed',\n });\n\n Object.assign(this.floatingEl.style, {\n left: `${x}px`,\n top: `${y}px`,\n zIndex: this.zIndex.toString(),\n });\n\n // Update arrow if enabled\n if (this.arrow) {\n this.updateArrow(placement);\n }\n }\n\n private updateArrow(placement: Placement) {\n const arrow = this.floatingEl?.querySelector('.floating-arrow') as HTMLElement;\n if (!arrow) return;\n\n // Remove all arrow classes\n arrow.className = 'floating-arrow';\n\n // Add placement-specific class\n const side = placement.split('-')[0];\n arrow.classList.add(`arrow-${side}`);\n }\n\n @Method()\n async show(): Promise<void> {\n if (this.disabled || this.isVisible) return;\n\n this.bcmShow.emit();\n\n // Portalling: Move the floating element to the body\n if (this.appendToBody && this.floatingEl) {\n this.originalParent = this.floatingEl.parentNode;\n this.originalNextSibling = this.floatingEl.nextSibling;\n document.body.appendChild(this.floatingEl);\n }\n\n this.isVisible = true;\n\n // Use requestAnimationFrame to ensure the element is visible before positioning\n await new Promise(resolve => requestAnimationFrame(resolve));\n await this.updatePosition();\n }\n\n @Method()\n async hide(): Promise<void> {\n if (!this.isVisible) return;\n\n this.bcmHide.emit();\n this.isVisible = false;\n\n // Portalling: Restore the floating element to its original position\n if (this.appendToBody && this.floatingEl && this.originalParent) {\n if (this.originalNextSibling) {\n this.originalParent.insertBefore(this.floatingEl, this.originalNextSibling);\n } else {\n this.originalParent.appendChild(this.floatingEl);\n }\n this.originalParent = undefined;\n this.originalNextSibling = undefined;\n }\n\n if (this.destroyOnHide && this.floatingEl && this.floatingEl.parentNode) {\n this.floatingEl.parentNode.removeChild(this.floatingEl);\n }\n }\n\n @Method()\n async toggle(): Promise<void> {\n if (this.isVisible) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n @Method()\n async updatePositioning(): Promise<void> {\n await this.updatePosition();\n }\n\n private setupFloatingObserver() {\n if (!this.floatingEl) return;\n\n // Observe floating element size changes for position updates\n this.resizeObserver = new ResizeObserver(() => {\n if (this.isVisible) {\n this.updatePosition();\n }\n });\n\n this.resizeObserver.observe(this.floatingEl);\n }\n\n render() {\n const floatingClasses = {\n 'floating-content': true,\n 'floating-visible': this.isVisible,\n 'floating-hidden': !this.isVisible,\n 'floating-with-arrow': this.arrow,\n 'floating-destroy-on-hide': this.destroyOnHide,\n };\n\n return (\n <Host>\n <div\n class={floatingClasses}\n style={{\n position: 'fixed',\n top: '0px',\n left: '0px',\n zIndex: this.zIndex.toString(),\n display: this.isVisible ? 'block' : 'none',\n visibility: this.isVisible ? 'visible' : 'hidden',\n opacity: this.isVisible ? '1' : '0',\n pointerEvents: this.isVisible ? 'auto' : 'none',\n }}\n >\n {this.arrow && <div class=\"floating-arrow\" />}\n <div class=\"floating-wrapper\">\n <slot></slot>\n </div>\n </div>\n <div style={{ display: 'none' }}>\n <slot name=\"fallback\"></slot>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n}\n","import { Component, ComponentInterface, Prop, h } from '@stencil/core';\nimport cs from 'classnames';\n\nconst osKeys = {\n ctrl: '⌘',\n alt: '⌥',\n shift: '⇧',\n del: '⌫',\n delete: '⌫',\n backspace: '⌦',\n enter: '⏎',\n return: '⏎',\n};\n\n@Component({\n tag: 'bcm-shortcut',\n styleUrl: './shortcut.css',\n shadow: true,\n})\nexport class BcmShortcut implements ComponentInterface {\n @Prop() hotkey: string;\n @Prop() size: 'small' | 'medium' | 'large' = 'small';\n\n private readonly isMac = /Mac/.test(window.navigator.userAgent);\n\n getHotkey(key: string): string {\n if (!key) {\n return '';\n }\n if (this.isMac && (key.includes(' ') || key.includes('+'))) {\n const keys = key.split(/[\\s+]+/);\n return keys.map(k => osKeys[k] || k).join('');\n } else {\n return key;\n }\n }\n\n render() {\n const { size, hotkey } = this;\n\n return (\n <div\n class={cs(\n 'bcm-ui-element bcm-ui-content-display',\n 'block h-fit w-fit rounded border border-solid px-1',\n 'border-color-default bg-color-default text-color-default',\n 'text-center font-medium capitalize',\n {\n 'text-size-2': size === 'small',\n 'text-size-3': size === 'medium',\n 'text-size-4': size === 'large',\n },\n )}\n >\n {this.getHotkey(hotkey)}\n </div>\n );\n }\n}\n","import { TextVariant, TextTag } from './text.types';\n\nexport const variantTagMap: Record<TextVariant, TextTag> = {\n display: 'h1',\n heading1: 'h2',\n heading2: 'h3',\n title1: 'h4',\n title2: 'h5',\n title3: 'h6',\n body: 'p',\n bodyAccent: 'p',\n helper: 'p',\n caption: 'p',\n label: 'label',\n placeholder: 'p',\n link: 'a',\n info: 'p',\n infoAccent: 'p',\n};\n",null,"import { Component, h, Prop } from '@stencil/core';\nimport cs from 'classnames';\nimport { TextVariant, TextSize } from './text.types';\nimport { variantTagMap } from './text.utils';\n\n@Component({\n tag: 'bcm-text',\n styleUrl: 'text.scss',\n shadow: true,\n})\nexport class BcmText {\n /** Text content */\n @Prop()\n text: string;\n\n /** Text variant */\n @Prop()\n variant: TextVariant = 'body';\n\n /** Text size */\n @Prop()\n size: TextSize = 'medium';\n\n /** Text overflow behavior */\n @Prop()\n overflow: boolean = false;\n\n private readonly variantClassMap = {\n display: 'font-semibold text-size-12 text-color-header',\n heading1: 'font-semibold text-size-7 text-color-header',\n heading2: 'font-semibold text-size-6 text-color-header',\n title1: {\n small: 'font-semibold text-size-5 text-color-header',\n medium: 'font-semibold text-size-6 text-color-header',\n large: 'font-semibold text-size-7 text-color-header',\n },\n title2: {\n small: 'font-semibold text-size-4 text-color-default',\n medium: 'font-semibold text-size-5 text-color-default',\n large: 'font-semibold text-size-6 text-color-default',\n },\n title3: {\n small: 'font-semibold text-size-3 text-color-disabled',\n medium: 'font-semibold text-size-4 text-color-disabled',\n large: 'font-semibold text-size-5 text-color-disabled',\n },\n body: {\n small: 'font-regular text-size-4 text-color-default',\n medium: 'font-regular text-size-5 text-color-default',\n large: 'font-regular text-size-6 text-color-default',\n },\n bodyAccent: {\n small: 'font-medium text-size-4 text-color-default',\n medium: 'font-medium text-size-5 text-color-default',\n large: 'font-medium text-size-6 text-color-default',\n },\n helper: {\n small: 'font-regular text-size-4 text-color-helper',\n medium: 'font-regular text-size-5 text-color-helper',\n large: 'font-regular text-size-6 text-color-helper',\n },\n caption: {\n small: 'font-regular text-size-3 text-color-caption',\n medium: 'font-regular text-size-4 text-color-caption',\n large: 'font-regular text-size-5 text-color-caption',\n },\n link: {\n small: 'font-medium text-size-4 underline text-color-primary',\n medium: 'font-medium text-size-5 underline text-color-primary',\n large: 'font-medium text-size-6 underline text-color-primary',\n },\n label: {\n small: 'font-medium text-size-3 text-color-label',\n medium: 'font-medium text-size-4 text-color-label',\n large: 'font-medium text-size-5 text-color-label',\n },\n placeholder: {\n small: 'font-regular text-size-4 text-color-placeholder',\n medium: 'font-regular text-size-5 text-color-placeholder',\n large: 'font-regular text-size-6 text-color-placeholder',\n },\n info: {\n small: 'font-regular text-size-3 text-color-default',\n medium: 'font-regular text-size-4 text-color-default',\n large: 'font-regular text-size-5 text-color-default',\n },\n infoAccent: {\n small: 'font-medium text-size-3 text-color-header',\n medium: 'font-medium text-size-4 text-color-header',\n large: 'font-medium text-size-5 text-color-header',\n },\n } as const;\n\n private getTextClass = (variant: TextVariant, size: TextSize): string => {\n const variantClasses = this.variantClassMap[variant];\n\n if (typeof variantClasses === 'string') {\n return variantClasses;\n }\n\n return variantClasses[size];\n };\n\n private getOverflowClass = (overflow: boolean): string => {\n return overflow ? 'truncate' : '';\n };\n\n render() {\n const Tag = variantTagMap[this.variant];\n const variantClass = this.getTextClass(this.variant, this.size);\n const overflowClass = this.getOverflowClass(this.overflow ?? false);\n\n return (\n <Tag class={cs('bcm-text appearance-none m-0 p-0', variantClass, overflowClass)} part=\"text\">\n <slot>{this.text}</slot>\n </Tag>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as a,a as e}from"./p-B84DzIAh.js";import{t as o}from"./p-CEcVC0yX.js";const n=".relative{position:relative}.block{display:block}:host{display:block;position:relative}:host([variant=full-width]){width:100%}:host([variant=auto-width]){width:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.flex{display:flex}.contents{display:contents}.w-auto{width:auto}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}";const h=class{constructor(s){t(this,s);this.bcmTabChange=i(this,"bcmTabChange",1);this.size="medium";this.variant="full-width";this.smooth=true;this.triggers=[];this.contents=[];this.tabClass=o({base:"tabs-container bcm-ui-element flex flex-col",variants:{variant:{"full-width":"w-full","auto-width":"w-auto"}},defaultVariants:{variant:"full-width"}})}componentWillLoad(){this.activeTab=this.defaultValue}componentDidLoad(){this.refreshElementReferences();this.updateTriggerProperties();this.updateTabsListProperties();
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as i,h as s,H as a,a as e}from"./p-B84DzIAh.js";import{t as o}from"./p-CEcVC0yX.js";const n=".relative{position:relative}.block{display:block}:host{display:block;position:relative}:host([variant=full-width]){width:100%}:host([variant=auto-width]){width:auto}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.flex{display:flex}.contents{display:contents}.w-auto{width:auto}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}";const h=class{constructor(s){t(this,s);this.bcmTabChange=i(this,"bcmTabChange",1);this.size="medium";this.variant="full-width";this.smooth=true;this.triggers=[];this.contents=[];this.tabClass=o({base:"tabs-container bcm-ui-element flex flex-col",variants:{variant:{"full-width":"w-full","auto-width":"w-auto"}},defaultVariants:{variant:"full-width"}})}componentWillLoad(){this.activeTab=this.defaultValue}componentDidLoad(){this.refreshElementReferences();this.updateTriggerProperties();this.updateTabsListProperties();if(!this.defaultValue&&this.triggers.length>0){this.activeTab=this.triggers[0].value}this.setupRelations();if(this.variant==="auto-width"){requestAnimationFrame((()=>{this.updateInkbar();this.updateContentVisibility()}))}else{this.updateInkbar();this.updateContentVisibility()}}refreshElementReferences(){this.triggers=Array.from(this.el.querySelectorAll("bcm-tabs-trigger"));this.contents=Array.from(this.el.querySelectorAll("bcm-tabs-content"));this.tabsList=this.el.querySelector("bcm-tabs-list")}setupRelations(){this.triggers.forEach((t=>{t.active=t.value===this.activeTab;const i=this.contents.find((i=>i.value===t.value));if(i){const s=`panel-${t.value}`;i.id=s;t.setAttribute("aria-controls",s);i.setAttribute("aria-labelledby",`trigger-${t.value}`);t.id=`trigger-${t.value}`}}))}updateTriggerProperties(){var t;if(((t=this.triggers)===null||t===void 0?void 0:t.length)>0){this.triggers.forEach((t=>{t.size=this.size;t.variant=this.variant;t.smooth=this.smooth}))}}updateTabsListProperties(){if(this.tabsList){this.tabsList.variant=this.variant;this.tabsList.smooth=this.smooth}}handleSizeChange(){this.updateTriggerProperties()}handleVariantChange(){this.updateTriggerProperties();this.updateTabsListProperties();if(this.variant==="auto-width"){requestAnimationFrame((()=>{this.updateInkbar()}))}else{this.updateInkbar()}}handleSmoothChange(){this.updateTriggerProperties();this.updateTabsListProperties()}async disableTab(t){const i=this.triggers.find((i=>i.value===t));if(i){i.disabled=true}}async enableTab(t){const i=this.triggers.find((i=>i.value===t));if(i){i.disabled=false}}async disableAllTabs(){this.triggers.forEach((t=>{t.disabled=true}))}async enableAllTabs(){this.triggers.forEach((t=>{t.disabled=false}))}async getActiveTab(){return this.activeTab}async setActiveTab(t){const i=this.triggers.find((i=>i.value===t));if(i&&!i.disabled){this.previousTab=this.activeTab;this.activeTab=t;this.updateInkbar();this.updateContentVisibility();this.updateTabStatus();this.bcmTabChange.emit({activeTab:this.activeTab,element:i,previousTab:this.previousTab})}}updateTabStatus(){this.triggers.forEach((t=>{const i=t.value===this.activeTab;t.active=i}))}handleResize(){this.updateInkbar()}handleTabSelected(t){this.previousTab=this.activeTab;this.activeTab=t.detail;this.updateTabStatus();this.updateInkbar();this.updateContentVisibility();const i=this.triggers.find((t=>t.value===this.activeTab));if(i){this.bcmTabChange.emit({activeTab:this.activeTab,element:i,previousTab:this.previousTab})}}updateContentVisibility(){this.contents.forEach((t=>{const i=t.value===this.activeTab;t.style.display=i?"block":"none";t.setAttribute("aria-hidden",(!i).toString())}))}updateInkbar(){var t,i;if(!this.tabsList){console.warn("bcm-tabs-list not found");return}const s=this.triggers.length;if(s===0)return;const a=(i=(t=this.tabsList)===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.querySelector(".inkbar");const e=this.triggers.find((t=>t.value===this.activeTab));if(e&&a){if(this.variant==="auto-width"){requestAnimationFrame((()=>{this.updateInkbarPosition(a,e)}))}else{this.updateInkbarPosition(a,e)}}else{if(a)a.style.opacity="0"}}updateInkbarPosition(t,i){var s,a,e;const o=i.getBoundingClientRect();const n=(e=(a=(s=this.tabsList)===null||s===void 0?void 0:s.shadowRoot)===null||a===void 0?void 0:a.querySelector(".tabs-list"))===null||e===void 0?void 0:e.getBoundingClientRect();if(o&&n){const i=o.left-n.left;const s=o.width;t.style.width=`${s}px`;t.style.transform=`translateX(${i}px)`;t.style.left="0";t.style.right="auto";if(this.smooth){t.style.opacity="1"}else{t.style.transition="none";t.style.opacity="1";requestAnimationFrame((()=>{t.style.transition=""}))}}else{console.warn("Group or trigger rect calculation failed");t.style.opacity="0"}}render(){return s(a,{key:"8ae1e76b89ba36c6e1e58363938a12c91f55a495"},s("div",{key:"a3608cf2b81e19d04a0b0dfd83740ee34d6e9cff",class:this.tabClass({variant:this.variant})},s("slot",{key:"209f2bc32b116d68647ca3358b331fa87177adb6",name:"tabs-list"}),s("slot",{key:"10b5c726a8a390c5592fda3ee85cf7461ce3efb9"})))}get el(){return e(this)}static get watchers(){return{size:["handleSizeChange"],variant:["handleVariantChange"],smooth:["handleSmoothChange"]}}};h.style=n;export{h as bcm_tabs};
|
|
2
|
+
//# sourceMappingURL=p-d3206345.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["bcmTabsCss","BcmTabs","constructor","hostRef","this","size","variant","smooth","triggers","contents","tabClass","tv","base","variants","defaultVariants","componentWillLoad","activeTab","defaultValue","componentDidLoad","refreshElementReferences","updateTriggerProperties","updateTabsListProperties","length","value","setupRelations","requestAnimationFrame","updateInkbar","updateContentVisibility","Array","from","el","querySelectorAll","tabsList","querySelector","forEach","trigger","active","panel","find","content","panelId","id","setAttribute","_a","handleSizeChange","handleVariantChange","handleSmoothChange","disableTab","t","disabled","enableTab","disableAllTabs","enableAllTabs","getActiveTab","setActiveTab","previousTab","updateTabStatus","bcmTabChange","emit","element","isActive","handleResize","handleTabSelected","event","detail","activeElement","isVisible","style","display","toString","console","warn","totalTriggers","inkbar","_b","shadowRoot","activeTrigger","updateInkbarPosition","opacity","triggerRect","getBoundingClientRect","groupRect","_c","left","width","transform","right","transition","render","h","Host","key","class","name"],"sources":["src/components/tabs/bcm-tabs.css?tag=bcm-tabs&encapsulation=shadow","src/components/tabs/tabs.component.tsx"],"sourcesContent":[":host {\n display: block;\n position: relative;\n}\n\n:host([variant='full-width']) {\n width: 100%;\n}\n\n:host([variant='auto-width']) {\n width: auto;\n}\n","import { Component, State, Prop, Element, h, Host, Listen, ComponentInterface, Event, EventEmitter, Watch, Method } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n/**\n * @description Tab interface component\n * @slot - Default slot for content area\n * @slot tabs-list - Special slot for tab list\n */\n@Component({\n tag: 'bcm-tabs',\n styleUrl: 'bcm-tabs.css',\n shadow: true,\n})\nexport class BcmTabs implements ComponentInterface {\n @Element() el: HTMLElement;\n\n /**\n * Default active tab value\n */\n @Prop({ reflect: true })\n defaultValue: string;\n\n /**\n * Tab size\n */\n @Prop({ reflect: true })\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Tab variant - controls width behavior\n */\n @Prop({ reflect: true })\n variant: 'full-width' | 'auto-width' = 'full-width';\n\n /**\n * Whether to enable smooth animations for inkbar and transitions\n */\n @Prop({ reflect: true })\n smooth: boolean = true;\n\n /**\n * Triggers when tab changes\n */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmTabChange',\n })\n bcmTabChange: EventEmitter<{\n activeTab: string;\n element: HTMLBcmTabsTriggerElement;\n previousTab?: string;\n }>;\n\n /**\n * Active tab value\n */\n @State() activeTab: string;\n\n /**\n * Previous active tab value\n */\n @State() previousTab: string;\n\n private triggers: HTMLBcmTabsTriggerElement[] = [];\n private contents: HTMLBcmTabsContentElement[] = [];\n private tabsList: HTMLBcmTabsListElement;\n\n componentWillLoad() {\n this.activeTab = this.defaultValue;\n }\n\n componentDidLoad() {\n this.refreshElementReferences();\n this.updateTriggerProperties();\n this.updateTabsListProperties();\n\n // Eğer defaultValue yoksa ilk tab'ı aktif yap\n if (!this.defaultValue && this.triggers.length > 0) {\n this.activeTab = this.triggers[0].value;\n }\n\n this.setupRelations(); // activeTab ayarlandıktan sonra relations'ı kur\n\n // auto-width variant'ında inkbar hesaplaması için ek gecikme\n if (this.variant === 'auto-width') {\n requestAnimationFrame(() => {\n this.updateInkbar();\n this.updateContentVisibility();\n });\n } else {\n this.updateInkbar();\n this.updateContentVisibility();\n }\n }\n\n /**\n * Refreshes DOM element references\n */\n private refreshElementReferences() {\n this.triggers = Array.from(this.el.querySelectorAll('bcm-tabs-trigger'));\n this.contents = Array.from(this.el.querySelectorAll('bcm-tabs-content'));\n this.tabsList = this.el.querySelector('bcm-tabs-list');\n }\n\n /**\n * Establishes relationships between tabs and content\n */\n private setupRelations() {\n this.triggers.forEach(trigger => {\n trigger.active = trigger.value === this.activeTab;\n const panel = this.contents.find(content => content.value === trigger.value);\n if (panel) {\n const panelId = `panel-${trigger.value}`;\n panel.id = panelId;\n trigger.setAttribute('aria-controls', panelId);\n panel.setAttribute('aria-labelledby', `trigger-${trigger.value}`);\n trigger.id = `trigger-${trigger.value}`;\n }\n });\n }\n\n private updateTriggerProperties() {\n if (this.triggers?.length > 0) {\n this.triggers.forEach(trigger => {\n trigger.size = this.size;\n trigger.variant = this.variant;\n trigger.smooth = this.smooth;\n });\n }\n }\n\n private updateTabsListProperties() {\n if (this.tabsList) {\n this.tabsList.variant = this.variant;\n this.tabsList.smooth = this.smooth;\n }\n }\n\n @Watch('size')\n handleSizeChange() {\n this.updateTriggerProperties();\n }\n\n @Watch('variant')\n handleVariantChange() {\n this.updateTriggerProperties();\n this.updateTabsListProperties();\n\n // auto-width variant'ında inkbar hesaplaması için ek gecikme\n if (this.variant === 'auto-width') {\n requestAnimationFrame(() => {\n this.updateInkbar();\n });\n } else {\n this.updateInkbar();\n }\n }\n\n @Watch('smooth')\n handleSmoothChange() {\n this.updateTriggerProperties();\n this.updateTabsListProperties();\n }\n\n @Method()\n async disableTab(value: string): Promise<void> {\n const trigger = this.triggers.find(t => t.value === value);\n if (trigger) {\n trigger.disabled = true;\n }\n }\n\n @Method()\n async enableTab(value: string): Promise<void> {\n const trigger = this.triggers.find(t => t.value === value);\n if (trigger) {\n trigger.disabled = false;\n }\n }\n\n /**\n * Disables all tabs\n */\n @Method()\n async disableAllTabs() {\n this.triggers.forEach(trigger => {\n trigger.disabled = true;\n });\n }\n\n /**\n * Enables all tabs\n */\n @Method()\n async enableAllTabs() {\n this.triggers.forEach(trigger => {\n trigger.disabled = false;\n });\n }\n\n /**\n * Returns the active tab value\n */\n @Method()\n async getActiveTab(): Promise<string> {\n return this.activeTab;\n }\n\n /**\n * Sets the active tab\n */\n @Method()\n async setActiveTab(value: string): Promise<void> {\n const trigger = this.triggers.find(t => t.value === value);\n if (trigger && !trigger.disabled) {\n this.previousTab = this.activeTab;\n this.activeTab = value;\n this.updateInkbar();\n this.updateContentVisibility();\n this.updateTabStatus();\n\n this.bcmTabChange.emit({\n activeTab: this.activeTab,\n element: trigger,\n previousTab: this.previousTab,\n });\n }\n }\n\n /**\n * Updates tab status\n */\n private updateTabStatus() {\n this.triggers.forEach(trigger => {\n const isActive = trigger.value === this.activeTab;\n trigger.active = isActive;\n });\n }\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n this.updateInkbar();\n }\n\n /**\n * Triggered when a tab is selected\n */\n @Listen('bcmTabSelected', { capture: true })\n handleTabSelected(event: CustomEvent<string>) {\n this.previousTab = this.activeTab;\n this.activeTab = event.detail;\n\n this.updateTabStatus();\n this.updateInkbar();\n this.updateContentVisibility();\n\n const activeElement = this.triggers.find(trigger => trigger.value === this.activeTab);\n if (activeElement) {\n this.bcmTabChange.emit({\n activeTab: this.activeTab,\n element: activeElement,\n previousTab: this.previousTab,\n });\n }\n }\n\n /**\n * Updates content visibility\n */\n private updateContentVisibility() {\n this.contents.forEach(content => {\n const isVisible = content.value === this.activeTab;\n content.style.display = isVisible ? 'block' : 'none';\n content.setAttribute('aria-hidden', (!isVisible).toString());\n });\n }\n\n /**\n * Updates inkbar position\n */\n private updateInkbar() {\n if (!this.tabsList) {\n console.warn('bcm-tabs-list not found');\n return;\n }\n\n const totalTriggers = this.triggers.length;\n if (totalTriggers === 0) return;\n\n const inkbar = this.tabsList?.shadowRoot?.querySelector('.inkbar') as HTMLElement;\n const activeTrigger = this.triggers.find(trigger => trigger.value === this.activeTab);\n\n if (activeTrigger && inkbar) {\n // auto-width variant'ında container genişliği henüz hesaplanmamış olabilir\n // Bu durumda bir sonraki frame'de tekrar deneyelim\n if (this.variant === 'auto-width') {\n requestAnimationFrame(() => {\n this.updateInkbarPosition(inkbar, activeTrigger);\n });\n } else {\n this.updateInkbarPosition(inkbar, activeTrigger);\n }\n } else {\n if (inkbar) inkbar.style.opacity = '0';\n }\n }\n\n /**\n * Updates inkbar position and size\n */\n private updateInkbarPosition(inkbar: HTMLElement, activeTrigger: HTMLElement) {\n const triggerRect = activeTrigger.getBoundingClientRect();\n const groupRect = this.tabsList?.shadowRoot?.querySelector('.tabs-list')?.getBoundingClientRect();\n\n if (triggerRect && groupRect) {\n const left = triggerRect.left - groupRect.left;\n const width = triggerRect.width;\n\n // Her iki variant için de aynı davranış: sadece aktif tab altında göster\n inkbar.style.width = `${width}px`;\n inkbar.style.transform = `translateX(${left}px)`;\n inkbar.style.left = '0';\n inkbar.style.right = 'auto';\n\n // smooth prop'una göre opacity geçişi\n if (this.smooth) {\n inkbar.style.opacity = '1';\n } else {\n // Animasyon olmadan anında göster\n inkbar.style.transition = 'none';\n inkbar.style.opacity = '1';\n // Bir sonraki frame'de transition'ı geri yükle\n requestAnimationFrame(() => {\n inkbar.style.transition = '';\n });\n }\n } else {\n console.warn('Group or trigger rect calculation failed');\n inkbar.style.opacity = '0';\n }\n }\n\n /**\n * Tab container class\n */\n private tabClass = tv({\n base: 'tabs-container bcm-ui-element flex flex-col',\n variants: {\n variant: {\n 'full-width': 'w-full',\n 'auto-width': 'w-auto',\n },\n },\n defaultVariants: {\n variant: 'full-width',\n },\n });\n\n render() {\n return (\n <Host>\n <div class={this.tabClass({ variant: this.variant })}>\n <slot name=\"tabs-list\" />\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|