bromcom-ui-next 0.1.17 → 0.1.19
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/bromcom-ui.esm.js +1 -1
- package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
- package/dist/bromcom-ui/p-01c8dde2.entry.js +2 -0
- package/dist/bromcom-ui/{p-09814383.entry.js.map → p-01c8dde2.entry.js.map} +1 -1
- package/dist/bromcom-ui/{p-37dc30d4.entry.js → p-07f19815.entry.js} +2 -2
- package/dist/bromcom-ui/{p-404e19f9.entry.js → p-145dce31.entry.js} +2 -2
- package/dist/bromcom-ui/{p-dd488642.entry.js → p-1e5da10e.entry.js} +2 -2
- package/dist/bromcom-ui/{p-b8292fb2.entry.js → p-1e726978.entry.js} +2 -2
- package/dist/bromcom-ui/p-357834a0.entry.js +2 -0
- package/dist/bromcom-ui/p-357834a0.entry.js.map +1 -0
- package/dist/bromcom-ui/p-67ceb7f3.entry.js +2 -0
- package/dist/bromcom-ui/{p-55e91bf6.entry.js.map → p-67ceb7f3.entry.js.map} +1 -1
- package/dist/bromcom-ui/{p-aae240d5.entry.js → p-9ba07f12.entry.js} +2 -2
- package/dist/bromcom-ui/{p-adda3b4e.entry.js → p-a02e437c.entry.js} +2 -2
- package/dist/bromcom-ui/{p-0721540b.entry.js → p-b582c170.entry.js} +2 -2
- package/dist/bromcom-ui/{p-bad19289.entry.js → p-b867a105.entry.js} +2 -2
- package/dist/bromcom-ui/{p-7e97d4e2.entry.js → p-bbe4aac2.entry.js} +2 -2
- package/dist/bromcom-ui/{p-76631abc.entry.js → p-bc962a70.entry.js} +2 -2
- package/dist/bromcom-ui/{p-49a74afe.entry.js → p-d975579d.entry.js} +2 -2
- package/dist/bromcom-ui/{p-77abe8d1.entry.js → p-e2f468ab.entry.js} +2 -2
- package/dist/cjs/bcm-accordion-group.cjs.entry.js +1 -1
- package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/{bcm-button_7.cjs.entry.js → bcm-button_8.cjs.entry.js} +210 -9
- package/dist/cjs/bcm-button_8.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js +1 -1
- package/dist/cjs/bcm-popover.cjs.entry.js +1 -1
- package/dist/cjs/bcm-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/bcm-radio.cjs.entry.js +1 -1
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +2 -2
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js +2 -2
- package/dist/cjs/bcm-switch.cjs.entry.js +2 -2
- package/dist/cjs/bcm-tabs-content.cjs.entry.js +1 -1
- package/dist/cjs/bcm-tabs-list.cjs.entry.js +1 -1
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +1 -1
- package/dist/cjs/bcm-tabs.cjs.entry.js +1 -1
- package/dist/cjs/bcm-textarea.cjs.entry.js +3 -3
- package/dist/cjs/bcm-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/bcm-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/bromcom-ui.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/accordion-group/accordion-group.css +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/drawer/drawer.component.js +453 -0
- package/dist/collection/components/drawer/drawer.component.js.map +1 -0
- package/dist/collection/components/drawer/drawer.css +1 -0
- package/dist/collection/components/dropdown/dropdown.component.js +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.component.js +2 -2
- package/dist/collection/components/input/input.component.js +2 -2
- package/dist/collection/components/pop-confirm/pop-confirm.component.js +1 -1
- package/dist/collection/components/popover/popover.component.js +1 -1
- package/dist/collection/components/radio/radio.component.js +1 -1
- package/dist/collection/components/radio-group/radio-group.component.js +2 -2
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +2 -2
- package/dist/collection/components/segmented-picker/segmented-picker.component.js +2 -2
- package/dist/collection/components/shortcut/shortcut.js +1 -1
- package/dist/collection/components/switch/switch.component.js +2 -2
- package/dist/collection/components/tabs/tabs-content.component.js +1 -1
- package/dist/collection/components/tabs/tabs-list.component.js +1 -1
- package/dist/collection/components/tabs/tabs-trigger.component.js +1 -1
- package/dist/collection/components/tabs/tabs.component.js +1 -1
- package/dist/collection/components/text/text.component.js +1 -1
- package/dist/collection/components/textarea/textarea.component.js +3 -3
- package/dist/collection/components/tooltip/tooltip.component.js +1 -1
- package/dist/collection/components/tooltip/tooltip.css +1 -1
- package/dist/components/bcm-accordion-group.js +1 -1
- package/dist/components/bcm-accordion-group.js.map +1 -1
- package/dist/components/bcm-button.js +1 -1
- package/dist/components/bcm-drawer.d.ts +11 -0
- package/dist/components/bcm-drawer.js +236 -0
- package/dist/components/bcm-drawer.js.map +1 -0
- package/dist/components/bcm-dropdown-item.js +2 -2
- package/dist/components/bcm-dropdown.js +2 -2
- package/dist/components/bcm-input.js +2 -2
- package/dist/components/bcm-pop-confirm.js +2 -2
- package/dist/components/bcm-popover.js +1 -1
- package/dist/components/bcm-radio-group.js +2 -2
- package/dist/components/bcm-radio.js +1 -1
- package/dist/components/bcm-segmented-picker-option.js +2 -2
- package/dist/components/bcm-segmented-picker.js +2 -2
- package/dist/components/bcm-shortcut.js +1 -1
- package/dist/components/bcm-switch.js +2 -2
- package/dist/components/bcm-tabs-content.js +1 -1
- package/dist/components/bcm-tabs-list.js +1 -1
- package/dist/components/bcm-tabs-trigger.js +1 -1
- package/dist/components/bcm-tabs.js +1 -1
- package/dist/components/bcm-text.js +1 -1
- package/dist/components/bcm-textarea.js +3 -3
- package/dist/components/bcm-tooltip.js +2 -2
- package/dist/components/bcm-tooltip.js.map +1 -1
- package/dist/components/{p-b5bee06c.js → p-923e07c4.js} +2 -2
- package/dist/components/{p-b5bee06c.js.map → p-923e07c4.js.map} +1 -1
- package/dist/esm/bcm-accordion-group.entry.js +1 -1
- package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
- package/dist/esm/{bcm-button_7.entry.js → bcm-button_8.entry.js} +210 -10
- package/dist/esm/bcm-button_8.entry.js.map +1 -0
- package/dist/esm/bcm-pop-confirm.entry.js +1 -1
- package/dist/esm/bcm-popover.entry.js +1 -1
- package/dist/esm/bcm-radio-group.entry.js +2 -2
- package/dist/esm/bcm-radio.entry.js +1 -1
- package/dist/esm/bcm-segmented-picker-option.entry.js +2 -2
- package/dist/esm/bcm-segmented-picker.entry.js +2 -2
- package/dist/esm/bcm-switch.entry.js +2 -2
- package/dist/esm/bcm-tabs-content.entry.js +1 -1
- package/dist/esm/bcm-tabs-list.entry.js +1 -1
- package/dist/esm/bcm-tabs-trigger.entry.js +1 -1
- package/dist/esm/bcm-tabs.entry.js +1 -1
- package/dist/esm/bcm-textarea.entry.js +3 -3
- package/dist/esm/bcm-tooltip.entry.js +2 -2
- package/dist/esm/bcm-tooltip.entry.js.map +1 -1
- package/dist/esm/bromcom-ui.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/drawer/drawer.component.d.ts +23 -0
- package/dist/types/components.d.ts +51 -0
- package/package.json +1 -1
- package/dist/bromcom-ui/p-09814383.entry.js +0 -2
- package/dist/bromcom-ui/p-55e91bf6.entry.js +0 -2
- package/dist/bromcom-ui/p-cf50b4df.entry.js +0 -2
- package/dist/bromcom-ui/p-cf50b4df.entry.js.map +0 -1
- package/dist/cjs/bcm-button_7.cjs.entry.js.map +0 -1
- package/dist/esm/bcm-button_7.entry.js.map +0 -1
- /package/dist/bromcom-ui/{p-37dc30d4.entry.js.map → p-07f19815.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-404e19f9.entry.js.map → p-145dce31.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-dd488642.entry.js.map → p-1e5da10e.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-b8292fb2.entry.js.map → p-1e726978.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-aae240d5.entry.js.map → p-9ba07f12.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-adda3b4e.entry.js.map → p-a02e437c.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-0721540b.entry.js.map → p-b582c170.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-bad19289.entry.js.map → p-b867a105.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-7e97d4e2.entry.js.map → p-bbe4aac2.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-76631abc.entry.js.map → p-bc962a70.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-49a74afe.entry.js.map → p-d975579d.entry.js.map} +0 -0
- /package/dist/bromcom-ui/{p-77abe8d1.entry.js.map → p-e2f468ab.entry.js.map} +0 -0
|
@@ -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","BcmButtonStyle0","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","BcmDrawerStyle0","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","BcmDropdownStyle0","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","BcmDropdownItemStyle0","DropdownItem","error","dropdownItemClass","bcmDropDownItemChange","rightIcons","map","checkSlotContent","slotName","slot","assignedNodes","inputCss","BcmInputStyle0","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","BcmLinkedStyle0","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","BcmShortcutStyle0","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","BcmTextStyle0","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-block;\n position: relative;\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 'tailwind-variants';\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 'tailwind-variants';\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 {\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 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 twMerge: false,\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 'tailwind-variants';\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 'tailwind-variants';\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\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 'tailwind-variants';\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 h-6',\n },\n medium: {\n base: '',\n inputClass: 'text-size-5 h-8',\n },\n large: {\n base: '',\n inputClass: 'text-size-6 h-10',\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":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o,c as r,h as a,g as e}from"./p-9d0aeb92.js";const t=".block{display:block}:host{--bcm-accordion-border:var(--bcm-ui-color-border-default);--bcm-accordion-radius:6px;display:block;width:100%}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.collapse{visibility:collapse}.static{position:static}.flex{display:flex}.w-full{width:100%}.flex-col{flex-direction:column}.rounded-\\[--bcm-accordion-radius\\]{border-radius:var(--bcm-accordion-radius)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-accordion-border\\]{border-color:var(--bcm-accordion-border)}.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)}.filter{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 i=t;const s=class{constructor(a){o(this,a);this.bcmAccordionGroupChange=r(this,"bcmAccordionGroupChange",1);this.multi=false;this.accordionItems=[];this.handleSlotChange=()=>{this.accordionItems=Array.from(this.host.querySelectorAll("bcm-accordion"));this.setGroupBehavior();if(this.accordionItems.length===0){console.warn("No accordion items found in accordion group")}}}async expandAll(){if(!this.multi){console.warn("expandAll is only available when multi=true");return}await Promise.all(this.accordionItems.map((o=>o.expand())))}async collapseAll(){await Promise.all(this.accordionItems.map((o=>o.collapse())))}async getExpandedItems(){return this.accordionItems.filter((o=>o.expanded))}componentWillLoad(){this.handleSlotChange()}setGroupBehavior(){this.accordionItems.forEach((o=>{o.group=true}))}handleAccordionChange(o){this.handleSlotChange();const{expanded:r,source:a}=o===null||o===void 0?void 0:o.detail;if(!this.multi){this.accordionItems.forEach((o=>{if(o!==a){o.collapse()}o.expanded=o===a?r:false}))}const e=this.accordionItems.filter((o=>o.expanded));this.bcmAccordionGroupChange.emit({expanded:r,changed:a,expandedItems:e,expandedCount:e.length})}render(){return a("div",{key:"6920d3b1eb09a1233b530b3c00da708f5c372cc8",class:"flex flex-col bcm-ui-element w-full border border-solid border-[--bcm-accordion-border] rounded-[--bcm-accordion-radius]",role:"group","aria-label":"Accordion group"},a("slot",{key:"be064576ff72ded1ddee5df1694201afc561bf55",onSlotchange:this.handleSlotChange}))}get host(){return e(this)}};s.style=i;export{s as bcm_accordion_group};
|
|
2
|
+
//# sourceMappingURL=p-67ceb7f3.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["accordionGroupCss","BcmAccordionGroupStyle0","BcmAccordionGroup","constructor","hostRef","this","multi","accordionItems","handleSlotChange","Array","from","host","querySelectorAll","setGroupBehavior","length","console","warn","expandAll","Promise","all","map","item","expand","collapseAll","collapse","getExpandedItems","filter","expanded","componentWillLoad","forEach","group","handleAccordionChange","event","source","detail","expandedItems","bcmAccordionGroupChange","emit","changed","expandedCount","render","h","key","class","role","onSlotchange"],"sources":["src/components/accordion-group/accordion-group.css?tag=bcm-accordion-group&encapsulation=shadow","src/components/accordion-group/accordion-group.component.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n --bcm-accordion-border: var(--bcm-ui-color-border-default);\n --bcm-accordion-radius: 6px;\n}\n","\nimport { Component, ComponentInterface, h, Element, Prop, Listen, State, Event, EventEmitter, Method } from '@stencil/core';\nimport { AccordionChangeEventType } from '../accordion/types';\nimport { AccordionGroupChangeEventType } from './types';\n\n/**\n* @component BcmAccordionGroup\n* @description A container component that manages a group of accordions. Provides single/multiple expansion \n* modes and methods for controlling all accordions simultaneously. Uses shadow DOM for style encapsulation.\n*\n* @example Basic usage - Single expansion mode\n* <bcm-accordion-group>\n* <bcm-accordion>\n* <div slot=\"title\">Section 1</div>\n* <div>Content 1</div>\n* </bcm-accordion>\n* <bcm-accordion>\n* <div slot=\"title\">Section 2</div>\n* <div>Content 2</div>\n* </bcm-accordion>\n* </bcm-accordion-group>\n*\n* @example Multiple expansion mode\n* <bcm-accordion-group multi={true}>\n* <bcm-accordion>...</bcm-accordion>\n* <bcm-accordion>...</bcm-accordion>\n* </bcm-accordion-group>\n* \n* @example Event handling\n* // Listen to accordion group changes\n* const accordionGroup = document.querySelector('bcm-accordion-group');\n* accordionGroup.addEventListener('bcmAccordionGroupChange', (event) => {\n* const { expanded, changed, expandedItems, expandedCount } = event.detail;\n* console.log('Accordion expanded state:', expanded);\n* console.log('Changed accordion:', changed);\n* console.log('Currently expanded accordions:', expandedItems);\n* console.log('Number of expanded accordions:', expandedCount);\n* });\n* \n* // Using methods\n* await accordionGroup.expandAll(); // Expands all accordions (only in multi mode)\n* await accordionGroup.collapseAll(); // Collapses all accordions\n* const expanded = await accordionGroup.getExpandedItems(); // Gets expanded accordions\n*\n* @prop {boolean} multi - Controls whether multiple accordions can be expanded simultaneously (default: false)\n*\n* @slot default - Container slot for bcm-accordion components\n*\n* @event {EventEmitter<AccordionGroupChangeEventType>} bcmAccordionGroupChange - Emitted when any accordion's state changes\n* @eventProperty {boolean} expanded - Current expanded state of the changed accordion\n* @eventProperty {HTMLElement} changed - The accordion element that triggered the change\n* @eventProperty {HTMLElement[]} expandedItems - Array of currently expanded accordion elements\n* @eventProperty {number} expandedCount - Number of currently expanded accordions\n*\n* @method expandAll() - Expands all accordions (only available in multi mode)\n* @method collapseAll() - Collapses all accordions\n* @method getExpandedItems() - Returns array of currently expanded accordions\n*\n* @csspart container - The accordion group container element\n*\n* @css {string} --bcm-accordion-border - Border color of the accordion group\n* @css {string} --bcm-accordion-radius - Border radius of the accordion group\n*/\n@Component({\n tag: 'bcm-accordion-group',\n styleUrl: 'accordion-group.css',\n shadow: true,\n})\nexport class BcmAccordionGroup implements ComponentInterface {\n /** Reference to the host element */\n @Element() host: HTMLElement;\n\n /** Controls whether multiple accordions can be expanded simultaneously */\n @Prop() multi: boolean = false;\n\n /** Array of accordion elements within the group */\n @State() accordionItems: HTMLBcmAccordionElement[] = [];\n\n /** Event emitted when any accordion's expanded state changes */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n }) bcmAccordionGroupChange: EventEmitter<AccordionGroupChangeEventType>;\n\n /**\n * Expands all accordions in the group\n * Only available when multi=true\n */\n @Method()\n async expandAll(): Promise<void> {\n if (!this.multi) {\n console.warn('expandAll is only available when multi=true');\n return;\n }\n await Promise.all(this.accordionItems.map(item => item.expand()));\n }\n\n /**\n * Collapses all accordions in the group\n */\n @Method()\n async collapseAll(): Promise<void> {\n await Promise.all(this.accordionItems.map(item => item.collapse()));\n }\n\n /**\n * Returns an array of currently expanded accordion elements\n */\n @Method()\n async getExpandedItems(): Promise<HTMLBcmAccordionElement[]> {\n return this.accordionItems.filter(item => item.expanded);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n\n private setGroupBehavior(): void {\n this.accordionItems.forEach(item => {\n item.group = true;\n });\n }\n\n /**\n * Updates the accordion items array when slot content changes\n */\n private handleSlotChange = () => {\n this.accordionItems = Array.from(this.host.querySelectorAll('bcm-accordion'));\n this.setGroupBehavior();\n // Validate accordion items\n if (this.accordionItems.length === 0) {\n console.warn('No accordion items found in accordion group');\n }\n };\n\n /**\n * Handles state changes of individual accordions\n */\n @Listen('bcmAccordionChange', { capture: true })\n handleAccordionChange(event: CustomEvent<AccordionChangeEventType>) {\n this.handleSlotChange();\n const { expanded, source } = event?.detail;\n\n if (!this.multi) {\n this.accordionItems.forEach(item => {\n if (item !== source) {\n item.collapse();\n }\n item.expanded = item === source ? expanded : false;\n });\n }\n\n const expandedItems = this.accordionItems.filter(item => item.expanded);\n this.bcmAccordionGroupChange.emit({\n expanded,\n changed: source,\n expandedItems,\n expandedCount: expandedItems.length,\n });\n }\n\n render() {\n return (\n <div\n class=\"flex flex-col bcm-ui-element w-full border border-solid border-[--bcm-accordion-border] rounded-[--bcm-accordion-radius]\"\n role=\"group\"\n aria-label=\"Accordion group\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n );\n }\n}"],"mappings":"yDAAA,MAAMA,EAAoB,
|
|
1
|
+
{"version":3,"names":["accordionGroupCss","BcmAccordionGroupStyle0","BcmAccordionGroup","constructor","hostRef","this","multi","accordionItems","handleSlotChange","Array","from","host","querySelectorAll","setGroupBehavior","length","console","warn","expandAll","Promise","all","map","item","expand","collapseAll","collapse","getExpandedItems","filter","expanded","componentWillLoad","forEach","group","handleAccordionChange","event","source","detail","expandedItems","bcmAccordionGroupChange","emit","changed","expandedCount","render","h","key","class","role","onSlotchange"],"sources":["src/components/accordion-group/accordion-group.css?tag=bcm-accordion-group&encapsulation=shadow","src/components/accordion-group/accordion-group.component.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n --bcm-accordion-border: var(--bcm-ui-color-border-default);\n --bcm-accordion-radius: 6px;\n}\n","\nimport { Component, ComponentInterface, h, Element, Prop, Listen, State, Event, EventEmitter, Method } from '@stencil/core';\nimport { AccordionChangeEventType } from '../accordion/types';\nimport { AccordionGroupChangeEventType } from './types';\n\n/**\n* @component BcmAccordionGroup\n* @description A container component that manages a group of accordions. Provides single/multiple expansion \n* modes and methods for controlling all accordions simultaneously. Uses shadow DOM for style encapsulation.\n*\n* @example Basic usage - Single expansion mode\n* <bcm-accordion-group>\n* <bcm-accordion>\n* <div slot=\"title\">Section 1</div>\n* <div>Content 1</div>\n* </bcm-accordion>\n* <bcm-accordion>\n* <div slot=\"title\">Section 2</div>\n* <div>Content 2</div>\n* </bcm-accordion>\n* </bcm-accordion-group>\n*\n* @example Multiple expansion mode\n* <bcm-accordion-group multi={true}>\n* <bcm-accordion>...</bcm-accordion>\n* <bcm-accordion>...</bcm-accordion>\n* </bcm-accordion-group>\n* \n* @example Event handling\n* // Listen to accordion group changes\n* const accordionGroup = document.querySelector('bcm-accordion-group');\n* accordionGroup.addEventListener('bcmAccordionGroupChange', (event) => {\n* const { expanded, changed, expandedItems, expandedCount } = event.detail;\n* console.log('Accordion expanded state:', expanded);\n* console.log('Changed accordion:', changed);\n* console.log('Currently expanded accordions:', expandedItems);\n* console.log('Number of expanded accordions:', expandedCount);\n* });\n* \n* // Using methods\n* await accordionGroup.expandAll(); // Expands all accordions (only in multi mode)\n* await accordionGroup.collapseAll(); // Collapses all accordions\n* const expanded = await accordionGroup.getExpandedItems(); // Gets expanded accordions\n*\n* @prop {boolean} multi - Controls whether multiple accordions can be expanded simultaneously (default: false)\n*\n* @slot default - Container slot for bcm-accordion components\n*\n* @event {EventEmitter<AccordionGroupChangeEventType>} bcmAccordionGroupChange - Emitted when any accordion's state changes\n* @eventProperty {boolean} expanded - Current expanded state of the changed accordion\n* @eventProperty {HTMLElement} changed - The accordion element that triggered the change\n* @eventProperty {HTMLElement[]} expandedItems - Array of currently expanded accordion elements\n* @eventProperty {number} expandedCount - Number of currently expanded accordions\n*\n* @method expandAll() - Expands all accordions (only available in multi mode)\n* @method collapseAll() - Collapses all accordions\n* @method getExpandedItems() - Returns array of currently expanded accordions\n*\n* @csspart container - The accordion group container element\n*\n* @css {string} --bcm-accordion-border - Border color of the accordion group\n* @css {string} --bcm-accordion-radius - Border radius of the accordion group\n*/\n@Component({\n tag: 'bcm-accordion-group',\n styleUrl: 'accordion-group.css',\n shadow: true,\n})\nexport class BcmAccordionGroup implements ComponentInterface {\n /** Reference to the host element */\n @Element() host: HTMLElement;\n\n /** Controls whether multiple accordions can be expanded simultaneously */\n @Prop() multi: boolean = false;\n\n /** Array of accordion elements within the group */\n @State() accordionItems: HTMLBcmAccordionElement[] = [];\n\n /** Event emitted when any accordion's expanded state changes */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n }) bcmAccordionGroupChange: EventEmitter<AccordionGroupChangeEventType>;\n\n /**\n * Expands all accordions in the group\n * Only available when multi=true\n */\n @Method()\n async expandAll(): Promise<void> {\n if (!this.multi) {\n console.warn('expandAll is only available when multi=true');\n return;\n }\n await Promise.all(this.accordionItems.map(item => item.expand()));\n }\n\n /**\n * Collapses all accordions in the group\n */\n @Method()\n async collapseAll(): Promise<void> {\n await Promise.all(this.accordionItems.map(item => item.collapse()));\n }\n\n /**\n * Returns an array of currently expanded accordion elements\n */\n @Method()\n async getExpandedItems(): Promise<HTMLBcmAccordionElement[]> {\n return this.accordionItems.filter(item => item.expanded);\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n\n private setGroupBehavior(): void {\n this.accordionItems.forEach(item => {\n item.group = true;\n });\n }\n\n /**\n * Updates the accordion items array when slot content changes\n */\n private handleSlotChange = () => {\n this.accordionItems = Array.from(this.host.querySelectorAll('bcm-accordion'));\n this.setGroupBehavior();\n // Validate accordion items\n if (this.accordionItems.length === 0) {\n console.warn('No accordion items found in accordion group');\n }\n };\n\n /**\n * Handles state changes of individual accordions\n */\n @Listen('bcmAccordionChange', { capture: true })\n handleAccordionChange(event: CustomEvent<AccordionChangeEventType>) {\n this.handleSlotChange();\n const { expanded, source } = event?.detail;\n\n if (!this.multi) {\n this.accordionItems.forEach(item => {\n if (item !== source) {\n item.collapse();\n }\n item.expanded = item === source ? expanded : false;\n });\n }\n\n const expandedItems = this.accordionItems.filter(item => item.expanded);\n this.bcmAccordionGroupChange.emit({\n expanded,\n changed: source,\n expandedItems,\n expandedCount: expandedItems.length,\n });\n }\n\n render() {\n return (\n <div\n class=\"flex flex-col bcm-ui-element w-full border border-solid border-[--bcm-accordion-border] rounded-[--bcm-accordion-radius]\"\n role=\"group\"\n aria-label=\"Accordion group\"\n >\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n );\n }\n}"],"mappings":"yDAAA,MAAMA,EAAoB,w9BAC1B,MAAAC,EAAeD,E,MCmEFE,EAAiB,MAL9B,WAAAC,CAAAC,G,2EAUYC,KAAAC,MAAiB,MAGhBD,KAAAE,eAA4C,GAoD7CF,KAAAG,iBAAmB,KACvBH,KAAKE,eAAiBE,MAAMC,KAAKL,KAAKM,KAAKC,iBAAiB,kBAC5DP,KAAKQ,mBAEL,GAAIR,KAAKE,eAAeO,SAAW,EAAG,CAClCC,QAAQC,KAAK,8C,GA3CrB,eAAMC,GACF,IAAKZ,KAAKC,MAAO,CACbS,QAAQC,KAAK,+CACb,M,OAEEE,QAAQC,IAAId,KAAKE,eAAea,KAAIC,GAAQA,EAAKC,W,CAO3D,iBAAMC,SACIL,QAAQC,IAAId,KAAKE,eAAea,KAAIC,GAAQA,EAAKG,a,CAO3D,sBAAMC,GACF,OAAOpB,KAAKE,eAAemB,QAAOL,GAAQA,EAAKM,U,CAGnD,iBAAAC,GACIvB,KAAKG,kB,CAID,gBAAAK,GACJR,KAAKE,eAAesB,SAAQR,IACxBA,EAAKS,MAAQ,IAAI,G,CAoBzB,qBAAAC,CAAsBC,GAClB3B,KAAKG,mBACL,MAAMmB,SAAEA,EAAQM,OAAEA,GAAWD,IAAK,MAALA,SAAK,SAALA,EAAOE,OAEpC,IAAK7B,KAAKC,MAAO,CACbD,KAAKE,eAAesB,SAAQR,IACxB,GAAIA,IAASY,EAAQ,CACjBZ,EAAKG,U,CAETH,EAAKM,SAAWN,IAASY,EAASN,EAAW,KAAK,G,CAI1D,MAAMQ,EAAgB9B,KAAKE,eAAemB,QAAOL,GAAQA,EAAKM,WAC9DtB,KAAK+B,wBAAwBC,KAAK,CAC9BV,WACAW,QAASL,EACTE,gBACAI,cAAeJ,EAAcrB,Q,CAIrC,MAAA0B,GACI,OACIC,EAAA,OAAAC,IAAA,2CACIC,MAAM,2HACNC,KAAK,QAAO,aACD,mBAEXH,EAAA,QAAAC,IAAA,2CAAMG,aAAcxC,KAAKG,mB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,g as a}from"./p-9d0aeb92.js";import{c as o}from"./p-5fcf77f9.js";import{g as s}from"./p-ba2410ef.js";import{c as r}from"./p-12360e4c.js";const c=".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}.mt-1{margin-top:.25rem}.flex{display:flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.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)}.font-medium{font-weight:500}.text-\\[--bcm-ui-color-text-caption\\]{color:var(--bcm-ui-color-text-caption)}.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-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-label{color:var(--bcm-ui-color-text-label)}.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 l=c;const n=class{constructor(i){t(this,i);this.bcmRadioGroupChange=e(this,"bcmRadioGroupChange",1);this.disabled=false;this.required=false;this.error=false;this.size="medium";this.direction="vertical";this.radioGroupName=s("radio-group-name");this.handleSlotChange=()=>{this.radios.forEach((t=>{var e;t.size=this.size;t.name=(e=this.name)!==null&&e!==void 0?e:this.radioGroupName;t.disabled=this.disabled;t.error=this.error}))};this.radioGroupClass=o({slots:{host:["bcm-ui-element bcm-radio-group flex flex-col"],container:["flex"]},variants:{size:{small:{host:"gap-1.5",container:"gap-1.5"},medium:{host:"gap-2",container:"gap-2"},large:{host:"gap-2.5",container:"gap-2.5"}},direction:{horizontal:{container:["flex-row flex-wrap"]},vertical:{container:["flex-col"]}}},defaultVariants:{size:"medium",direction:"vertical"}})}get radios(){return this.host.querySelectorAll("bcm-radio")}componentWillLoad(){if(this.value){this.updateRadios(this.value)}}async setClear(){var t;this.value="";(t=this.radios)===null||t===void 0?void 0:t.forEach((t=>{t.checked=false}))}async resetCaption(){this.error=false;this.captionText=undefined}handleValueChange(t){this.updateRadios(t)}handleRadioChange(t){const e=t.target;const i=this.host.querySelectorAll("bcm-radio");i.forEach((t=>{if(t!==e){t.checked=false}}));this.bcmRadioGroupChange.emit({value:e.value,element:e})}updateRadios(t){this.radios.forEach((e=>{e.checked=e.value===t}))}render(){const{host:t,container:e}=this.radioGroupClass({size:this.size,direction:this.direction});return i("div",{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as i,g as a}from"./p-9d0aeb92.js";import{c as o}from"./p-5fcf77f9.js";import{g as s}from"./p-ba2410ef.js";import{c as r}from"./p-12360e4c.js";const c=".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}.mt-1{margin-top:.25rem}.flex{display:flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1\\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.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)}.font-medium{font-weight:500}.text-\\[--bcm-ui-color-text-caption\\]{color:var(--bcm-ui-color-text-caption)}.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-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-label{color:var(--bcm-ui-color-text-label)}.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 l=c;const n=class{constructor(i){t(this,i);this.bcmRadioGroupChange=e(this,"bcmRadioGroupChange",1);this.disabled=false;this.required=false;this.error=false;this.size="medium";this.direction="vertical";this.radioGroupName=s("radio-group-name");this.handleSlotChange=()=>{this.radios.forEach((t=>{var e;t.size=this.size;t.name=(e=this.name)!==null&&e!==void 0?e:this.radioGroupName;t.disabled=this.disabled;t.error=this.error}))};this.radioGroupClass=o({slots:{host:["bcm-ui-element bcm-radio-group flex flex-col"],container:["flex"]},variants:{size:{small:{host:"gap-1.5",container:"gap-1.5"},medium:{host:"gap-2",container:"gap-2"},large:{host:"gap-2.5",container:"gap-2.5"}},direction:{horizontal:{container:["flex-row flex-wrap"]},vertical:{container:["flex-col"]}}},defaultVariants:{size:"medium",direction:"vertical"}})}get radios(){return this.host.querySelectorAll("bcm-radio")}componentWillLoad(){if(this.value){this.updateRadios(this.value)}}async setClear(){var t;this.value="";(t=this.radios)===null||t===void 0?void 0:t.forEach((t=>{t.checked=false}))}async resetCaption(){this.error=false;this.captionText=undefined}handleValueChange(t){this.updateRadios(t)}handleRadioChange(t){const e=t.target;const i=this.host.querySelectorAll("bcm-radio");i.forEach((t=>{if(t!==e){t.checked=false}}));this.bcmRadioGroupChange.emit({value:e.value,element:e})}updateRadios(t){this.radios.forEach((e=>{e.checked=e.value===t}))}render(){const{host:t,container:e}=this.radioGroupClass({size:this.size,direction:this.direction});return i("div",{key:"482530d13c741ccd1d4a6a2255f984a3957cb3f1",class:t()},this.label&&i("label",{key:"15b52d29e3ee83bfc6ccd483d4296195f2eb562b",class:r("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"})},i("slot",{key:"f241a0ec8a9f8b5175e54c27238a81abe6e5c043",name:"label"},this.label),this.required&&i("span",{key:"c091f0d477cb5b8a5ba88ad2aff77f212c780058"},"*")),i("div",{key:"f91e7e3bfd60aa6907ff3b2869d21a6962664062",class:e()},i("slot",{key:"ec597411044a4b6a537f7e5bf7391499dacd86e7",onSlotchange:this.handleSlotChange})),this.captionText&&i("div",{key:"6b35ceb2bbdd2c6bbf1c6d3643902ae022dba111",class:r("input-caption-text font-regular mt-1",{"text-[--bcm-ui-color-text-caption]":!this.disabled,"text-[--bcm-ui-color-text-error]":!this.disabled&&this.error,"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.captionText))}get host(){return a(this)}static get watchers(){return{value:["handleValueChange"]}}};n.style=l;export{n as bcm_radio_group};
|
|
2
|
+
//# sourceMappingURL=p-9ba07f12.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as r,h as o,g as i}from"./p-9d0aeb92.js";import{c as t}from"./p-5fcf77f9.js";const a=".block{display:block}:host{display:block}.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}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.flex{display:flex}.inline-flex{display:inline-flex}.size-2{height:.5rem;width:.5rem}.size-2\\.5{height:.625rem;width:.625rem}.size-3{height:.75rem;width:.75rem}.size-3\\.5{height:.875rem;width:.875rem}.size-4{height:1rem;width:1rem}.size-\\[18px\\]{height:18px;width:18px}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--bcm-radio-bg\\]{background-color:var(--bcm-radio-bg)}.bg-\\[--bcm-radio-checked\\]{background-color:var(--bcm-radio-checked)}.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}.text-\\[--bcm-radio-text-color\\]{color:var(--bcm-radio-text-color)}.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)}.shadow,.shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border\\)\\]{--tw-shadow:inset 0 0 0 1px var(--bcm-radio-border);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color)}.shadow-\\[inset_0_0_0_3px_var\\(--bcm-radio-border\\)\\]{--tw-shadow:inset 0 0 0 3px var(--bcm-radio-border);--tw-shadow-colored:inset 0 0 0 3px var(--tw-shadow-color);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)}.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)}.group:hover .group-hover\\:shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border-hover\\)\\]{--tw-shadow:inset 0 0 0 1px var(--bcm-radio-border-hover);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";const d=a;const s=class{constructor(o){e(this,o);this.bcmRadioChange=r(this,"bcmRadioChange",1);this.bcmBlur=r(this,"bcmBlur",1);this.bcmFocus=r(this,"bcmFocus",1);this.checked=false;this.size="medium";this.disabled=false;this.readonly=false;this.labelPosition="right";this.error=false;this.getRadioClass=t({slots:{container:"bcm-ui-element bcm-radio group",dot:"absolute rounded-full transition bg-[--bcm-radio-checked]",dotContainer:"relative rounded-full flex items-center justify-center shadow-[inset_0_0_0_1px_var(--bcm-radio-border)] bg-[--bcm-radio-bg] transition group-hover:shadow-[inset_0_0_0_1px_var(--bcm-radio-border-hover)]",labelClass:"font-medium text-[--bcm-radio-text-color]"},variants:{size:{small:{container:"gap-2",dotContainer:"size-3.5",dot:"size-2",labelClass:"text-size-4"},medium:{container:"gap-2.5",dotContainer:"size-4",dot:"size-2.5",labelClass:"text-size-5"},large:{container:"gap-3",dotContainer:"size-[18px]",dot:"size-3",labelClass:"text-size-6"}},checked:{true:{dot:"opacity-100"},false:{dot:"opacity-0"}},disabled:{true:{container:"cursor-not-allowed"},false:{container:"cursor-pointer focus-visible:ring"}},readonly:{true:{container:"cursor-default pointer-events-none",dot:"opacity-100",dotContainer:"shadow-[inset_0_0_0_3px_var(--bcm-radio-border)]"},false:""},labelPosition:{left:{container:"inline-flex flex-row-reverse items-center"},right:{container:"inline-flex flex-row items-center"}}}},{twMerge:false})}handleClick(){if(this.readonly||this.disabled)return;if(!this.checked){this.checked=true;this.bcmRadioChange.emit()}}getRadioStyle(){const e={"--bcm-radio-bg":"var(--bcm-ui-color-background-default-default)","--bcm-radio-border":"var(--bcm-ui-color-border-disabled)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-primary)","--bcm-radio-checked":"var(--bcm-ui-color-background-primary-default)","--bcm-radio-text-color":"var(--bcm-ui-color-text-default)"};const r={"--bcm-radio-bg":"var(--bcm-ui-color-background-palette-red-default)","--bcm-radio-border":"var(--bcm-ui-color-border-error)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-error)","--bcm-radio-checked":"var(--bcm-ui-color-background-error-default)","--bcm-radio-text-color":"var(--bcm-ui-color-text-default)"};const o={"--bcm-radio-bg":"var(--bcm-ui-color-background-disabled-default)","--bcm-radio-border":"var(--bcm-ui-color-border-disabled)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-disabled)","--bcm-radio-checked":"var(--bcm-ui-color-background-disabled-default)","--bcm-radio-text-color":"var(--bcm-ui-color-text-disabled)"};const i={"--bcm-radio-bg":"transparent","--bcm-radio-border":"var(--bcm-ui-color-border-disabled)","--bcm-radio-checked":"var(--bcm-ui-color-background-default-default)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-disabled)","--bcm-radio-text-color":"var(--bcm-ui-color-text-default)"};return Object.assign(Object.assign(Object.assign(Object.assign({},e),this.error&&r),this.disabled&&o),this.readonly&&i)}render(){const{container:e,dot:r,dotContainer:i,labelClass:t}=this.getRadioClass({size:this.size,checked:this.checked,disabled:this.disabled,readonly:this.readonly,labelPosition:this.labelPosition});return o("label",{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as r,h as o,g as i}from"./p-9d0aeb92.js";import{c as t}from"./p-5fcf77f9.js";const a=".block{display:block}:host{display:block}.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}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.flex{display:flex}.inline-flex{display:inline-flex}.size-2{height:.5rem;width:.5rem}.size-2\\.5{height:.625rem;width:.625rem}.size-3{height:.75rem;width:.75rem}.size-3\\.5{height:.875rem;width:.875rem}.size-4{height:1rem;width:1rem}.size-\\[18px\\]{height:18px;width:18px}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--bcm-radio-bg\\]{background-color:var(--bcm-radio-bg)}.bg-\\[--bcm-radio-checked\\]{background-color:var(--bcm-radio-checked)}.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}.text-\\[--bcm-radio-text-color\\]{color:var(--bcm-radio-text-color)}.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)}.shadow,.shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border\\)\\]{--tw-shadow:inset 0 0 0 1px var(--bcm-radio-border);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color)}.shadow-\\[inset_0_0_0_3px_var\\(--bcm-radio-border\\)\\]{--tw-shadow:inset 0 0 0 3px var(--bcm-radio-border);--tw-shadow-colored:inset 0 0 0 3px var(--tw-shadow-color);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)}.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)}.group:hover .group-hover\\:shadow-\\[inset_0_0_0_1px_var\\(--bcm-radio-border-hover\\)\\]{--tw-shadow:inset 0 0 0 1px var(--bcm-radio-border-hover);--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";const d=a;const s=class{constructor(o){e(this,o);this.bcmRadioChange=r(this,"bcmRadioChange",1);this.bcmBlur=r(this,"bcmBlur",1);this.bcmFocus=r(this,"bcmFocus",1);this.checked=false;this.size="medium";this.disabled=false;this.readonly=false;this.labelPosition="right";this.error=false;this.getRadioClass=t({slots:{container:"bcm-ui-element bcm-radio group",dot:"absolute rounded-full transition bg-[--bcm-radio-checked]",dotContainer:"relative rounded-full flex items-center justify-center shadow-[inset_0_0_0_1px_var(--bcm-radio-border)] bg-[--bcm-radio-bg] transition group-hover:shadow-[inset_0_0_0_1px_var(--bcm-radio-border-hover)]",labelClass:"font-medium text-[--bcm-radio-text-color]"},variants:{size:{small:{container:"gap-2",dotContainer:"size-3.5",dot:"size-2",labelClass:"text-size-4"},medium:{container:"gap-2.5",dotContainer:"size-4",dot:"size-2.5",labelClass:"text-size-5"},large:{container:"gap-3",dotContainer:"size-[18px]",dot:"size-3",labelClass:"text-size-6"}},checked:{true:{dot:"opacity-100"},false:{dot:"opacity-0"}},disabled:{true:{container:"cursor-not-allowed"},false:{container:"cursor-pointer focus-visible:ring"}},readonly:{true:{container:"cursor-default pointer-events-none",dot:"opacity-100",dotContainer:"shadow-[inset_0_0_0_3px_var(--bcm-radio-border)]"},false:""},labelPosition:{left:{container:"inline-flex flex-row-reverse items-center"},right:{container:"inline-flex flex-row items-center"}}}},{twMerge:false})}handleClick(){if(this.readonly||this.disabled)return;if(!this.checked){this.checked=true;this.bcmRadioChange.emit()}}getRadioStyle(){const e={"--bcm-radio-bg":"var(--bcm-ui-color-background-default-default)","--bcm-radio-border":"var(--bcm-ui-color-border-disabled)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-primary)","--bcm-radio-checked":"var(--bcm-ui-color-background-primary-default)","--bcm-radio-text-color":"var(--bcm-ui-color-text-default)"};const r={"--bcm-radio-bg":"var(--bcm-ui-color-background-palette-red-default)","--bcm-radio-border":"var(--bcm-ui-color-border-error)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-error)","--bcm-radio-checked":"var(--bcm-ui-color-background-error-default)","--bcm-radio-text-color":"var(--bcm-ui-color-text-default)"};const o={"--bcm-radio-bg":"var(--bcm-ui-color-background-disabled-default)","--bcm-radio-border":"var(--bcm-ui-color-border-disabled)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-disabled)","--bcm-radio-checked":"var(--bcm-ui-color-background-disabled-default)","--bcm-radio-text-color":"var(--bcm-ui-color-text-disabled)"};const i={"--bcm-radio-bg":"transparent","--bcm-radio-border":"var(--bcm-ui-color-border-disabled)","--bcm-radio-checked":"var(--bcm-ui-color-background-default-default)","--bcm-radio-border-hover":"var(--bcm-ui-color-border-disabled)","--bcm-radio-text-color":"var(--bcm-ui-color-text-default)"};return Object.assign(Object.assign(Object.assign(Object.assign({},e),this.error&&r),this.disabled&&o),this.readonly&&i)}render(){const{container:e,dot:r,dotContainer:i,labelClass:t}=this.getRadioClass({size:this.size,checked:this.checked,disabled:this.disabled,readonly:this.readonly,labelPosition:this.labelPosition});return o("label",{key:"4b53e856e66a8f35fddca847ea0dad4f749d9ad1",class:e(),style:this.getRadioStyle()},o("input",{key:"04506f00b7b0773c43f6d3cf65967d83f11dc1ed","aria-label":this.label,role:"radio","aria-checked":this.checked.toString(),type:"radio",name:this.name,value:this.value,disabled:this.disabled,readOnly:this.readonly,checked:this.checked,class:"appearance-none sr-only",onClick:()=>this.handleClick(),onFocus:e=>this.bcmFocus.emit(e),onBlur:e=>this.bcmBlur.emit(e)}),o("div",{key:"9da73fa48763a71a9eafc6ed9bca5812317b8268",class:i()},o("div",{key:"2126018bf6f5eef062be02cec1f081daf939c9df",class:r()})),o("span",{key:"86f5e2485c72b27892054ffa0082307f025ad31a",class:t()},o("slot",{key:"de05d13a1e3d88b7a6f7f7e9355d7b36d740709f"},this.label)))}get host(){return i(this)}};s.style=d;export{s as bcm_radio};
|
|
2
|
+
//# sourceMappingURL=p-a02e437c.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,F as a,g as o}from"./p-9d0aeb92.js";import{c as r,o as s,f as n,s as c,b as d}from"./p-50133556.js";import{c as l}from"./p-5fcf77f9.js";const h=".absolute{position:absolute}.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))}.text-wrap{text-wrap:wrap}:host{--popover-bg:var(--bcm-ui-color-background-basic-panel);--popover-radius:6px;--popover-text-color:var(--bcm-ui-color-text-basic);display:inline-block}.arrow{background:var(--arrow-color);clip-path:polygon(50% 0,100% 100%,0 100%);position:absolute;z-index:1}.arrow.top{transform:rotate(180deg)}.arrow.bottom{transform:rotate(0deg)}.arrow.right{transform:rotate(-90deg)}.arrow.left{transform:rotate(90deg)}::slotted([slot=body]){text-wrap:pretty;font-family:Inter,sans-serif}.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}.relative{position:relative}.z-\\[9999\\]{z-index:9999}.mx-auto{margin-left:auto;margin-right:auto}.flex{display:flex}.hidden{display:none}.size-6{height:1.5rem;width:1.5rem}.h-2{height:.5rem}.w-4{width:1rem}.w-full{width:100%}.max-w-64{max-width:16rem}.max-w-80{max-width:20rem}.max-w-96{max-width:24rem}.flex-1{flex:1 1 0%}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.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-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)}.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{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.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)}.outline{outline-style:solid}.hover\\:bg-gray-100:hover{background-color:oklch(.967 .003 264.542)}";const f=h;const m={info:"fa-solid fa-circle-info",success:"fa-solid fa-circle-check",warning:"fa-solid fa-triangle-exclamation",error:"fa-solid fa-circle-x"};const p=class{constructor(i){e(this,i);this.bcmConfirm=t(this,"bcmConfirm",1);this.bcmCancel=t(this,"bcmCancel",1);this.arrowColor="var(--bcm-ui-color-background-basic-panel)";this.cancelText="Cancel";this.confirmText="Yes";this.description="";this.headerText="";this.placement="bottom";this.size="medium";this.status="info";this.statusIcon=true;this.isOpen=false;this.handleTriggerClick=e=>{e.preventDefault();e.stopPropagation();if(!this.isOpen){this.isOpen=true;requestAnimationFrame((()=>{this.updatePosition()}))}};this.handleConfirm=e=>{e.preventDefault();e.stopPropagation();this.isOpen=false;this.bcmConfirm.emit()};this.handleCancel=e=>{e.preventDefault();e.stopPropagation();this.isOpen=false;this.bcmCancel.emit()};this.updatePosition=async()=>{if(!this.triggerElement||!this.popoverElement||!this.arrowElement)return;const{x:e,y:t,placement:i,middlewareData:a}=await r(this.triggerElement,this.popoverElement,{placement:this.placement,middleware:[s(12),n({fallbackPlacements:["top","left","bottom","right"]}),c({padding:8}),d({element:this.arrowElement})]});this.currentPlacement=i;Object.assign(this.popoverElement.style,{left:`${e}px`,top:`${t}px`});const{x:o,y:l}=a.arrow||{x:0,y:0};const h=i.split("-")[0];const f={top:"bottom",right:"left",bottom:"top",left:"right"}[h];Object.assign(this.arrowElement.style,{left:o!=null?`${o}px`:"",top:l!=null?`${l}px`:"",[f]:["top","bottom"].includes(h)?"-8px":"-12px"})};this.classes=l({slots:{container:"absolute bcm-ui-element flex flex-col shadow-2 rounded-[--popover-radius] bg-[--popover-bg] z-[9999] w-full",header:"flex justify-between items-center",headerLeftContent:"flex items-center gap-2 text-size-inherit text-[--text-color]",closeIconArea:"flex flex-row gap-2 size-6 items-center justify-center hover:bg-gray-100 rounded-full cursor-pointer text-size-inherit",titleContainer:"!text-color-header font-semibold",footer:"flex flex-row justify-end gap-2"},variants:{size:{small:{container:"text-size-4 max-w-64 p-4 gap-4",header:"text-size-4",footer:"text-size-4",titleContainer:"text-size-5",headerLeftContent:"gap-2"},medium:{container:"text-size-5 max-w-80 gap-6 p-6",header:"text-size-5",footer:"text-size-5",titleContainer:"text-size-6",headerLeftContent:"gap-2.5"},large:{container:"text-size-6 max-w-96 p-8 gap-8",header:"text-size-6",footer:"text-size-6",titleContainer:"text-size-7",headerLeftContent:"gap-3"}}},defaultVariants:{size:"medium"}})}componentDidLoad(){this.triggerElement=document.getElementById(this.targetId);if(!this.triggerElement){console.warn(`Target element with ID '${this.targetId}' not found.`);return}this.triggerElement.addEventListener("click",this.handleTriggerClick)}async show(){this.isOpen=true;requestAnimationFrame((()=>{this.updatePosition()}))}async hide(){this.isOpen=false}get popoverStyle(){return{"--text-color":`var(--bcm-ui-color-text-${this.status})`,"--arrow-color":this.arrowColor}}disconnectedCallback(){if(this.triggerElement){this.triggerElement.removeEventListener("click",this.handleTriggerClick)}}render(){var e;const{container:t,header:o,footer:r,headerLeftContent:s,closeIconArea:n,titleContainer:c}=this.classes({size:this.size});return i(a,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as t,h as i,F as a,g as o}from"./p-9d0aeb92.js";import{c as r,o as s,f as n,s as c,b as d}from"./p-50133556.js";import{c as l}from"./p-5fcf77f9.js";const h=".absolute{position:absolute}.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))}.text-wrap{text-wrap:wrap}:host{--popover-bg:var(--bcm-ui-color-background-basic-panel);--popover-radius:6px;--popover-text-color:var(--bcm-ui-color-text-basic);display:inline-block}.arrow{background:var(--arrow-color);clip-path:polygon(50% 0,100% 100%,0 100%);position:absolute;z-index:1}.arrow.top{transform:rotate(180deg)}.arrow.bottom{transform:rotate(0deg)}.arrow.right{transform:rotate(-90deg)}.arrow.left{transform:rotate(90deg)}::slotted([slot=body]){text-wrap:pretty;font-family:Inter,sans-serif}.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}.relative{position:relative}.z-\\[9999\\]{z-index:9999}.mx-auto{margin-left:auto;margin-right:auto}.flex{display:flex}.hidden{display:none}.size-6{height:1.5rem;width:1.5rem}.h-2{height:.5rem}.w-4{width:1rem}.w-full{width:100%}.max-w-64{max-width:16rem}.max-w-80{max-width:20rem}.max-w-96{max-width:24rem}.flex-1{flex:1 1 0%}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.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-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)}.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{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.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)}.outline{outline-style:solid}.hover\\:bg-gray-100:hover{background-color:oklch(.967 .003 264.542)}";const f=h;const m={info:"fa-solid fa-circle-info",success:"fa-solid fa-circle-check",warning:"fa-solid fa-triangle-exclamation",error:"fa-solid fa-circle-x"};const p=class{constructor(i){e(this,i);this.bcmConfirm=t(this,"bcmConfirm",1);this.bcmCancel=t(this,"bcmCancel",1);this.arrowColor="var(--bcm-ui-color-background-basic-panel)";this.cancelText="Cancel";this.confirmText="Yes";this.description="";this.headerText="";this.placement="bottom";this.size="medium";this.status="info";this.statusIcon=true;this.isOpen=false;this.handleTriggerClick=e=>{e.preventDefault();e.stopPropagation();if(!this.isOpen){this.isOpen=true;requestAnimationFrame((()=>{this.updatePosition()}))}};this.handleConfirm=e=>{e.preventDefault();e.stopPropagation();this.isOpen=false;this.bcmConfirm.emit()};this.handleCancel=e=>{e.preventDefault();e.stopPropagation();this.isOpen=false;this.bcmCancel.emit()};this.updatePosition=async()=>{if(!this.triggerElement||!this.popoverElement||!this.arrowElement)return;const{x:e,y:t,placement:i,middlewareData:a}=await r(this.triggerElement,this.popoverElement,{placement:this.placement,middleware:[s(12),n({fallbackPlacements:["top","left","bottom","right"]}),c({padding:8}),d({element:this.arrowElement})]});this.currentPlacement=i;Object.assign(this.popoverElement.style,{left:`${e}px`,top:`${t}px`});const{x:o,y:l}=a.arrow||{x:0,y:0};const h=i.split("-")[0];const f={top:"bottom",right:"left",bottom:"top",left:"right"}[h];Object.assign(this.arrowElement.style,{left:o!=null?`${o}px`:"",top:l!=null?`${l}px`:"",[f]:["top","bottom"].includes(h)?"-8px":"-12px"})};this.classes=l({slots:{container:"absolute bcm-ui-element flex flex-col shadow-2 rounded-[--popover-radius] bg-[--popover-bg] z-[9999] w-full",header:"flex justify-between items-center",headerLeftContent:"flex items-center gap-2 text-size-inherit text-[--text-color]",closeIconArea:"flex flex-row gap-2 size-6 items-center justify-center hover:bg-gray-100 rounded-full cursor-pointer text-size-inherit",titleContainer:"!text-color-header font-semibold",footer:"flex flex-row justify-end gap-2"},variants:{size:{small:{container:"text-size-4 max-w-64 p-4 gap-4",header:"text-size-4",footer:"text-size-4",titleContainer:"text-size-5",headerLeftContent:"gap-2"},medium:{container:"text-size-5 max-w-80 gap-6 p-6",header:"text-size-5",footer:"text-size-5",titleContainer:"text-size-6",headerLeftContent:"gap-2.5"},large:{container:"text-size-6 max-w-96 p-8 gap-8",header:"text-size-6",footer:"text-size-6",titleContainer:"text-size-7",headerLeftContent:"gap-3"}}},defaultVariants:{size:"medium"}})}componentDidLoad(){this.triggerElement=document.getElementById(this.targetId);if(!this.triggerElement){console.warn(`Target element with ID '${this.targetId}' not found.`);return}this.triggerElement.addEventListener("click",this.handleTriggerClick)}async show(){this.isOpen=true;requestAnimationFrame((()=>{this.updatePosition()}))}async hide(){this.isOpen=false}get popoverStyle(){return{"--text-color":`var(--bcm-ui-color-text-${this.status})`,"--arrow-color":this.arrowColor}}disconnectedCallback(){if(this.triggerElement){this.triggerElement.removeEventListener("click",this.handleTriggerClick)}}render(){var e;const{container:t,header:o,footer:r,headerLeftContent:s,closeIconArea:n,titleContainer:c}=this.classes({size:this.size});return i(a,{key:"8910f368da993572cb4725dcbb74235ec50348e8"},this.isOpen&&i("div",{key:"4ded121b7e121f8bb0dd1fe76b2921fd2a487fe8",role:"dialog","aria-labelledby":"pop-confirm-title",style:this.popoverStyle,class:t(),ref:e=>this.popoverElement=e},i("div",{key:"94a78199e0e90cec5ba905db17d3a9c48a28a9a7",ref:e=>this.arrowElement=e,class:`arrow w-4 h-2 ${(e=this.currentPlacement)!==null&&e!==void 0?e:"top"}`}),i("header",{key:"d21596aa10c8128c2d9921b3bc6c4b93002877d4",class:o()},i("div",{key:"e0a91a6031f59630cfeea3ef5e35a32e973c6006",class:s()},this.statusIcon&&i("bcm-icon",{key:"9f184b3caf099697d4139a6a9efd276618b0f818","icon-name":m[this.status]}),i("span",{key:"50fd578631061127dd49d00600a4d83d645f4f76",class:c()},this.headerText),i("slot",{key:"8c29cbde0194fa1ff1ca82286b57b34532162d8b",name:"header"})),i("div",{key:"6ef68d637bbfd3cf2fd2c1a8650c222d5970cf64",class:n(),onClick:this.handleCancel},i("bcm-icon",{key:"c017286c2604e18e8ad47c889092fa727a01a18f","icon-name":"far fa-times"}))),i("main",{key:"5f9255fd563714b7eb842900010e8d1c51417172",class:"flex-1 mx-auto font-sans text-pretty"},i("slot",{key:"a7ca7e568776da834bc7fe44993c32f219522a1a",name:"body"},this.description)),i("footer",{key:"1172e51992183b617d6d5ce53a4a09a09be12ae8",class:r()},i("bcm-button",{key:"e99da377988d0be710e5ce6d47c84cc65298aa1f",kind:"outline",size:this.size,onClick:this.handleCancel},this.cancelText),i("bcm-button",{key:"8154b716f4bf1b5ed272a3b53be7ddaf151ae0cf",size:this.size,status:this.status,kind:"primary",onClick:this.handleConfirm},this.confirmText),i("slot",{key:"ad182d00fc2925d7b403f70250cd1e9687432a46",name:"footer"}))))}get el(){return o(this)}};p.style=f;export{p as bcm_pop_confirm};
|
|
2
|
+
//# sourceMappingURL=p-b582c170.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as i,h as s,H as e,g as a}from"./p-9d0aeb92.js";import{c as n}from"./p-5fcf77f9.js";const o=".relative{position:relative}.block{display:block}:host{display:block;position:relative;width:100%}.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-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)}";const h=o;const r=class{constructor(s){t(this,s);this.bcmTabChange=i(this,"bcmTabChange",1);this.size="medium";this.triggers=[];this.contents=[];this.tabClass=n({base:"tabs-container bcm-ui-element flex flex-col w-full"})}componentWillLoad(){this.activeTab=this.defaultValue}componentDidLoad(){this.refreshElementReferences();this.updateTriggerProperties();this.setupRelations();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}))}}handleSizeChange(){this.updateTriggerProperties()}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,s,e,a;if(!this.tabsList){console.warn("bcm-tabs-list not found");return}const n=this.triggers.length;if(n===0)return;const o=(i=(t=this.tabsList)===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.querySelector(".inkbar");const h=this.triggers.find((t=>t.value===this.activeTab));if(h&&o){const t=h.getBoundingClientRect();const i=(a=(e=(s=this.tabsList)===null||s===void 0?void 0:s.shadowRoot)===null||e===void 0?void 0:e.querySelector(".tabs-list"))===null||a===void 0?void 0:a.getBoundingClientRect();if(t&&i){const s=t.left-i.left;const e=t.width;o.style.width=`${e}px`;o.style.transform=`translateX(${s}px)`;o.style.opacity="1"}else{console.warn("Group or trigger rect calculation failed");o.style.opacity="0"}}else{if(o)o.style.opacity="0"}}render(){return s(e,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as i,h as s,H as e,g as a}from"./p-9d0aeb92.js";import{c as n}from"./p-5fcf77f9.js";const o=".relative{position:relative}.block{display:block}:host{display:block;position:relative;width:100%}.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-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)}";const h=o;const r=class{constructor(s){t(this,s);this.bcmTabChange=i(this,"bcmTabChange",1);this.size="medium";this.triggers=[];this.contents=[];this.tabClass=n({base:"tabs-container bcm-ui-element flex flex-col w-full"})}componentWillLoad(){this.activeTab=this.defaultValue}componentDidLoad(){this.refreshElementReferences();this.updateTriggerProperties();this.setupRelations();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}))}}handleSizeChange(){this.updateTriggerProperties()}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,s,e,a;if(!this.tabsList){console.warn("bcm-tabs-list not found");return}const n=this.triggers.length;if(n===0)return;const o=(i=(t=this.tabsList)===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.querySelector(".inkbar");const h=this.triggers.find((t=>t.value===this.activeTab));if(h&&o){const t=h.getBoundingClientRect();const i=(a=(e=(s=this.tabsList)===null||s===void 0?void 0:s.shadowRoot)===null||e===void 0?void 0:e.querySelector(".tabs-list"))===null||a===void 0?void 0:a.getBoundingClientRect();if(t&&i){const s=t.left-i.left;const e=t.width;o.style.width=`${e}px`;o.style.transform=`translateX(${s}px)`;o.style.opacity="1"}else{console.warn("Group or trigger rect calculation failed");o.style.opacity="0"}}else{if(o)o.style.opacity="0"}}render(){return s(e,{key:"0afd825b3df8017a0a5bc88a341430fec848d7ad"},s("div",{key:"e0ee72418f290849a68e4286ee91b3abceb668f3",class:this.tabClass()},s("slot",{key:"e9e032f474872ef1fe32a23b3feb0e75303f9c12",name:"tabs-list"}),s("slot",{key:"cc22e3ac81914ecd88016a7033c135c52a99deed"})))}get el(){return a(this)}static get watchers(){return{size:["handleSizeChange"]}}};r.style=h;export{r as bcm_tabs};
|
|
2
|
+
//# sourceMappingURL=p-b867a105.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,H as o,g as r}from"./p-9d0aeb92.js";import{c as a}from"./p-5fcf77f9.js";const s=".relative{position:relative}.flex{display:flex}.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)}:host{display:inline-block;position:relative}:host([full-width]){width:100%}.segmented-container{border-radius:var(--bcm-ui-border-radius,4px)}.segmented-indicator{border-radius:var(--bcm-ui-border-radius-md,2px);height:100%;top:0;transition:left .2s ease-in-out,width .2s ease-in-out}.segmented-options{display:flex}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.z-0{z-index:0}.z-10{z-index:10}.inline-flex{display:inline-flex}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.overflow-hidden{overflow:hidden}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-\\[--bcm-ui-color-background-default-default\\]{background-color:var(--bcm-ui-color-background-default-default)}.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)}.opacity-50{opacity:.5}.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)}.filter{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)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}";const
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as t,h as i,H as o,g as r}from"./p-9d0aeb92.js";import{c as a}from"./p-5fcf77f9.js";const s=".relative{position:relative}.flex{display:flex}.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)}:host{display:inline-block;position:relative}:host([full-width]){width:100%}.segmented-container{border-radius:var(--bcm-ui-border-radius,4px)}.segmented-indicator{border-radius:var(--bcm-ui-border-radius-md,2px);height:100%;top:0;transition:left .2s ease-in-out,width .2s ease-in-out}.segmented-options{display:flex}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.z-0{z-index:0}.z-10{z-index:10}.inline-flex{display:inline-flex}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.overflow-hidden{overflow:hidden}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-\\[--bcm-ui-color-background-default-default\\]{background-color:var(--bcm-ui-color-background-default-default)}.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)}.opacity-50{opacity:.5}.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)}.filter{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)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}";const n=s;const d=class{constructor(i){e(this,i);this.bcmChange=t(this,"bcmChange",1);this.size="medium";this.disabled=false;this.fullWidth=false;this.options=[];this.indicatorStyles={left:"0",width:"0",transition:"none"};this.segmentedClass=a({base:"segmented-container bcm-ui-element inline-flex relative bg-[--bcm-ui-color-background-default-default] border border-solid border-[--bcm-ui-color-border-default] rounded overflow-hidden",variants:{size:{small:"text-size-4",medium:"text-size-5",large:"text-size-6"},fullWidth:{true:"w-full"},disabled:{true:"opacity-50 cursor-not-allowed",false:"cursor-pointer"}},defaultVariants:{size:"medium",fullWidth:false,disabled:false}},{twMerge:false})}componentWillLoad(){this.parseOptions();if(!this.value&&this.options.length>0){this.value=this.options[0].value}}componentDidLoad(){this.updateIndicatorPosition(false)}componentDidUpdate(){this.updateIndicatorPosition()}valueChanged(){this.updateIndicatorPosition()}handleOptionClick(e){if(this.disabled)return;const t=e.detail;if(this.value!==t){this.value=t;this.bcmChange.emit({value:t})}}parseOptions(){const e=Array.from(this.host.children);this.options=e.filter((e=>e.nodeName.toLowerCase()==="bcm-segmented-picker-option")).map((e=>({value:e.getAttribute("value")||"",label:e.getAttribute("label")||e.textContent||""})))}updateIndicatorPosition(e=true){const t=this.host.querySelector(`bcm-segmented-picker-option[value="${this.value}"]`);if(!t)return;const i=this.host.querySelectorAll("bcm-segmented-picker-option");let o=-1;for(let e=0;e<i.length;e++){if(i[e].getAttribute("value")===this.value){o=e;break}}if(o===-1)return;setTimeout((()=>{try{let t=0;for(let e=0;e<o;e++){const o=i[e];if(o){t+=o.offsetWidth}}const r=i[o].offsetWidth;this.indicatorStyles={left:`${t}px`,width:`${r}px`,transition:e?"all 0.2s ease-in-out":"none"}}catch(e){console.error("Error updating indicator position:",e)}}),10)}render(){return i(o,{key:"00a61b095c03ee5a5714a2bf1efa358056cc48bd"},i("div",{key:"75ea4056395d589e486c9ef45c33eecbc1eca8c8",class:this.segmentedClass({size:this.size,fullWidth:this.fullWidth,disabled:this.disabled})},i("div",{key:"9a3c63b6730b64ebacd59d2b548cc94a181c1e9e",class:"segmented-indicator absolute bg-[--bcm-ui-color-background-base-default] z-0 rounded",style:this.indicatorStyles}),i("div",{key:"ac1d2c0765dc1ff246a5fc81815d1e1e10630d8d",class:"segmented-options flex relative z-10 w-full"},i("slot",{key:"b5e21f3e8ee7d55736f034fe3e92662510a65973"}))))}get host(){return r(this)}static get watchers(){return{value:["valueChanged"]}}};d.style=n;export{d as bcm_segmented_picker};
|
|
2
|
+
//# sourceMappingURL=p-bbe4aac2.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as i}from"./p-9d0aeb92.js";import{c as a}from"./p-5fcf77f9.js";const o=".relative{position:relative}.block{display:block}:host{display:block;position:relative;width:100%}.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}}.static{position:static}.absolute{position:absolute}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.z-10{z-index:10}.flex{display:flex}.h-0\\.5{height:.125rem}.w-full{width:100%}.flex-row{flex-direction:row}.items-center{align-items:center}.bg-\\[--bcm-ui-color-text-primary\\]{background-color:var(--bcm-ui-color-text-primary)}.opacity-0{opacity:0}.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-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}";const e=o;const r=class{constructor(i){t(this,i);this.class=a({slots:{container:"flex flex-row items-center w-full relative",inkbar:"inkbar absolute bottom-0 left-0 right-0 h-0.5 bg-[--bcm-ui-color-text-primary] transition-all duration-200 ease-in-out z-10 opacity-0",tabList:"tabs-list flex flex-row items-center w-full relative"}})}render(){const{container:t,inkbar:a,tabList:o}=this.class();return i("div",{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as i}from"./p-9d0aeb92.js";import{c as a}from"./p-5fcf77f9.js";const o=".relative{position:relative}.block{display:block}:host{display:block;position:relative;width:100%}.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}}.static{position:static}.absolute{position:absolute}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.z-10{z-index:10}.flex{display:flex}.h-0\\.5{height:.125rem}.w-full{width:100%}.flex-row{flex-direction:row}.items-center{align-items:center}.bg-\\[--bcm-ui-color-text-primary\\]{background-color:var(--bcm-ui-color-text-primary)}.opacity-0{opacity:0}.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-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}";const e=o;const r=class{constructor(i){t(this,i);this.class=a({slots:{container:"flex flex-row items-center w-full relative",inkbar:"inkbar absolute bottom-0 left-0 right-0 h-0.5 bg-[--bcm-ui-color-text-primary] transition-all duration-200 ease-in-out z-10 opacity-0",tabList:"tabs-list flex flex-row items-center w-full relative"}})}render(){const{container:t,inkbar:a,tabList:o}=this.class();return i("div",{key:"4dbd9f1b18b6529d8b772a27a6f6ab0cbf789b48",class:t(),slot:"tabs-list"},i("div",{key:"f7bc6bb41afb0d76f66cb7a7af70875cf5359da8",class:a()}),i("div",{key:"95aa03b5f1955517c9f3fce41ce3b525bfb56ac0",class:o(),role:"tablist"},i("slot",{key:"a3d0a910a2f7a07dd2f1e25b0d14d2c0d830e5fb"})))}};r.style=e;export{r as bcm_tabs_list};
|
|
2
|
+
//# sourceMappingURL=p-bc962a70.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as t,h as r,g as o}from"./p-9d0aeb92.js";import{c as i}from"./p-5fcf77f9.js";import{c as s}from"./p-12360e4c.js";import{g as a}from"./p-ba2410ef.js";import{s as l,g as n,d as c}from"./p-13a245f6.js";const h='.visible{visibility:visible}.collapse{visibility:collapse}.relative{position:relative}.block{display:block}.flex{display:flex}.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-none{resize:none;resize:none!important}.resize-y{resize:vertical;resize:vertical!important}.resize-x{resize:horizontal;resize:horizontal!important}.resize{resize:both!important;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(.928 .006 264.531);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(.707 .022 261.325);opacity:1}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);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:block;width:100%}.bcm-textarea__container{display:flex;flex-direction:column;width:100%}.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}.min-h-0{min-height:0}.min-h-\\[3rem\\]{min-height:3rem}.min-h-\\[4rem\\]{min-height:4rem}.min-h-\\[5rem\\]{min-height:5rem}.w-full{width:100%}.grow{flex-grow:1}.cursor-not-allowed{cursor:not-allowed}.\\!resize-none{resize:none!important}.\\!resize-y{resize:vertical!important}.\\!resize-x{resize:horizontal!important}.\\!resize{resize:both!important}.appearance-none{appearance:none}.flex-col{flex-direction:column}.overflow-y-auto{overflow-y:auto}.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-2{padding-bottom:.5rem;padding-top:.5rem}.text-right{text-align:right}.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}.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-placeholder\\]{color:var(--bcm-ui-color-text-placeholder)}.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}.opacity-50{opacity:.5}.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}.ring-2{--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)}.ring-\\[--bcm-ui-color-border-primary\\]{--tw-ring-color:var(--bcm-ui-color-border-primary)}.ring-opacity-50{--tw-ring-opacity:0.5}.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)}';const d=h;const b=class{constructor(r){e(this,r);this.bcmInput=t(this,"bcmInput",1);this.bcmChange=t(this,"bcmChange",1);this.bcmFocus=t(this,"bcmFocus",1);this.bcmBlur=t(this,"bcmBlur",1);this.bcmKeyDown=t(this,"bcmKeyDown",1);this.bcmKeyUp=t(this,"bcmKeyUp",1);this.isFocused=false;this.isValid=true;this.internalStatus="default";this.value="";this.rows=3;this.resize="none";this.autoGrow=false;this._id=a("textarea");this.size="medium";this.status="default";this.fullWidth=false;this.disabled=false;this.readonly=false;this.required=false;this.showCounter=true;this.onChange=e=>{this.bcmChange.emit(e)};this.onFocus=e=>{this.isFocused=true;this.bcmFocus.emit(e)};this.onBlur=e=>{this.isFocused=false;this.bcmBlur.emit(e);this.validateInput()};this.onKeyDown=e=>{this.bcmKeyDown.emit(e)};this.onKeyUp=e=>{this.bcmKeyUp.emit(e)};this.styleClass=i({slots:{base:["bcm-textarea bcm-textarea__container","bg-[--bcm-ui-color-background-base-default]","border border-solid rounded","flex flex-col","transition-colors duration-200","px-2 py-2","w-full"],textareaClass:["textarea","w-full","border-0 outline-0 bg-transparent","appearance-none","text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal","font-sans antialiased font-medium","px-1","overflow-y-auto","min-h-0"],counterText:["textarea-counter-text","text-[--bcm-ui-color-text-placeholder]","text-right","mt-1"]},variants:{size:{small:{base:"",textareaClass:"text-size-4 min-h-[3rem]",counterText:"text-size-3"},medium:{base:"",textareaClass:"text-size-5 min-h-[4rem]",counterText:"text-size-4"},large:{base:"",textareaClass:"text-size-6 min-h-[5rem]",counterText:"text-size-5"}},resize:{none:{textareaClass:"!resize-none"},both:{textareaClass:"!resize"},horizontal:{textareaClass:"!resize-x"},vertical:{textareaClass:"!resize-y"}},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:{base:"disabled cursor-not-allowed opacity-50",textareaClass:"!resize-none"},false:""},focused:{true:{base:"ring-2 ring-[--bcm-ui-color-border-primary] ring-opacity-50"},false:""}},defaultVariants:{size:"medium",status:"default",resize:"vertical",fullWidth:false,disabled:false,focused:false}},{twMerge:false})}handleValueChange(e){if(this.textareaRef){this.textareaRef.value=e;if(this.autoGrow){this.adjustHeight()}}}watchStatus(e){this.internalStatus=e}watchErrorMessage(e){this.internalErrorMessage=e}componentWillLoad(){l("en",c);this.internalStatus=this.status;this.internalErrorMessage=this.errorMessage}componentDidLoad(){var e;if(this.autoGrow){this.adjustHeight();(e=this.textareaRef)===null||e===void 0?void 0:e.addEventListener("input",(()=>this.adjustHeight()))}}disconnectedCallback(){if(this.autoGrow&&this.textareaRef){this.textareaRef.removeEventListener("input",(()=>this.adjustHeight()))}}async setFocus(){var e;(e=this.textareaRef)===null||e===void 0?void 0:e.focus()}async setBlur(){var e;(e=this.textareaRef)===null||e===void 0?void 0:e.blur()}async select(){var e;(e=this.textareaRef)===null||e===void 0?void 0:e.select()}adjustHeight(){if(!this.autoGrow||!this.textareaRef)return;requestAnimationFrame((()=>{this.textareaRef.style.height="0px";const e=getComputedStyle(this.textareaRef);const t=parseInt(e.lineHeight);const r=parseInt(e.paddingTop);const o=parseInt(e.paddingBottom);const i=this.textareaRef.scrollHeight;let s=i;if(this.minRows){const e=this.minRows*t+r+o;s=Math.max(s,e)}if(this.maxRows){const e=this.maxRows*t+r+o;s=Math.min(s,e)}this.textareaRef.style.height=`${s}px`}))}validateInput(){if(!this.textareaRef)return;this.isValid=true;this.validationMessage="";const e=this.textareaRef.value;if(this.required&&!e){this.isValid=false;this.validationMessage=n("required");this.internalStatus="error";this.internalErrorMessage=this.validationMessage;return}if(this.minLength&&e.length<this.minLength){this.isValid=false;this.validationMessage=n("minlength",{min:this.minLength})}else if(this.maxLength&&e.length>this.maxLength){this.isValid=false;this.validationMessage=n("maxlength",{max:this.maxLength})}if(this.validator){const t=this.validator(e);if(t){this.isValid=false;this.validationMessage=t}}this.internalStatus=this.isValid?"default":"error";this.internalErrorMessage=this.validationMessage}render(){const e=this._id+"-textarea"||this.name;const{base:t,textareaClass:o,counterText:i}=this.styleClass({size:this.size,status:this.internalStatus,resize:this.resize,fullWidth:this.fullWidth,disabled:this.disabled,focused:this.isFocused});return r("div",{key:"e6310414ab5837691b0a1fe6112c2315e322cc3e",class:"bcm-ui-element"},this.label&&r("label",{key:"1130ae9423a6c0b11939b40305888fcc254a478f",class:s("textarea-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:e},r("slot",{key:"14fbb3460f9e2235d330c8751a4582cb53a0b6eb",name:"label"},this.label),this.required&&r("span",{key:"d5c31c6358ac10f1d24c665e4a81f3f4faf18e3b"},"*")),r("div",{key:"c1b53969edd14f59ab0184d5bbe7b2fc2ede54f2",class:t()},r("textarea",{key:"cf712c4bc84836505367230fa2f4a219dafb8773",ref:e=>this.textareaRef=e,id:e,class:o(),name:this.name,rows:this.rows,cols:this.cols,disabled:this.disabled,readonly:this.readonly,required:this.required,placeholder:this.placeholder,minLength:this.minLength,maxLength:this.maxLength,"aria-invalid":this.status==="error","aria-required":this.required,"aria-labelledby":this.labelledby,"aria-describedby":this.describedby,value:this.value,onInput:e=>{const t=e.target;this.value=t.value;this.bcmInput.emit(e);this.validateInput();if(this.autoGrow){this.adjustHeight()}},onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp}),this.showCounter&&r("div",{key:"15c18cfac852247feff36f95bd3f51bcabb0b045",class:i()},this.value.length,this.maxLength?`/${this.maxLength}`:"")),(this.captionText||this.internalErrorMessage||this.validationMessage)&&r("div",{key:"476b9901f68f4c4b7507412ea99d33aa9af28653",class:s("textarea-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 o(this)}static get watchers(){return{value:["handleValueChange"],status:["watchStatus"],errorMessage:["watchErrorMessage"]}}};b.style=d;export{b as bcm_textarea};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as t,h as r,g as o}from"./p-9d0aeb92.js";import{c as i}from"./p-5fcf77f9.js";import{c as s}from"./p-12360e4c.js";import{g as a}from"./p-ba2410ef.js";import{s as l,g as n,d as c}from"./p-13a245f6.js";const h='.visible{visibility:visible}.collapse{visibility:collapse}.relative{position:relative}.block{display:block}.flex{display:flex}.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-none{resize:none;resize:none!important}.resize-y{resize:vertical;resize:vertical!important}.resize-x{resize:horizontal;resize:horizontal!important}.resize{resize:both!important;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(.928 .006 264.531);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(.707 .022 261.325);opacity:1}input::placeholder,textarea::placeholder{color:oklch(.707 .022 261.325);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:block;width:100%}.bcm-textarea__container{display:flex;flex-direction:column;width:100%}.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}.min-h-0{min-height:0}.min-h-\\[3rem\\]{min-height:3rem}.min-h-\\[4rem\\]{min-height:4rem}.min-h-\\[5rem\\]{min-height:5rem}.w-full{width:100%}.grow{flex-grow:1}.cursor-not-allowed{cursor:not-allowed}.\\!resize-none{resize:none!important}.\\!resize-y{resize:vertical!important}.\\!resize-x{resize:horizontal!important}.\\!resize{resize:both!important}.appearance-none{appearance:none}.flex-col{flex-direction:column}.overflow-y-auto{overflow-y:auto}.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-2{padding-bottom:.5rem;padding-top:.5rem}.text-right{text-align:right}.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}.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-placeholder\\]{color:var(--bcm-ui-color-text-placeholder)}.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}.opacity-50{opacity:.5}.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}.ring-2{--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)}.ring-\\[--bcm-ui-color-border-primary\\]{--tw-ring-color:var(--bcm-ui-color-border-primary)}.ring-opacity-50{--tw-ring-opacity:0.5}.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)}';const d=h;const b=class{constructor(r){e(this,r);this.bcmInput=t(this,"bcmInput",1);this.bcmChange=t(this,"bcmChange",1);this.bcmFocus=t(this,"bcmFocus",1);this.bcmBlur=t(this,"bcmBlur",1);this.bcmKeyDown=t(this,"bcmKeyDown",1);this.bcmKeyUp=t(this,"bcmKeyUp",1);this.isFocused=false;this.isValid=true;this.internalStatus="default";this.value="";this.rows=3;this.resize="none";this.autoGrow=false;this._id=a("textarea");this.size="medium";this.status="default";this.fullWidth=false;this.disabled=false;this.readonly=false;this.required=false;this.showCounter=true;this.onChange=e=>{this.bcmChange.emit(e)};this.onFocus=e=>{this.isFocused=true;this.bcmFocus.emit(e)};this.onBlur=e=>{this.isFocused=false;this.bcmBlur.emit(e);this.validateInput()};this.onKeyDown=e=>{this.bcmKeyDown.emit(e)};this.onKeyUp=e=>{this.bcmKeyUp.emit(e)};this.styleClass=i({slots:{base:["bcm-textarea bcm-textarea__container","bg-[--bcm-ui-color-background-base-default]","border border-solid rounded","flex flex-col","transition-colors duration-200","px-2 py-2","w-full"],textareaClass:["textarea","w-full","border-0 outline-0 bg-transparent","appearance-none","text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal","font-sans antialiased font-medium","px-1","overflow-y-auto","min-h-0"],counterText:["textarea-counter-text","text-[--bcm-ui-color-text-placeholder]","text-right","mt-1"]},variants:{size:{small:{base:"",textareaClass:"text-size-4 min-h-[3rem]",counterText:"text-size-3"},medium:{base:"",textareaClass:"text-size-5 min-h-[4rem]",counterText:"text-size-4"},large:{base:"",textareaClass:"text-size-6 min-h-[5rem]",counterText:"text-size-5"}},resize:{none:{textareaClass:"!resize-none"},both:{textareaClass:"!resize"},horizontal:{textareaClass:"!resize-x"},vertical:{textareaClass:"!resize-y"}},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:{base:"disabled cursor-not-allowed opacity-50",textareaClass:"!resize-none"},false:""},focused:{true:{base:"ring-2 ring-[--bcm-ui-color-border-primary] ring-opacity-50"},false:""}},defaultVariants:{size:"medium",status:"default",resize:"vertical",fullWidth:false,disabled:false,focused:false}},{twMerge:false})}handleValueChange(e){if(this.textareaRef){this.textareaRef.value=e;if(this.autoGrow){this.adjustHeight()}}}watchStatus(e){this.internalStatus=e}watchErrorMessage(e){this.internalErrorMessage=e}componentWillLoad(){l("en",c);this.internalStatus=this.status;this.internalErrorMessage=this.errorMessage}componentDidLoad(){var e;if(this.autoGrow){this.adjustHeight();(e=this.textareaRef)===null||e===void 0?void 0:e.addEventListener("input",(()=>this.adjustHeight()))}}disconnectedCallback(){if(this.autoGrow&&this.textareaRef){this.textareaRef.removeEventListener("input",(()=>this.adjustHeight()))}}async setFocus(){var e;(e=this.textareaRef)===null||e===void 0?void 0:e.focus()}async setBlur(){var e;(e=this.textareaRef)===null||e===void 0?void 0:e.blur()}async select(){var e;(e=this.textareaRef)===null||e===void 0?void 0:e.select()}adjustHeight(){if(!this.autoGrow||!this.textareaRef)return;requestAnimationFrame((()=>{this.textareaRef.style.height="0px";const e=getComputedStyle(this.textareaRef);const t=parseInt(e.lineHeight);const r=parseInt(e.paddingTop);const o=parseInt(e.paddingBottom);const i=this.textareaRef.scrollHeight;let s=i;if(this.minRows){const e=this.minRows*t+r+o;s=Math.max(s,e)}if(this.maxRows){const e=this.maxRows*t+r+o;s=Math.min(s,e)}this.textareaRef.style.height=`${s}px`}))}validateInput(){if(!this.textareaRef)return;this.isValid=true;this.validationMessage="";const e=this.textareaRef.value;if(this.required&&!e){this.isValid=false;this.validationMessage=n("required");this.internalStatus="error";this.internalErrorMessage=this.validationMessage;return}if(this.minLength&&e.length<this.minLength){this.isValid=false;this.validationMessage=n("minlength",{min:this.minLength})}else if(this.maxLength&&e.length>this.maxLength){this.isValid=false;this.validationMessage=n("maxlength",{max:this.maxLength})}if(this.validator){const t=this.validator(e);if(t){this.isValid=false;this.validationMessage=t}}this.internalStatus=this.isValid?"default":"error";this.internalErrorMessage=this.validationMessage}render(){const e=this._id+"-textarea"||this.name;const{base:t,textareaClass:o,counterText:i}=this.styleClass({size:this.size,status:this.internalStatus,resize:this.resize,fullWidth:this.fullWidth,disabled:this.disabled,focused:this.isFocused});return r("div",{key:"c5ee75be5fde297e23772b7c40d5c1232f3b89da",class:"bcm-ui-element"},this.label&&r("label",{key:"49b338bdfdc5475c8219fb752200cf897a57f79d",class:s("textarea-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:e},r("slot",{key:"01a450616f08255ad6c593cfdee6bfe8c806a139",name:"label"},this.label),this.required&&r("span",{key:"e2da2bfd03978deae44f3b1fc80171bd17092a94"},"*")),r("div",{key:"24508ff98ece95297f3c90f415b9c1231771de96",class:t()},r("textarea",{key:"abd2eb66e02a271626246f7634d3bad6ca569bf5",ref:e=>this.textareaRef=e,id:e,class:o(),name:this.name,rows:this.rows,cols:this.cols,disabled:this.disabled,readonly:this.readonly,required:this.required,placeholder:this.placeholder,minLength:this.minLength,maxLength:this.maxLength,"aria-invalid":this.status==="error","aria-required":this.required,"aria-labelledby":this.labelledby,"aria-describedby":this.describedby,value:this.value,onInput:e=>{const t=e.target;this.value=t.value;this.bcmInput.emit(e);this.validateInput();if(this.autoGrow){this.adjustHeight()}},onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp}),this.showCounter&&r("div",{key:"2678f8f9ad6d2fdb42691b9609d6a73c696b90ec",class:i()},this.value.length,this.maxLength?`/${this.maxLength}`:"")),(this.captionText||this.internalErrorMessage||this.validationMessage)&&r("div",{key:"03c87e206c3c683d503bf8bc0fb33f0e3657857f",class:s("textarea-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 o(this)}static get watchers(){return{value:["handleValueChange"],status:["watchStatus"],errorMessage:["watchErrorMessage"]}}};b.style=d;export{b as bcm_textarea};
|
|
2
|
+
//# sourceMappingURL=p-d975579d.entry.js.map
|