bromcom-ui-next 0.1.21 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bromcom-ui/bcm-accordion-group.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-accordion.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-alert.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-avatar.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-badge.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-basic-badge.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-button-group.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-checkbox.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-chip.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-radio-group.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-radio.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tabs-content.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tabs-list.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tabs-trigger.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-textarea.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +1 -0
- 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/index.esm.js.map +1 -1
- package/dist/bromcom-ui/loader.esm.js.map +1 -0
- package/dist/bromcom-ui/p-07b05abd.entry.js +2 -0
- package/dist/bromcom-ui/p-07b05abd.entry.js.map +1 -0
- package/dist/bromcom-ui/p-2d3a0ad4.entry.js +2 -0
- package/dist/bromcom-ui/p-2d3a0ad4.entry.js.map +1 -0
- package/dist/bromcom-ui/p-319d3937.entry.js +2 -0
- package/dist/bromcom-ui/p-319d3937.entry.js.map +1 -0
- package/dist/bromcom-ui/p-361073bc.entry.js +2 -0
- package/dist/bromcom-ui/p-361073bc.entry.js.map +1 -0
- package/dist/bromcom-ui/p-378bf83e.entry.js +2 -0
- package/dist/bromcom-ui/p-378bf83e.entry.js.map +1 -0
- package/dist/bromcom-ui/p-3866ae3e.entry.js +2 -0
- package/dist/bromcom-ui/p-3866ae3e.entry.js.map +1 -0
- package/dist/bromcom-ui/p-3fbed81b.entry.js +2 -0
- package/dist/bromcom-ui/p-3fbed81b.entry.js.map +1 -0
- package/dist/bromcom-ui/p-45158141.entry.js +2 -0
- package/dist/bromcom-ui/p-45158141.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-a03922f8.entry.js → p-50505dd6.entry.js} +2 -2
- package/dist/bromcom-ui/p-50505dd6.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-b1f9ad67.entry.js → p-62c14cc4.entry.js} +2 -2
- package/dist/bromcom-ui/p-62c14cc4.entry.js.map +1 -0
- package/dist/bromcom-ui/p-67f62d75.entry.js +2 -0
- package/dist/bromcom-ui/p-67f62d75.entry.js.map +1 -0
- package/dist/bromcom-ui/p-6fa6b826.entry.js +2 -0
- package/dist/bromcom-ui/p-6fa6b826.entry.js.map +1 -0
- package/dist/bromcom-ui/p-778c0de1.entry.js +2 -0
- package/dist/bromcom-ui/p-778c0de1.entry.js.map +1 -0
- package/dist/bromcom-ui/p-7d366ff2.entry.js +2 -0
- package/dist/bromcom-ui/p-7d366ff2.entry.js.map +1 -0
- package/dist/bromcom-ui/p-813cffad.entry.js +2 -0
- package/dist/bromcom-ui/p-813cffad.entry.js.map +1 -0
- package/dist/bromcom-ui/p-90b65db8.entry.js +2 -0
- package/dist/bromcom-ui/p-90b65db8.entry.js.map +1 -0
- package/dist/bromcom-ui/p-9293a2ce.entry.js +2 -0
- package/dist/bromcom-ui/p-9293a2ce.entry.js.map +1 -0
- package/dist/bromcom-ui/p-9d4212ac.entry.js +2 -0
- package/dist/bromcom-ui/p-9d4212ac.entry.js.map +1 -0
- package/dist/bromcom-ui/p-BfTCfPZ1.js +7 -0
- package/dist/bromcom-ui/p-BfTCfPZ1.js.map +1 -0
- package/dist/bromcom-ui/p-CEcVC0yX.js +2 -0
- package/dist/bromcom-ui/p-CEcVC0yX.js.map +1 -0
- package/dist/bromcom-ui/{p-13a245f6.js → p-CUvT12BL.js} +1 -1
- package/dist/bromcom-ui/p-CUvT12BL.js.map +1 -0
- package/dist/bromcom-ui/p-CrZxEeDA.js +3 -0
- package/dist/bromcom-ui/p-CrZxEeDA.js.map +1 -0
- package/dist/bromcom-ui/p-DxMLMJ3r.js +2 -0
- package/dist/bromcom-ui/p-DxMLMJ3r.js.map +1 -0
- package/dist/bromcom-ui/{p-ba2410ef.js → p-IBjzkjef.js} +2 -2
- package/dist/bromcom-ui/p-IBjzkjef.js.map +1 -0
- package/dist/bromcom-ui/p-a4ace572.entry.js +2 -0
- package/dist/bromcom-ui/p-a4ace572.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a8b66a90.entry.js +2 -0
- package/dist/bromcom-ui/p-a8b66a90.entry.js.map +1 -0
- package/dist/bromcom-ui/p-b566bad4.entry.js +2 -0
- package/dist/bromcom-ui/p-b566bad4.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-06d42346.entry.js → p-e00fa939.entry.js} +2 -2
- package/dist/bromcom-ui/p-e00fa939.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-11227d96.entry.js → p-e91676ff.entry.js} +2 -2
- package/dist/bromcom-ui/p-e91676ff.entry.js.map +1 -0
- package/dist/bromcom-ui/p-fdc1df0c.entry.js +2 -0
- package/dist/bromcom-ui/p-fdc1df0c.entry.js.map +1 -0
- package/dist/cjs/bcm-accordion-group.cjs.entry.js +3 -5
- package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-accordion-group.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-accordion.cjs.entry.js +4 -6
- package/dist/cjs/bcm-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-alert.cjs.entry.js +4 -6
- package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-avatar.cjs.entry.js +4 -6
- package/dist/cjs/bcm-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-avatar.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-badge.cjs.entry.js +4 -6
- package/dist/cjs/bcm-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-badge.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-basic-badge.cjs.entry.js +5 -7
- package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-basic-badge.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-button-group.cjs.entry.js +4 -6
- package/dist/cjs/bcm-button-group.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-button-group.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-button_8.cjs.entry.js +28 -37
- package/dist/cjs/bcm-button_8.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-checkbox.cjs.entry.js +5 -7
- package/dist/cjs/bcm-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-checkbox.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-chip.cjs.entry.js +4 -6
- package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-chip.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-divider.cjs.entry.js +4 -6
- package/dist/cjs/bcm-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js +7 -9
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-popover.cjs.entry.js +8 -10
- package/dist/cjs/bcm-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-popover.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-radio-group.cjs.entry.js +6 -8
- package/dist/cjs/bcm-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-radio-group.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-radio.cjs.entry.js +4 -6
- package/dist/cjs/bcm-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-radio.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +4 -6
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js +4 -6
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-switch.cjs.entry.js +5 -7
- package/dist/cjs/bcm-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-tabs-content.cjs.entry.js +3 -5
- package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tabs-content.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-tabs-list.cjs.entry.js +4 -6
- package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tabs-list.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +4 -6
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tabs-trigger.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-tabs.cjs.entry.js +4 -6
- package/dist/cjs/bcm-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-textarea.cjs.entry.js +8 -10
- package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-textarea.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-tooltip.cjs.entry.js +8 -10
- package/dist/cjs/bcm-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tooltip.entry.cjs.js.map +1 -0
- package/dist/cjs/bromcom-ui.cjs.js +8 -8
- package/dist/cjs/bromcom-ui.cjs.js.map +1 -1
- package/dist/cjs/{floating-ui.dom.esm-3ec8404c.js → floating-ui.dom-DyKmFgkP.js} +32 -512
- package/dist/cjs/floating-ui.dom-DyKmFgkP.js.map +1 -0
- package/dist/cjs/{generate-id-f6982042.js → generate-id-CG_BkTJu.js} +4 -13
- package/dist/cjs/generate-id-CG_BkTJu.js.map +1 -0
- package/dist/cjs/index-Bp6Dd2i1.js +97 -0
- package/dist/cjs/index-Bp6Dd2i1.js.map +1 -0
- package/dist/cjs/{index-6710808e.js → index-DFpZVb11.js} +461 -279
- package/dist/cjs/index-DFpZVb11.js.map +1 -0
- package/dist/cjs/index.cjs.js +1 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +4 -6
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/tv-ngpIbGlG.js +2624 -0
- package/dist/cjs/tv-ngpIbGlG.js.map +1 -0
- package/dist/cjs/{validation-messages-18389279.js → validation-messages-BjfpSEWk.js} +2 -1
- package/dist/cjs/validation-messages-BjfpSEWk.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/accordion/accordion.component.js +4 -4
- package/dist/collection/components/accordion-group/accordion-group.component.js +1 -1
- package/dist/collection/components/alert/alert.component.js +5 -5
- package/dist/collection/components/avatar/avatar.component.js +9 -9
- package/dist/collection/components/badge/badge.component.js +9 -9
- package/dist/collection/components/basic-badge/basic-badge.component.js +5 -5
- package/dist/collection/components/basic-badge/basic-badge.css +1 -1
- package/dist/collection/components/button/button.component.js +20 -20
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button-group/button-group.component.js +7 -7
- package/dist/collection/components/checkbox/checkbox.component.js +9 -9
- package/dist/collection/components/chip/chip.component.js +6 -6
- package/dist/collection/components/divider/divider.component.js +3 -3
- package/dist/collection/components/drawer/drawer.component.js +6 -6
- package/dist/collection/components/dropdown/dropdown.component.js +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.component.js +6 -5
- package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
- package/dist/collection/components/input/input.component.js +32 -31
- package/dist/collection/components/input/input.component.js.map +1 -1
- package/dist/collection/components/input/input.css +1 -1
- package/dist/collection/components/linked/linked.component.js +13 -12
- package/dist/collection/components/linked/linked.component.js.map +1 -1
- package/dist/collection/components/linked/linked.css +1 -1
- package/dist/collection/components/pop-confirm/pop-confirm.component.js +10 -10
- package/dist/collection/components/popover/popover.component.js +7 -7
- package/dist/collection/components/radio/radio.component.js +9 -9
- package/dist/collection/components/radio-group/radio-group.component.js +9 -9
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +5 -5
- package/dist/collection/components/segmented-picker/segmented-picker.component.js +4 -4
- package/dist/collection/components/shortcut/shortcut.js +2 -2
- package/dist/collection/components/switch/switch.component.js +11 -11
- package/dist/collection/components/tabs/tabs-content.component.js +1 -1
- package/dist/collection/components/tabs/tabs-trigger.component.js +4 -4
- package/dist/collection/components/tabs/tabs.component.js +2 -2
- package/dist/collection/components/text/text.component.js +4 -4
- package/dist/collection/components/textarea/textarea.component.js +25 -24
- package/dist/collection/components/textarea/textarea.component.js.map +1 -1
- package/dist/collection/components/textarea/textarea.css +1 -1
- package/dist/collection/components/tooltip/tooltip.component.js +5 -5
- package/dist/components/bcm-accordion-group.js +4 -4
- package/dist/components/bcm-accordion-group.js.map +1 -1
- package/dist/components/bcm-accordion.js +5 -5
- package/dist/components/bcm-accordion.js.map +1 -1
- package/dist/components/bcm-alert.js +5 -5
- package/dist/components/bcm-alert.js.map +1 -1
- package/dist/components/bcm-avatar.js +6 -6
- package/dist/components/bcm-avatar.js.map +1 -1
- package/dist/components/bcm-badge.js +2 -1
- package/dist/components/bcm-basic-badge.js +6 -6
- package/dist/components/bcm-basic-badge.js.map +1 -1
- package/dist/components/bcm-button-group.js +5 -5
- package/dist/components/bcm-button-group.js.map +1 -1
- package/dist/components/bcm-button.js +2 -1
- package/dist/components/bcm-checkbox.js +6 -6
- package/dist/components/bcm-checkbox.js.map +1 -1
- package/dist/components/bcm-chip.js +5 -5
- package/dist/components/bcm-chip.js.map +1 -1
- package/dist/components/bcm-divider.js +5 -5
- package/dist/components/bcm-divider.js.map +1 -1
- package/dist/components/bcm-drawer.js +5 -5
- package/dist/components/bcm-drawer.js.map +1 -1
- package/dist/components/bcm-dropdown-item.js +6 -6
- package/dist/components/bcm-dropdown-item.js.map +1 -1
- package/dist/components/bcm-dropdown.js +7 -7
- package/dist/components/bcm-dropdown.js.map +1 -1
- package/dist/components/bcm-input.js +14 -14
- package/dist/components/bcm-input.js.map +1 -1
- package/dist/components/bcm-linked.js +2 -1
- package/dist/components/bcm-pop-confirm.js +7 -7
- package/dist/components/bcm-pop-confirm.js.map +1 -1
- package/dist/components/bcm-popover.js +6 -6
- package/dist/components/bcm-popover.js.map +1 -1
- package/dist/components/bcm-radio-group.js +7 -7
- package/dist/components/bcm-radio-group.js.map +1 -1
- package/dist/components/bcm-radio.js +5 -5
- package/dist/components/bcm-radio.js.map +1 -1
- package/dist/components/bcm-segmented-picker-option.js +5 -5
- package/dist/components/bcm-segmented-picker-option.js.map +1 -1
- package/dist/components/bcm-segmented-picker.js +5 -5
- package/dist/components/bcm-segmented-picker.js.map +1 -1
- package/dist/components/bcm-shortcut.js +5 -5
- package/dist/components/bcm-shortcut.js.map +1 -1
- package/dist/components/bcm-switch.js +6 -6
- package/dist/components/bcm-switch.js.map +1 -1
- package/dist/components/bcm-tabs-content.js +4 -4
- package/dist/components/bcm-tabs-content.js.map +1 -1
- package/dist/components/bcm-tabs-list.js +5 -5
- package/dist/components/bcm-tabs-list.js.map +1 -1
- package/dist/components/bcm-tabs-trigger.js +5 -5
- package/dist/components/bcm-tabs-trigger.js.map +1 -1
- package/dist/components/bcm-tabs.js +5 -5
- package/dist/components/bcm-tabs.js.map +1 -1
- package/dist/components/bcm-text.js +5 -5
- package/dist/components/bcm-text.js.map +1 -1
- package/dist/components/bcm-textarea.js +9 -9
- package/dist/components/bcm-textarea.js.map +1 -1
- package/dist/components/bcm-tooltip.js +6 -6
- package/dist/components/bcm-tooltip.js.map +1 -1
- package/dist/components/index.js +1706 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/{p-bf273460.js → p-A70Ppz6C.js} +6 -6
- package/dist/components/p-A70Ppz6C.js.map +1 -0
- package/dist/components/{p-39872cdf.js → p-BHwftRkk.js} +8 -8
- package/dist/components/p-BHwftRkk.js.map +1 -0
- package/dist/components/{p-c491a7c9.js → p-BdGAZ8M0.js} +7 -7
- package/dist/components/p-BdGAZ8M0.js.map +1 -0
- package/dist/components/p-BfTCfPZ1.js +95 -0
- package/dist/components/p-BfTCfPZ1.js.map +1 -0
- package/dist/components/p-CEcVC0yX.js +2622 -0
- package/dist/components/p-CEcVC0yX.js.map +1 -0
- package/dist/{esm/validation-messages-af4512f0.js → components/p-CUvT12BL.js} +2 -1
- package/dist/components/p-CUvT12BL.js.map +1 -0
- package/dist/components/{p-50133556.js → p-CzcTU1ty.js} +32 -512
- package/dist/components/p-CzcTU1ty.js.map +1 -0
- package/dist/components/{p-ba2410ef.js → p-IBjzkjef.js} +4 -13
- package/dist/components/p-IBjzkjef.js.map +1 -0
- package/dist/esm/bcm-accordion-group.entry.js +3 -3
- package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
- package/dist/esm/bcm-accordion.entry.js +4 -4
- package/dist/esm/bcm-accordion.entry.js.map +1 -1
- package/dist/esm/bcm-alert.entry.js +4 -4
- package/dist/esm/bcm-alert.entry.js.map +1 -1
- package/dist/esm/bcm-avatar.entry.js +4 -4
- package/dist/esm/bcm-avatar.entry.js.map +1 -1
- package/dist/esm/bcm-badge.entry.js +4 -4
- package/dist/esm/bcm-badge.entry.js.map +1 -1
- package/dist/esm/bcm-basic-badge.entry.js +5 -5
- package/dist/esm/bcm-basic-badge.entry.js.map +1 -1
- package/dist/esm/bcm-button-group.entry.js +4 -4
- package/dist/esm/bcm-button-group.entry.js.map +1 -1
- package/dist/esm/bcm-button.bcm-drawer.bcm-dropdown.bcm-dropdown-item.bcm-input.bcm-linked.bcm-shortcut.bcm-text.entry.js.map +1 -0
- package/dist/esm/bcm-button_8.entry.js +23 -30
- package/dist/esm/bcm-button_8.entry.js.map +1 -1
- package/dist/esm/bcm-checkbox.entry.js +5 -5
- package/dist/esm/bcm-checkbox.entry.js.map +1 -1
- package/dist/esm/bcm-chip.entry.js +4 -4
- package/dist/esm/bcm-chip.entry.js.map +1 -1
- package/dist/esm/bcm-divider.entry.js +4 -4
- package/dist/esm/bcm-divider.entry.js.map +1 -1
- package/dist/esm/bcm-pop-confirm.entry.js +5 -5
- package/dist/esm/bcm-pop-confirm.entry.js.map +1 -1
- package/dist/esm/bcm-popover.entry.js +5 -5
- package/dist/esm/bcm-popover.entry.js.map +1 -1
- package/dist/esm/bcm-radio-group.entry.js +6 -6
- package/dist/esm/bcm-radio-group.entry.js.map +1 -1
- package/dist/esm/bcm-radio.entry.js +4 -4
- package/dist/esm/bcm-radio.entry.js.map +1 -1
- package/dist/esm/bcm-segmented-picker-option.entry.js +4 -4
- package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -1
- package/dist/esm/bcm-segmented-picker.entry.js +4 -4
- package/dist/esm/bcm-segmented-picker.entry.js.map +1 -1
- package/dist/esm/bcm-switch.entry.js +5 -5
- package/dist/esm/bcm-switch.entry.js.map +1 -1
- package/dist/esm/bcm-tabs-content.entry.js +3 -3
- package/dist/esm/bcm-tabs-content.entry.js.map +1 -1
- package/dist/esm/bcm-tabs-list.entry.js +4 -4
- package/dist/esm/bcm-tabs-list.entry.js.map +1 -1
- package/dist/esm/bcm-tabs-trigger.entry.js +4 -4
- package/dist/esm/bcm-tabs-trigger.entry.js.map +1 -1
- package/dist/esm/bcm-tabs.entry.js +4 -4
- package/dist/esm/bcm-tabs.entry.js.map +1 -1
- package/dist/esm/bcm-textarea.entry.js +8 -8
- package/dist/esm/bcm-textarea.entry.js.map +1 -1
- package/dist/esm/bcm-tooltip.entry.js +5 -5
- package/dist/esm/bcm-tooltip.entry.js.map +1 -1
- package/dist/esm/bromcom-ui.js +6 -5
- package/dist/esm/bromcom-ui.js.map +1 -1
- package/dist/esm/{floating-ui.dom.esm-b7749b71.js → floating-ui.dom-DxMLMJ3r.js} +33 -513
- package/dist/esm/floating-ui.dom-DxMLMJ3r.js.map +1 -0
- package/dist/esm/{generate-id-3b2fcb93.js → generate-id-IBjzkjef.js} +4 -13
- package/dist/esm/generate-id-IBjzkjef.js.map +1 -0
- package/dist/esm/index-BfTCfPZ1.js +95 -0
- package/dist/esm/index-BfTCfPZ1.js.map +1 -0
- package/dist/esm/{index-18b75a47.js → index-CrZxEeDA.js} +461 -260
- package/dist/esm/index-CrZxEeDA.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +4 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/tv-CEcVC0yX.js +2622 -0
- package/dist/esm/tv-CEcVC0yX.js.map +1 -0
- package/dist/{components/p-13a245f6.js → esm/validation-messages-CUvT12BL.js} +2 -1
- package/dist/esm/validation-messages-CUvT12BL.js.map +1 -0
- package/dist/types/components.d.ts +280 -0
- package/dist/types/stencil-public-runtime.d.ts +35 -6
- package/package.json +1 -1
- package/dist/bromcom-ui/p-06d42346.entry.js.map +0 -1
- package/dist/bromcom-ui/p-0c8a9725.entry.js +0 -2
- package/dist/bromcom-ui/p-0c8a9725.entry.js.map +0 -1
- package/dist/bromcom-ui/p-11227d96.entry.js.map +0 -1
- package/dist/bromcom-ui/p-12360e4c.js +0 -7
- package/dist/bromcom-ui/p-12360e4c.js.map +0 -1
- package/dist/bromcom-ui/p-13a245f6.js.map +0 -1
- package/dist/bromcom-ui/p-1b4ccb21.entry.js +0 -2
- package/dist/bromcom-ui/p-1b4ccb21.entry.js.map +0 -1
- package/dist/bromcom-ui/p-1e726978.entry.js +0 -2
- package/dist/bromcom-ui/p-1e726978.entry.js.map +0 -1
- package/dist/bromcom-ui/p-2c58fcb7.js +0 -2
- package/dist/bromcom-ui/p-2c58fcb7.js.map +0 -1
- package/dist/bromcom-ui/p-2e469cb9.entry.js +0 -2
- package/dist/bromcom-ui/p-2e469cb9.entry.js.map +0 -1
- package/dist/bromcom-ui/p-350c97e1.entry.js +0 -2
- package/dist/bromcom-ui/p-350c97e1.entry.js.map +0 -1
- package/dist/bromcom-ui/p-4027f5c4.entry.js +0 -2
- package/dist/bromcom-ui/p-4027f5c4.entry.js.map +0 -1
- package/dist/bromcom-ui/p-45f4c75b.entry.js +0 -2
- package/dist/bromcom-ui/p-45f4c75b.entry.js.map +0 -1
- package/dist/bromcom-ui/p-4652635d.entry.js +0 -2
- package/dist/bromcom-ui/p-4652635d.entry.js.map +0 -1
- package/dist/bromcom-ui/p-50133556.js +0 -2
- package/dist/bromcom-ui/p-50133556.js.map +0 -1
- package/dist/bromcom-ui/p-67ceb7f3.entry.js +0 -2
- package/dist/bromcom-ui/p-67ceb7f3.entry.js.map +0 -1
- package/dist/bromcom-ui/p-77122bc2.entry.js +0 -2
- package/dist/bromcom-ui/p-77122bc2.entry.js.map +0 -1
- package/dist/bromcom-ui/p-78d8f63c.entry.js +0 -2
- package/dist/bromcom-ui/p-78d8f63c.entry.js.map +0 -1
- package/dist/bromcom-ui/p-87a0f20b.entry.js +0 -2
- package/dist/bromcom-ui/p-87a0f20b.entry.js.map +0 -1
- package/dist/bromcom-ui/p-881ccea1.entry.js +0 -2
- package/dist/bromcom-ui/p-881ccea1.entry.js.map +0 -1
- package/dist/bromcom-ui/p-8ae92b62.entry.js +0 -2
- package/dist/bromcom-ui/p-8ae92b62.entry.js.map +0 -1
- package/dist/bromcom-ui/p-9a6cec21.entry.js +0 -2
- package/dist/bromcom-ui/p-9a6cec21.entry.js.map +0 -1
- package/dist/bromcom-ui/p-9d0aeb92.js +0 -3
- package/dist/bromcom-ui/p-9d0aeb92.js.map +0 -1
- package/dist/bromcom-ui/p-a03922f8.entry.js.map +0 -1
- package/dist/bromcom-ui/p-a20f6baf.entry.js +0 -2
- package/dist/bromcom-ui/p-a20f6baf.entry.js.map +0 -1
- package/dist/bromcom-ui/p-b1f9ad67.entry.js.map +0 -1
- package/dist/bromcom-ui/p-ba2410ef.js.map +0 -1
- package/dist/bromcom-ui/p-bf213fe6.entry.js +0 -2
- package/dist/bromcom-ui/p-bf213fe6.entry.js.map +0 -1
- package/dist/bromcom-ui/p-c89f7997.entry.js +0 -2
- package/dist/bromcom-ui/p-c89f7997.entry.js.map +0 -1
- package/dist/bromcom-ui/p-ddf64315.js +0 -2
- package/dist/bromcom-ui/p-ddf64315.js.map +0 -1
- package/dist/bromcom-ui/p-f56b22de.entry.js +0 -2
- package/dist/bromcom-ui/p-f56b22de.entry.js.map +0 -1
- package/dist/bromcom-ui/p-fdcb9dbd.entry.js +0 -2
- package/dist/bromcom-ui/p-fdcb9dbd.entry.js.map +0 -1
- package/dist/cjs/app-globals-e0eef2e9.js +0 -47
- package/dist/cjs/app-globals-e0eef2e9.js.map +0 -1
- package/dist/cjs/floating-ui.dom.esm-3ec8404c.js.map +0 -1
- package/dist/cjs/generate-id-f6982042.js.map +0 -1
- package/dist/cjs/index-5a88e57b.js +0 -84
- package/dist/cjs/index-5a88e57b.js.map +0 -1
- package/dist/cjs/index-6710808e.js.map +0 -1
- package/dist/cjs/tv-d2e35446.js +0 -2597
- package/dist/cjs/tv-d2e35446.js.map +0 -1
- package/dist/cjs/validation-messages-18389279.js.map +0 -1
- package/dist/components/p-12360e4c.js +0 -82
- package/dist/components/p-12360e4c.js.map +0 -1
- package/dist/components/p-13a245f6.js.map +0 -1
- package/dist/components/p-2c58fcb7.js +0 -2595
- package/dist/components/p-2c58fcb7.js.map +0 -1
- package/dist/components/p-30135590.js +0 -1567
- package/dist/components/p-30135590.js.map +0 -1
- package/dist/components/p-39872cdf.js.map +0 -1
- package/dist/components/p-50133556.js.map +0 -1
- package/dist/components/p-ba2410ef.js.map +0 -1
- package/dist/components/p-bf273460.js.map +0 -1
- package/dist/components/p-c491a7c9.js.map +0 -1
- package/dist/esm/app-globals-f7994f55.js +0 -45
- package/dist/esm/app-globals-f7994f55.js.map +0 -1
- package/dist/esm/floating-ui.dom.esm-b7749b71.js.map +0 -1
- package/dist/esm/generate-id-3b2fcb93.js.map +0 -1
- package/dist/esm/index-097075ad.js +0 -82
- package/dist/esm/index-097075ad.js.map +0 -1
- package/dist/esm/index-18b75a47.js.map +0 -1
- package/dist/esm/tv-6dcd2224.js +0 -2595
- package/dist/esm/tv-6dcd2224.js.map +0 -1
- package/dist/esm/validation-messages-af4512f0.js.map +0 -1
- package/loader/package.json +0 -11
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,h as t}from"./p-9d0aeb92.js";import{t as i}from"./p-2c58fcb7.js";const a=":host{--bcm-badge-bg:var(--bcm-ui-color-background-default-default);--bcm-badge-text:var(--bcm-ui-color-text-default);--bcm-badge-radius:9999px;display:inline-flex;height:-moz-fit-content;height:fit-content;width:-moz-fit-content;width:fit-content}.badge-content{color:var(--bcm-badge-text);font-weight:500}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.inline-flex{display:inline-flex}.size-1{height:.25rem;width:.25rem}.size-1\\.5{height:.375rem;width:.375rem}.size-2{height:.5rem;width:.5rem}.select-none{user-select:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-0{gap:0}.whitespace-nowrap{white-space:nowrap}.rounded-\\[--bcm-badge-radius\\]{border-radius:var(--bcm-badge-radius)}.bg-\\[--bcm-badge-bg\\]{background-color:var(--bcm-badge-bg)}.p-0{padding:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.text-\\[0px\\]{font-size:0}.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}.leading-none{line-height:1}.text-\\[--bcm-badge-text\\]{color:var(--bcm-badge-text)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";const s=a;const n=class{constructor(t){e(this,t);this.size="medium";this.variant="text";this.soft=false;this.classes=i({base:"badge bcm-ui-element inline-flex items-center justify-center whitespace-nowrap select-none font-medium bg-[--bcm-badge-bg] text-[--bcm-badge-text] rounded-[--bcm-badge-radius]",variants:{size:{small:"px-1 text-size-3",medium:"py-0.5 px-1.5 text-size-4",large:"py-1 px-2 text-size-5"},variant:{dot:"gap-0 p-0 text-[0px] leading-none",text:""}},compoundVariants:[{variant:"dot",size:"small",class:"size-1"},{variant:"dot",size:"medium",class:"size-1.5"},{variant:"dot",size:"large",class:"size-2"}],defaultVariants:{variant:"text",size:"medium",blink:false}})}get badgeStyle(){if(!this.color)return{};const e=this.soft?"palette":"vivid";return{"--bcm-badge-bg":`var(--bcm-ui-color-background-${e}-${this.color}-default)`,"--bcm-badge-text":this.soft?`var(--bcm-ui-color-text-palette-${this.color})`:"var(--bcm-ui-color-text-base)"}}render(){return t("span",{key:"bfbf8ca56ea7e47a7ae8905ba85e851241a847e4",part:"base",role:"status","aria-live":"polite",style:this.badgeStyle,class:this.classes({size:this.size,variant:this.variant})},this.variant==="text"&&t("span",{key:"7f752ae67fe7eff49c9e95fb2fd5043223e1beb8",class:"badge-content"},t("slot",{key:"25cc949858b1c39614be77f4f06cd98a7ce5a62a"})))}};n.style=s;export{n as bcm_basic_badge};
|
|
2
|
-
//# sourceMappingURL=p-bf213fe6.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["basicBadgeCss","BcmBasicBadgeStyle0","BasicBadge","constructor","hostRef","this","size","variant","soft","classes","tv","base","variants","small","medium","large","dot","text","compoundVariants","class","defaultVariants","blink","badgeStyle","color","variantType","render","h","key","part","role","style"],"sources":["src/components/basic-badge/basic-badge.css?tag=bcm-basic-badge&encapsulation=shadow","src/components/basic-badge/basic-badge.component.tsx"],"sourcesContent":[":host {\n display: inline-flex;\n height: fit-content;\n width: fit-content;\n --bcm-badge-bg: var(--bcm-ui-color-background-default-default);\n --bcm-badge-text: var(--bcm-ui-color-text-default);\n --bcm-badge-radius: 9999px;\n}\n\n.badge-content {\n color: var(--bcm-badge-text);\n font-weight: 500;\n}\n","import { Component, ComponentInterface, Prop, h } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n/**\n * @component BcmBasicBadge\n * @description A basic badge component that can be used as a status indicator or to highlight content.\n * Supports dot and text variants with different sizes and color options.\n *\n * @example Basic usage\n * <bcm-basic-badge size=\"medium\" color=\"primary\">\n * New\n * </bcm-basic-badge>\n *\n * @example Dot variant\n * <bcm-basic-badge variant=\"dot\" color=\"success\" />\n */\n\n@Component({\n tag: 'bcm-basic-badge',\n styleUrl: 'basic-badge.css',\n shadow: true,\n})\nexport class BasicBadge implements ComponentInterface {\n /**\n * Determines the size of the badge.\n * @type {'small' | 'medium' | 'large'}\n * @default 'medium'\n */\n @Prop()\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Sets the visual variant of the badge.\n * 'dot': Appears as a small dot indicator\n * 'text': Displays content as text\n * @type {'dot' | 'text'}\n * @default 'text'\n */\n @Prop()\n variant: 'dot' | 'text' = 'text';\n\n /**\n * Defines the color of the badge.\n * Uses system color variables (e.g., 'primary', 'success', 'warning', etc.)\n * @type {string}\n * @optional\n */\n @Prop()\n color?: string;\n\n /**\n * Enables soft color mode for the badge.\n * When true, uses lighter tones and pastel colors.\n * @type {boolean}\n * @default false\n */\n @Prop()\n soft: boolean = false;\n\n /**\n * Text to be displayed inside the badge.\n * Used when variant is set to 'text'.\n * @type {string}\n * @optional\n */\n @Prop()\n text?: string;\n\n private classes = tv({\n base: 'badge bcm-ui-element inline-flex items-center justify-center whitespace-nowrap select-none font-medium bg-[--bcm-badge-bg] text-[--bcm-badge-text] rounded-[--bcm-badge-radius]',\n variants: {\n size: {\n small: 'px-1 text-size-3',\n medium: 'py-0.5 px-1.5 text-size-4',\n large: 'py-1 px-2 text-size-5',\n },\n variant: {\n dot: 'gap-0 p-0 text-[0px] leading-none',\n text: '',\n },\n },\n compoundVariants: [\n {\n variant: 'dot',\n size: 'small',\n class: 'size-1',\n },\n {\n variant: 'dot',\n size: 'medium',\n class: 'size-1.5',\n },\n {\n variant: 'dot',\n size: 'large',\n class: 'size-2',\n },\n ],\n defaultVariants: {\n variant: 'text',\n size: 'medium',\n blink: false,\n },\n });\n\n private get badgeStyle() {\n if (!this.color) return {};\n const variantType = this.soft ? 'palette' : 'vivid';\n\n return {\n '--bcm-badge-bg': `var(--bcm-ui-color-background-${variantType}-${this.color}-default)`,\n '--bcm-badge-text': this.soft ? `var(--bcm-ui-color-text-palette-${this.color})` : 'var(--bcm-ui-color-text-base)',\n };\n }\n\n render() {\n return (\n <span\n part=\"base\"\n role=\"status\"\n aria-live=\"polite\"\n style={this.badgeStyle}\n class={this.classes({\n size: this.size,\n variant: this.variant,\n })}\n >\n {this.variant === 'text' && (\n <span class=\"badge-content\">\n <slot></slot>\n </span>\n )}\n </span>\n );\n }\n}\n"],"mappings":"+EAAA,MAAMA,EAAgB,6tDACtB,MAAAC,EAAeD,E,MCqBFE,EAAU,MALvB,WAAAC,CAAAC,G,UAYEC,KAAAC,KAAqC,SAUrCD,KAAAE,QAA0B,OAkB1BF,KAAAG,KAAgB,MAWRH,KAAAI,QAAUC,EAAG,CACnBC,KAAM,kLACNC,SAAU,CACRN,KAAM,CACJO,MAAO,mBACPC,OAAQ,4BACRC,MAAO,yBAETR,QAAS,CACPS,IAAK,oCACLC,KAAM,KAGVC,iBAAkB,CAChB,CACEX,QAAS,MACTD,KAAM,QACNa,MAAO,UAET,CACEZ,QAAS,MACTD,KAAM,SACNa,MAAO,YAET,CACEZ,QAAS,MACTD,KAAM,QACNa,MAAO,WAGXC,gBAAiB,CACfb,QAAS,OACTD,KAAM,SACNe,MAAO,Q,CAIX,cAAYC,GACV,IAAKjB,KAAKkB,MAAO,MAAO,GACxB,MAAMC,EAAcnB,KAAKG,KAAO,UAAY,QAE5C,MAAO,CACL,iBAAkB,iCAAiCgB,KAAenB,KAAKkB,iBACvE,mBAAoBlB,KAAKG,KAAO,mCAAmCH,KAAKkB,SAAW,gC,CAIvF,MAAAE,GACE,OACEC,EAAA,QAAAC,IAAA,2CACEC,KAAK,OACLC,KAAK,SAAQ,YACH,SACVC,MAAOzB,KAAKiB,WACZH,MAAOd,KAAKI,QAAQ,CAClBH,KAAMD,KAAKC,KACXC,QAASF,KAAKE,WAGfF,KAAKE,UAAY,QAChBmB,EAAA,QAAAC,IAAA,2CAAMR,MAAM,iBACVO,EAAA,QAAAC,IAAA,8C","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,H as o,g as r}from"./p-9d0aeb92.js";import{t as a}from"./p-2c58fcb7.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:"da5fd3ac598c6e782387ead9a994c3e2cffb0120"},i("div",{key:"8095a9eb1c5cc455989402ca89ef45ad8799cc4c",class:this.segmentedClass({size:this.size,fullWidth:this.fullWidth,disabled:this.disabled})},i("div",{key:"09be9fc279d015a8d1050591ea287ca192f2e1ea",class:"segmented-indicator absolute bg-[--bcm-ui-color-background-base-default] z-0 rounded",style:this.indicatorStyles}),i("div",{key:"41b20cd2a9a5b3abe7bda035c91c801a211c0f23",class:"segmented-options flex relative z-10 w-full"},i("slot",{key:"102516eba6f3470073e54fba0943efb26037b8a4"}))))}get host(){return r(this)}static get watchers(){return{value:["valueChanged"]}}};d.style=n;export{d as bcm_segmented_picker};
|
|
2
|
-
//# sourceMappingURL=p-c89f7997.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["segmentedPickerCss","BcmSegmentedPickerStyle0","BcmSegmentedPicker","constructor","hostRef","this","size","disabled","fullWidth","options","indicatorStyles","left","width","transition","segmentedClass","tv","base","variants","small","medium","large","true","false","defaultVariants","twMerge","componentWillLoad","parseOptions","value","length","componentDidLoad","updateIndicatorPosition","componentDidUpdate","valueChanged","handleOptionClick","event","detail","bcmChange","emit","slotNodes","Array","from","host","children","filter","node","nodeName","toLowerCase","map","option","getAttribute","label","textContent","animate","selectedOption","querySelector","allOptions","querySelectorAll","selectedIndex","i","setTimeout","leftPosition","optionElement","offsetWidth","selectedWidth","error","console","render","h","Host","key","class","style"],"sources":["src/components/segmented-picker/segmented-picker.css?tag=bcm-segmented-picker&encapsulation=shadow","src/components/segmented-picker/segmented-picker.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n.segmented-container {\n border-radius: var(--bcm-ui-border-radius, 4px);\n}\n\n.segmented-indicator {\n height: 100%;\n top: 0;\n border-radius: var(--bcm-ui-border-radius-md, 2px);\n transition: left 0.2s ease-in-out, width 0.2s ease-in-out;\n}\n\n.segmented-options {\n display: flex;\n}\n","import { Component, Prop, h, Host, Element, Event, EventEmitter, Watch, State, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { SegmentedPickerSize } from './types';\n\n@Component({\n tag: 'bcm-segmented-picker',\n styleUrl: 'segmented-picker.css',\n shadow: true,\n})\nexport class BcmSegmentedPicker {\n @Element() host: HTMLElement;\n\n /** Controls the component size */\n @Prop()\n size: SegmentedPickerSize = 'medium';\n\n /** The selected option value */\n @Prop({ mutable: true, reflect: true })\n value?: string;\n\n /** Disabled state */\n @Prop()\n disabled = false;\n\n /** Full width component */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** Change event */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<{ value: string }>;\n\n @State() options: Array<{ value: string; label: string }> = [];\n @State() indicatorStyles: { left: string; width: string; transition: string } = {\n left: '0',\n width: '0',\n transition: 'none',\n };\n\n componentWillLoad() {\n // İlk yüklemede options'ları belirle\n this.parseOptions();\n\n // Eğer value belirtilmemişse ve options varsa, ilk option'ı seç\n if (!this.value && this.options.length > 0) {\n this.value = this.options[0].value;\n }\n }\n\n componentDidLoad() {\n // DOM yüklendikten sonra sadece gösterge pozisyonunu güncelle\n this.updateIndicatorPosition(false);\n }\n\n componentDidUpdate() {\n this.updateIndicatorPosition();\n }\n\n @Watch('value')\n valueChanged() {\n this.updateIndicatorPosition();\n }\n\n @Listen('bcmOptionClick')\n handleOptionClick(event: CustomEvent<string>) {\n if (this.disabled) return;\n\n const value = event.detail;\n if (this.value !== value) {\n this.value = value;\n this.bcmChange.emit({ value });\n }\n }\n\n private parseOptions() {\n const slotNodes = Array.from(this.host.children);\n this.options = slotNodes\n .filter(node => node.nodeName.toLowerCase() === 'bcm-segmented-picker-option')\n .map(option => ({\n value: option.getAttribute('value') || '',\n label: option.getAttribute('label') || option.textContent || '',\n }));\n }\n\n private updateIndicatorPosition(animate = true) {\n // Seçili option elemanını bul\n const selectedOption = this.host.querySelector(`bcm-segmented-picker-option[value=\"${this.value}\"]`) as HTMLElement;\n if (!selectedOption) return;\n\n // Tüm option'ları seç\n const allOptions = this.host.querySelectorAll('bcm-segmented-picker-option');\n\n // Seçili option'ın indeksini bul\n let selectedIndex = -1;\n for (let i = 0; i < allOptions.length; i++) {\n if (allOptions[i].getAttribute('value') === this.value) {\n selectedIndex = i;\n break;\n }\n }\n\n if (selectedIndex === -1) return;\n\n // DOM manipülasyonu asenkron olarak yap\n setTimeout(() => {\n try {\n // Seçili option'a kadar olan genişliği hesapla\n let leftPosition = 0;\n\n for (let i = 0; i < selectedIndex; i++) {\n const optionElement = allOptions[i] as HTMLElement;\n if (optionElement) {\n leftPosition += optionElement.offsetWidth;\n }\n }\n\n // Seçili option'ın genişliği\n const selectedWidth = (allOptions[selectedIndex] as HTMLElement).offsetWidth;\n\n // İndikatör stillerini güncelle\n this.indicatorStyles = {\n left: `${leftPosition}px`,\n width: `${selectedWidth}px`,\n transition: animate ? 'all 0.2s ease-in-out' : 'none',\n };\n } catch (error) {\n console.error('Error updating indicator position:', error);\n }\n }, 10);\n }\n\n private segmentedClass = tv(\n {\n 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',\n variants: {\n size: {\n small: 'text-size-4',\n medium: 'text-size-5',\n large: 'text-size-6',\n },\n fullWidth: {\n true: 'w-full',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'cursor-pointer',\n },\n },\n defaultVariants: {\n size: 'medium',\n fullWidth: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <Host>\n <div\n class={this.segmentedClass({\n size: this.size,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n })}\n >\n <div class=\"segmented-indicator absolute bg-[--bcm-ui-color-background-base-default] z-0 rounded\" style={this.indicatorStyles}></div>\n <div class=\"segmented-options flex relative z-10 w-full\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"oGAAA,MAAMA,EAAqB,mnEAC3B,MAAAC,EAAeD,E,MCQFE,EAAkB,MAL/B,WAAAC,CAAAC,G,+CAUEC,KAAAC,KAA4B,SAQ5BD,KAAAE,SAAW,MAIXF,KAAAG,UAAY,MAUHH,KAAAI,QAAmD,GACnDJ,KAAAK,gBAAuE,CAC9EC,KAAM,IACNC,MAAO,IACPC,WAAY,QA+FNR,KAAAS,eAAiBC,EACvB,CACEC,KAAM,4LACNC,SAAU,CACRX,KAAM,CACJY,MAAO,cACPC,OAAQ,cACRC,MAAO,eAETZ,UAAW,CACTa,KAAM,UAERd,SAAU,CACRc,KAAM,gCACNC,MAAO,mBAGXC,gBAAiB,CACfjB,KAAM,SACNE,UAAW,MACXD,SAAU,QAGd,CACEiB,QAAS,O,CApHb,iBAAAC,GAEEpB,KAAKqB,eAGL,IAAKrB,KAAKsB,OAAStB,KAAKI,QAAQmB,OAAS,EAAG,CAC1CvB,KAAKsB,MAAQtB,KAAKI,QAAQ,GAAGkB,K,EAIjC,gBAAAE,GAEExB,KAAKyB,wBAAwB,M,CAG/B,kBAAAC,GACE1B,KAAKyB,yB,CAIP,YAAAE,GACE3B,KAAKyB,yB,CAIP,iBAAAG,CAAkBC,GAChB,GAAI7B,KAAKE,SAAU,OAEnB,MAAMoB,EAAQO,EAAMC,OACpB,GAAI9B,KAAKsB,QAAUA,EAAO,CACxBtB,KAAKsB,MAAQA,EACbtB,KAAK+B,UAAUC,KAAK,CAAEV,S,EAIlB,YAAAD,GACN,MAAMY,EAAYC,MAAMC,KAAKnC,KAAKoC,KAAKC,UACvCrC,KAAKI,QAAU6B,EACZK,QAAOC,GAAQA,EAAKC,SAASC,gBAAkB,gCAC/CC,KAAIC,IAAM,CACTrB,MAAOqB,EAAOC,aAAa,UAAY,GACvCC,MAAOF,EAAOC,aAAa,UAAYD,EAAOG,aAAe,M,CAI3D,uBAAArB,CAAwBsB,EAAU,MAExC,MAAMC,EAAiBhD,KAAKoC,KAAKa,cAAc,sCAAsCjD,KAAKsB,WAC1F,IAAK0B,EAAgB,OAGrB,MAAME,EAAalD,KAAKoC,KAAKe,iBAAiB,+BAG9C,IAAIC,GAAiB,EACrB,IAAK,IAAIC,EAAI,EAAGA,EAAIH,EAAW3B,OAAQ8B,IAAK,CAC1C,GAAIH,EAAWG,GAAGT,aAAa,WAAa5C,KAAKsB,MAAO,CACtD8B,EAAgBC,EAChB,K,EAIJ,GAAID,KAAmB,EAAG,OAG1BE,YAAW,KACT,IAEE,IAAIC,EAAe,EAEnB,IAAK,IAAIF,EAAI,EAAGA,EAAID,EAAeC,IAAK,CACtC,MAAMG,EAAgBN,EAAWG,GACjC,GAAIG,EAAe,CACjBD,GAAgBC,EAAcC,W,EAKlC,MAAMC,EAAiBR,EAAWE,GAA+BK,YAGjEzD,KAAKK,gBAAkB,CACrBC,KAAM,GAAGiD,MACThD,MAAO,GAAGmD,MACVlD,WAAYuC,EAAU,uBAAyB,O,CAEjD,MAAOY,GACPC,QAAQD,MAAM,qCAAsCA,E,IAErD,G,CA+BL,MAAAE,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CACEC,MAAOjE,KAAKS,eAAe,CACzBR,KAAMD,KAAKC,KACXE,UAAWH,KAAKG,UAChBD,SAAUF,KAAKE,YAGjB4D,EAAA,OAAAE,IAAA,2CAAKC,MAAM,uFAAuFC,MAAOlE,KAAKK,kBAC9GyD,EAAA,OAAAE,IAAA,2CAAKC,MAAM,+CACTH,EAAA,QAAAE,IAAA,+C","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function t(t){const e=document.head;const n=document.createElement("script");Object.keys(t).forEach((e=>{n[e]=t[e]}));e.appendChild(n)}t({src:"https://kit.fontawesome.com/5e86bea963.js",crossOrigin:"anonymous"});const e="https://designsystem.bromcomcloud.com/fontawesome/6/css/all.min.css";customElements.define("bcm-icon",class extends HTMLElement{constructor(){super();const t=this.attachShadow({mode:"open"});t.innerHTML=`\n <link rel="stylesheet" href="${e}"/>\n <i></i>\n `}static get observedAttributes(){return["name","icon-name"]}attributeChangedCallback(t,e,n){if((t==="name"||t==="icon-name")&&e!==n){this.icon=n}}get icon(){return this.getAttribute("name")||this.getAttribute("icon-name")}set icon(t){this.shadowRoot.querySelector("i").className=`${t}`}connectedCallback(){this.style.display="inline-block";this.icon=this.icon}});const n=()=>{};const s=n;export{s as g};
|
|
2
|
-
//# sourceMappingURL=p-ddf64315.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["addHeadScript","obj","head","document","script","createElement","Object","keys","forEach","key","appendChild","FA_GLOBAL_CSS","constructor","shadow","this","attachShadow","mode","innerHTML","observedAttributes","attributeChangedCallback","name","oldValue","newValue","icon","shadowRoot","querySelector","className","connectedCallback","globalScripts","appGlobalScript"],"sources":["src/global/global.js","@stencil/core/internal/app-globals"],"sourcesContent":["function addHeadScript(obj) {\n const head = document.head;\n const script = document.createElement('script');\n Object.keys(obj).forEach(key => {\n script[key] = obj[key];\n });\n head.appendChild(script);\n}\n\naddHeadScript({ src: 'https://kit.fontawesome.com/5e86bea963.js', crossOrigin: 'anonymous' });\n\nconst FA_GLOBAL_CSS = 'https://designsystem.bromcomcloud.com/fontawesome/6/css/all.min.css';\n\ncustomElements.define(\n 'bcm-icon',\n class extends HTMLElement {\n constructor() {\n super();\n const shadow = this.attachShadow({ mode: 'open' });\n shadow.innerHTML = `\n <link rel=\"stylesheet\" href=\"${FA_GLOBAL_CSS}\"/>\n <i></i>\n `;\n }\n\n static get observedAttributes() {\n return ['name', 'icon-name'];\n }\n\n attributeChangedCallback(name, oldValue, newValue) {\n if ((name === 'name' || name === 'icon-name') && oldValue !== newValue) {\n this.icon = newValue;\n }\n }\n\n get icon() {\n return this.getAttribute('name') || this.getAttribute('icon-name');\n }\n\n set icon(icon) {\n this.shadowRoot.querySelector('i').className = `${icon}`;\n }\n\n connectedCallback() {\n this.style.display = 'inline-block';\n this.icon = this.icon;\n }\n },\n);\n","import appGlobalScript from '/Users/muratpolatozkan/works/bromcom/ui-team/bcm-next/bromcom-ui-v2/src/global/global.js';\nexport const globalScripts = appGlobalScript;\n"],"mappings":"AAAA,SAASA,EAAcC,GACnB,MAAMC,EAAOC,SAASD,KACtB,MAAME,EAASD,SAASE,cAAc,UACtCC,OAAOC,KAAKN,GAAKO,SAAQC,IACrBL,EAAOK,GAAOR,EAAIQ,EAAA,IAEtBP,EAAKQ,YAAYN,EACrB,C,6EAEA,MAAMO,EAAgB,sE,2DAElB,WAAAC,G,QAEI,MAAMC,EAAMC,KAAAC,aAAA,CAAAC,KAAA,SACZH,EAAAI,UAAA,0CACRN,+BAGA,CACI,6BAAWO,GACP,MAAO,CAAC,OAAQ,YACxB,CACI,wBAAAC,CAAAC,EAAAC,EAAAC,GACJ,IAAAF,IAAA,QAAAA,IAAA,cAAAC,IAAAC,EAAA,C,WAEA,CACA,CACI,QAAAC,G,gEAEJ,CACI,QAAIA,CAAKA,GACLT,KAAKU,WAAWC,cAAA,KAAAC,UAAA,GAAAH,GACxB,CACI,iBAAAI,G,kCAEIb,KAAKS,KAAAT,KAAAS,IACb,I,eCnCY,MAACK,EAAgBC,S","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,h as s,g as i}from"./p-9d0aeb92.js";import{a,c as o,o as h,f as r,s as c,b as l}from"./p-50133556.js";import{t as n}from"./p-2c58fcb7.js";const d=":host{--popover-bg:var(--bcm-ui-color-background-base-default);display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.relative{position:relative}.z-\\[9999\\]{z-index:9999}.flex{display:flex}.hidden{display:none}.h-4{height:1rem}.w-4{width:1rem}.min-w-max{min-width:max-content}.rotate-45{--tw-rotate:45deg}.rotate-45,.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))}.flex-col{flex-direction:column}.gap-1\\.5{gap:.375rem}.rounded-md{border-radius:var(--bcm-ui-border-radius-md,6px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-3{padding:.75rem}.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-normal{font-weight:400}.font-semibold{font-weight:600}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}";const b=d;const f=class{constructor(s){t(this,s);this.bcmPopoverOpen=e(this,"bcmPopoverOpen",1);this.bcmPopoverClose=e(this,"bcmPopoverClose",1);this.size="medium";this.placement="top";this.trigger="click";this.hoverDelay=150;this.open=false;this.togglePopover=()=>{this.open=!this.open;if(this.open){this.bcmPopoverOpen.emit()}else{this.bcmPopoverClose.emit()}this.updatePosition()};this.showPopover=()=>{clearTimeout(this.hoverTimeout);this.hoverTimeout=setTimeout((()=>{this.open=true;this.bcmPopoverOpen.emit();this.updatePosition()}),this.hoverDelay)};this.hidePopover=()=>{clearTimeout(this.hoverTimeout);this.hoverTimeout=setTimeout((()=>{this.open=false;this.bcmPopoverClose.emit()}),this.hoverDelay)};this.handleSlotChange=()=>{const t=this.el.shadowRoot.querySelector("slot");const e=t.assignedElements();this.targetElement=e[0];if(this.targetElement){this.targetElement.removeEventListener("click",this.togglePopover);this.targetElement.removeEventListener("mouseenter",this.showPopover);this.targetElement.removeEventListener("mouseleave",this.hidePopover);if(this.trigger==="click"){this.targetElement.addEventListener("click",this.togglePopover);this.targetElement.setAttribute("aria-expanded",this.open.toString())}if(this.trigger==="hover"){this.targetElement.addEventListener("mouseenter",this.showPopover);this.targetElement.addEventListener("mouseleave",this.hidePopover)}if(this.popoverElement&&!this.cleanupAutoUpdate){this.cleanupAutoUpdate=a(this.targetElement,this.popoverElement,(()=>this.updatePosition()))}}};this.handleOutsideClick=t=>{if(!this.el.contains(t.target)&&this.open){this.open=false}};this.updatePosition=async()=>{if(!this.targetElement||!this.popoverElement||!this.arrowElement)return;const{x:t,y:e,placement:s,middlewareData:i}=await o(this.targetElement,this.popoverElement,{placement:this.placement,middleware:[h(12),r({fallbackPlacements:["top","left","bottom","right"]}),c({padding:8}),l({element:this.arrowElement})]});Object.assign(this.popoverElement.style,{left:`${t}px`,top:`${e}px`});const{x:a,y:n}=i.arrow||{x:0,y:0};const d=s.split("-")[0];const b={top:"bottom",right:"left",bottom:"top",left:"right"}[d];Object.assign(this.arrowElement.style,{left:a!=null?`${a}px`:"",top:n!=null?`${n}px`:"",[b]:"-4px"})};this.popoverClass=n({slots:{box:"bcm-ui-element bcm-popover absolute flex flex-col bg-[--popover-bg] rounded-md shadow-3 p-3 gap-1.5 min-w-max z-[9999]",header:"font-semibold text-color",content:"font-normal text-color",arrow:"absolute w-4 h-4 bg-[--popover-bg] transform rotate-45"},variants:{size:{small:{box:"text-size-3"},medium:{box:"text-size-4"},large:{box:"text-size-5"}},isOpen:{true:{box:"flex"},false:{box:"hidden"}}},defaultVariants:{size:"medium",isOpen:false}})}connectedCallback(){document.addEventListener("click",this.handleOutsideClick)}disconnectedCallback(){var t;document.removeEventListener("click",this.handleOutsideClick);if(this.targetElement){this.targetElement.removeEventListener("click",this.togglePopover);this.targetElement.removeEventListener("mouseenter",this.showPopover);this.targetElement.removeEventListener("mouseleave",this.hidePopover)}(t=this.cleanupAutoUpdate)===null||t===void 0?void 0:t.call(this);this.cleanupAutoUpdate=null;clearTimeout(this.hoverTimeout)}async openPopup(){this.showPopover()}async closePopup(){this.hidePopover()}render(){const{box:t,header:e,content:i,arrow:a}=this.popoverClass({isOpen:this.open,size:this.size});return s("div",{key:"e57bc4bf987d3e0ab1c32093c0c2aa4fb19ec403",class:"relative"},s("slot",{key:"4e2cf108937324457a86501891f280abc1ab1bbb",onSlotchange:()=>this.handleSlotChange()}),s("div",{key:"63ef22a0aaed9d37a570686c191a2d1b901a38df",part:"popover",class:t(),role:"dialog","aria-hidden":!this.open?"true":"false",ref:t=>this.popoverElement=t},s("div",{key:"f6c3d7d6733e60928703b3be49b69abc69693a2e",class:a(),ref:t=>this.arrowElement=t,part:"arrow"}),s("div",{key:"88898bfe6a978e5a7f85c9bd72387a1965bd5e8b",class:e(),part:"header"},s("slot",{key:"13d490f43ac484bfe7c7ece3d93cc5161d85ef6f",name:"header"},this.headerText)),s("div",{key:"a1de41f15a483d4eefdbc915109f971225163852",class:i(),part:"content"},s("slot",{key:"8000dff7ff5ed0466fcb50dae1b23c0510a7bfc8",name:"content"},this.message))))}get el(){return i(this)}};f.style=b;export{f as bcm_popover};
|
|
2
|
-
//# sourceMappingURL=p-f56b22de.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["popoverCss","BcmPopoverStyle0","Popover","constructor","hostRef","this","size","placement","trigger","hoverDelay","open","togglePopover","bcmPopoverOpen","emit","bcmPopoverClose","updatePosition","showPopover","clearTimeout","hoverTimeout","setTimeout","hidePopover","handleSlotChange","slot","el","shadowRoot","querySelector","elements","assignedElements","targetElement","removeEventListener","addEventListener","setAttribute","toString","popoverElement","cleanupAutoUpdate","autoUpdate","handleOutsideClick","event","contains","target","async","arrowElement","x","y","middlewareData","computePosition","middleware","offset","flip","fallbackPlacements","shift","padding","arrow","element","Object","assign","style","left","top","arrowX","arrowY","basePlacement","split","staticSide","right","bottom","popoverClass","tv","slots","box","header","content","variants","small","medium","large","isOpen","true","false","defaultVariants","connectedCallback","document","disconnectedCallback","_a","call","openPopup","closePopup","render","h","key","class","onSlotchange","part","role","ref","name","headerText","message"],"sources":["src/components/popover/popover.css?tag=bcm-popover&encapsulation=shadow","src/components/popover/popover.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n --popover-bg: var(--bcm-ui-color-background-base-default);\n}\n","import { arrow, computePosition, flip, offset, shift, autoUpdate } from '@floating-ui/dom';\nimport { Component, ComponentInterface, Element, Prop, Event, EventEmitter, h, Method } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n/**\n * @component BcmPopover\n * @description A flexible popover component that displays contextual information or content relative to a target element.\n * Supports different sizes, trigger types (click or hover), placements (top, right, bottom, left), and can be controlled via slots or props.\n *\n * @example Basic Click Popover\n * <bcm-popover trigger=\"click\" size=\"medium\" placement=\"top\">\n * <bcm-button>Click Me</bcm-button>\n * <span slot=\"header\">Header</span>\n * <span slot=\"content\">This is a simple popover content.</span>\n * </bcm-popover>\n *\n * @example Hover Popover with Props\n * <bcm-popover trigger=\"hover\" hover-delay=\"200\" size=\"large\" placement=\"right\" header-text=\"Prop Header\" message=\"This is a hover popover with props.\">\n * <bcm-button>Hover Me</bcm-button>\n * </bcm-popover>\n *\n * @example Programmatic Control\n * <bcm-popover id=\"my-popover\" trigger=\"click\">\n * <bcm-button>Toggle Me</bcm-button>\n * <span slot=\"content\">Controlled popover</span>\n * </bcm-popover>\n * <script>\n * const popover = document.querySelector('#my-popover');\n * popover.openPopup(); // Opens the popover\n * popover.closePopup(); // Closes the popover\n * </script>\n *\n * @slot - Default slot for the target element that triggers the popover\n * @slot header - Slot for custom header content\n * @slot content - Slot for custom popover content\n *\n * @csspart popover - The root popover container element, stylable for the entire popover\n * @csspart header - The header section of the popover, stylable for the title area\n * @csspart content - The content section of the popover, stylable for the main content area\n * @csspart arrow - The arrow element of the popover, stylable for the positioning arrow\n */\n\n@Component({\n tag: 'bcm-popover',\n styleUrl: 'popover.css',\n shadow: true,\n})\nexport class Popover implements ComponentInterface {\n @Element() el: HTMLElement;\n private targetElement: HTMLElement;\n private popoverElement: HTMLElement;\n private arrowElement: HTMLElement;\n private hoverTimeout: any;\n private cleanupAutoUpdate: () => void;\n /**\n * @prop {('small' | 'medium' | 'large')} size - Defines the size of the popover.\n * Controls the text size and padding of the popover content.\n * Default: 'medium'\n */\n @Prop()\n size: 'small' | 'medium' | 'large' = 'medium';\n /**\n * @prop {('top' | 'right' | 'bottom' | 'left')} placement - Defines the position of the popover relative to the target element.\n * Determines where the popover appears around the trigger element.\n * Default: 'top'\n */\n @Prop()\n placement: 'top' | 'right' | 'bottom' | 'left' = 'top';\n /**\n * @prop {('click' | 'hover')} trigger - Defines the interaction type to show/hide the popover.\n * 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave.\n * Default: 'click'\n */\n @Prop()\n trigger: 'click' | 'hover' = 'click';\n /**\n * @prop {number} hoverDelay - Delay in milliseconds before showing or hiding the popover when trigger is 'hover'.\n * Adds a delay to prevent flickering on quick mouse movements.\n * Default: 150\n */\n @Prop()\n hoverDelay: number = 150;\n /**\n * @prop {boolean} open - Indicates whether the popover is currently open.\n * Can be set programmatically or toggled by user interaction. Mutable.\n * Default: false\n */\n @Prop({ mutable: true })\n open: boolean = false;\n /**\n * @prop {string} headerText - Custom text for the popover header.\n * Used as fallback content if the 'header' slot is not provided.\n */\n @Prop()\n headerText: string;\n /**\n * @prop {string} message - Custom text for the popover content.\n * Used as fallback content if the 'content' slot is not provided.\n */\n @Prop()\n message: string;\n /**\n * @event {EventEmitter<void>} bcmPopoverOpen - Emitted when the popover is opened.\n * Useful for tracking when the popover becomes visible.\n */\n @Event({ composed: false, bubbles: false, cancelable: true })\n bcmPopoverOpen: EventEmitter<void>;\n\n /**\n * @event {EventEmitter<void>} bcmPopoverClose - Emitted when the popover is closed.\n * Useful for tracking when the popover is hidden.\n */\n @Event({ composed: false, bubbles: false, cancelable: true })\n bcmPopoverClose: EventEmitter<void>;\n\n connectedCallback() {\n document.addEventListener('click', this.handleOutsideClick);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleOutsideClick);\n if (this.targetElement) {\n this.targetElement.removeEventListener('click', this.togglePopover);\n this.targetElement.removeEventListener('mouseenter', this.showPopover);\n this.targetElement.removeEventListener('mouseleave', this.hidePopover);\n }\n this.cleanupAutoUpdate?.();\n this.cleanupAutoUpdate = null;\n clearTimeout(this.hoverTimeout);\n }\n\n private togglePopover = () => {\n this.open = !this.open;\n if (this.open) {\n this.bcmPopoverOpen.emit();\n } else {\n this.bcmPopoverClose.emit();\n }\n this.updatePosition();\n };\n\n private showPopover = () => {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = setTimeout(() => {\n this.open = true;\n this.bcmPopoverOpen.emit();\n this.updatePosition();\n }, this.hoverDelay);\n };\n\n private hidePopover = () => {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = setTimeout(() => {\n this.open = false;\n this.bcmPopoverClose.emit();\n }, this.hoverDelay);\n };\n\n /**\n * @method {Promise<void>} openPopup - Programmatically opens the popover.\n * Triggers the showPopover logic to display the popover with the specified hover delay (if applicable).\n * @returns {Promise<void>} A promise that resolves when the popover is opened.\n */\n @Method()\n async openPopup() {\n this.showPopover();\n }\n\n /**\n * @method {Promise<void>} closePopup - Programmatically closes the popover.\n * Triggers the hidePopover logic to hide the popover with the specified hover delay (if applicable).\n * @returns {Promise<void>} A promise that resolves when the popover is closed.\n */\n @Method()\n async closePopup() {\n this.hidePopover();\n }\n\n private handleSlotChange = () => {\n const slot = this.el.shadowRoot.querySelector('slot');\n const elements = slot.assignedElements();\n this.targetElement = elements[0] as HTMLElement;\n\n if (this.targetElement) {\n this.targetElement.removeEventListener('click', this.togglePopover);\n this.targetElement.removeEventListener('mouseenter', this.showPopover);\n this.targetElement.removeEventListener('mouseleave', this.hidePopover);\n\n if (this.trigger === 'click') {\n this.targetElement.addEventListener('click', this.togglePopover);\n this.targetElement.setAttribute('aria-expanded', this.open.toString());\n }\n\n if (this.trigger === 'hover') {\n this.targetElement.addEventListener('mouseenter', this.showPopover);\n this.targetElement.addEventListener('mouseleave', this.hidePopover);\n }\n\n if (this.popoverElement && !this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate = autoUpdate(this.targetElement, this.popoverElement, () => this.updatePosition());\n }\n }\n };\n\n private handleOutsideClick = (event: Event) => {\n if (!this.el.contains(event.target as Node) && this.open) {\n this.open = false;\n }\n };\n\n private updatePosition = async () => {\n if (!this.targetElement || !this.popoverElement || !this.arrowElement) return;\n\n const { x, y, placement, middlewareData } = await computePosition(this.targetElement, this.popoverElement, {\n placement: this.placement,\n middleware: [offset(12), flip({ fallbackPlacements: ['top', 'left', 'bottom', 'right'] }), shift({ padding: 8 }), arrow({ element: this.arrowElement })],\n });\n\n Object.assign(this.popoverElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow || { x: 0, y: 0 };\n const basePlacement = placement.split('-')[0] as 'top' | 'right' | 'bottom' | 'left';\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[basePlacement];\n\n Object.assign(this.arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n [staticSide]: '-4px',\n });\n };\n\n private popoverClass = tv({\n slots: {\n box: 'bcm-ui-element bcm-popover absolute flex flex-col bg-[--popover-bg] rounded-md shadow-3 p-3 gap-1.5 min-w-max z-[9999]',\n header: 'font-semibold text-color',\n content: 'font-normal text-color',\n arrow: 'absolute w-4 h-4 bg-[--popover-bg] transform rotate-45',\n },\n variants: {\n size: {\n small: { box: 'text-size-3' },\n medium: { box: 'text-size-4' },\n large: { box: 'text-size-5' },\n },\n isOpen: {\n true: { box: 'flex' },\n false: { box: 'hidden' },\n },\n },\n defaultVariants: {\n size: 'medium',\n isOpen: false,\n },\n });\n\n render() {\n const { box, header, content, arrow } = this.popoverClass({\n isOpen: this.open,\n size: this.size,\n });\n\n return (\n <div class=\"relative\">\n <slot onSlotchange={() => this.handleSlotChange()}></slot>\n <div part=\"popover\" class={box()} role=\"dialog\" aria-hidden={!this.open ? 'true' : 'false'} ref={el => (this.popoverElement = el)}>\n <div class={arrow()} ref={el => (this.arrowElement = el)} part=\"arrow\"></div>\n <div class={header()} part=\"header\">\n <slot name=\"header\">{this.headerText}</slot>\n </div>\n <div class={content()} part=\"content\">\n <slot name=\"content\">{this.message}</slot>\n </div>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,H as o,g as r}from"./p-9d0aeb92.js";import{t as a}from"./p-2c58fcb7.js";import{c as s}from"./p-12360e4c.js";import{g as n}from"./p-ba2410ef.js";import{s as l,g as c,d}from"./p-13a245f6.js";import{a as h,o as b,f as u,s as f,c as m}from"./p-50133556.js";const p={save:{text:"Save",status:"success",icon:"far fa-save",iconPosition:"prefix",kind:"primary"},ok:{text:"Ok",status:"success",icon:"far fa-check",iconPosition:"prefix"},new:{text:"New",status:"success",icon:"far fa-plus",iconPosition:"prefix"},add:{text:"Add",status:"success",icon:"far fa-plus",iconPosition:"prefix"},create:{text:"Create",status:"success",icon:"far fa-plus",iconPosition:"prefix"},prev:{text:"Prev",status:"default",icon:"far fa-arrow-left",iconPosition:"prefix"},next:{text:"Next",status:"default",icon:"far fa-arrow-right",iconPosition:"suffix"},apply:{text:"Apply",status:"default",icon:"far fa-check-circle",iconPosition:"prefix"},submit:{text:"Submit",status:"default",icon:"far fa-save",iconPosition:"prefix"},send:{text:"Send",status:"success",icon:"far fa-paper-plane",iconPosition:"prefix"},delete:{text:"Delete",status:"error",icon:"far fa-trash",iconPosition:"prefix"},cancel:{text:"Cancel",status:"error",icon:"far fa-times",iconPosition:"prefix"},decline:{text:"Decline",status:"error",icon:"far fa-ban",iconPosition:"prefix"},close:{text:"Close",status:"error",icon:"far fa-times-circle",iconPosition:"prefix"},archive:{text:"Archive",status:"error",icon:"far fa-folder-open",iconPosition:"prefix"},remove:{text:"Remove",status:"error",icon:"far fa-minus-circle",iconPosition:"prefix"},edit:{text:"Edit",status:"default",icon:"far fa-edit",iconPosition:"prefix"},export:{text:"Export",status:"default",icon:"far fa-sign-out",iconPosition:"prefix"},import:{text:"Import",status:"default",icon:"far fa-sign-in",iconPosition:"prefix"},filter:{text:"Filter",status:"default",icon:"far fa-filter",iconPosition:"prefix"},update:{text:"Update",status:"default",icon:"far fa-sync",iconPosition:"prefix"},reset:{text:"Reset",status:"default",icon:"far fa-sync",iconPosition:"prefix"},download:{text:"Download",status:"default",icon:"far fa-download",iconPosition:"prefix"}};const x=".relative{position:relative}:host{display:inline-block;position:relative}:host([full-width]){width:100%}:host([position=first]) .bcm-button{border-bottom-right-radius:0;border-top-right-radius:0}:host([position=middle]) .bcm-button{border-radius:0}:host([position=last]) .bcm-button{border-bottom-left-radius:0;border-top-left-radius:0}:host([position=first].orientation-vertical) .bcm-button{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:var(--bcm-ui-border-radius,4px);border-top-right-radius:var(--bcm-ui-border-radius,4px)}:host([position=middle].orientation-vertical) .bcm-button{border-radius:0}:host([position=last].orientation-vertical) .bcm-button{border-bottom-left-radius:var(--bcm-ui-border-radius,4px);border-bottom-right-radius:var(--bcm-ui-border-radius,4px);border-top-left-radius:0;border-top-right-radius:0}.static{position:static}.inline-flex{display:inline-flex}.min-h-10{min-height:2.5rem}.min-h-6{min-height:1.5rem}.min-h-8{min-height:2rem}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{appearance:none}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-final-border-color\\]{border-color:var(--bcm-final-border-color)}.border-color-disabled{border-color:var(--bcm-ui-color-border-disabled)}.bg-\\[--bcm-final-bg-color\\]{background-color:var(--bcm-final-bg-color)}.bg-\\[--bcm-ui-color-background-disabled-default\\]{background-color:var(--bcm-ui-color-background-disabled-default)}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-px{padding-bottom:1px;padding-top:1px}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.leading-none{line-height:1}.text-\\[--bcm-final-text-color\\]{color:var(--bcm-final-text-color)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.outline-0{outline-width:0}.hover\\:bg-\\[--bcm-final-hover-bg-color\\]:hover{background-color:var(--bcm-final-hover-bg-color)}.focus-visible\\:ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.active\\:bg-\\[--bcm-final-active-bg-color\\]:active{background-color:var(--bcm-final-active-bg-color)}.flex{display:flex}.max-h-64{max-height:16rem}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.absolute{position:absolute}.z-\\[9999\\]{z-index:9999}.mx-auto{margin-left:auto;margin-right:auto}.hidden{display:none}.size-6{height:1.5rem;width:1.5rem}.h-2{height:.5rem}.w-4{width:1rem}.max-w-80{max-width:20rem}.max-w-96{max-width:24rem}.flex-1{flex:1 1 0%}.flex-row{flex-direction:row}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.text-pretty{text-wrap:pretty}.rounded-\\[--popover-radius\\]{border-radius:var(--popover-radius)}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--popover-bg\\]{background-color:var(--popover-bg)}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.font-sans{font-family:Inter,sans-serif}.text-size-7{font-size:var(--bcm-ui-font-size-7,20px);line-height:var(--bcm-ui-line-height-7,28px)}.text-size-inherit{font-size:inherit;line-height:inherit}.font-semibold{font-weight:600}.\\!text-color-header{color:var(--bcm-ui-color-text-header)!important}.text-\\[--text-color\\]{color:var(--text-color)}.shadow,.shadow-2{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2{--tw-shadow:var(--bcm-ui-box-shadow-2);--tw-shadow-colored:var(--bcm-ui-box-shadow-2)}.hover\\:bg-gray-100:hover{background-color:oklch(.967 .003 264.542)}";const g=x;const w=class{constructor(i){t(this,i);this.bcmClick=e(this,"bcmClick",1);this.bcmFocus=e(this,"bcmFocus",1);this.bcmBlur=e(this,"bcmBlur",1);this.kind="primary";this.size="medium";this.status="default";this.iconPosition="prefix";this.iconOnly=false;this.fullWidth=false;this.type="button";this.loading=false;this.disabled=false;this.active=false;this.handleClick=t=>{if(!this.disabled&&!this.loading){this.bcmClick.emit(t)}};this.handleFocus=t=>{this.bcmFocus.emit(t)};this.handleBlur=t=>{this.bcmBlur.emit(t)};this.buttonClass=a({base:"bcm-button appearance-none inline-flex items-center justify-center border border-solid rounded outline-0",variants:{size:{small:"text-size-4 py-px px-2 min-h-6",medium:"text-size-5 py-0.5 px-3 min-h-8",large:"text-size-6 py-1 px-3 min-h-10"},kind:{primary:"kind-primary",ghost:"kind-ghost",text:"kind-text",outline:"kind-outline"},fullWidth:{true:"full-width w-full"},disabled:{true:"disabled cursor-not-allowed bg-[--bcm-ui-color-background-disabled-default] text-color-disabled border-color-disabled",false:["cursor-pointer","bg-[--bcm-final-bg-color] text-[--bcm-final-text-color] border-[--bcm-final-border-color]","hover:bg-[--bcm-final-hover-bg-color]","active:bg-[--bcm-final-active-bg-color]","focus-visible:ring"]},loading:{true:""},position:{first:"position-first",middle:"position-middle",last:"position-last"}},defaultVariants:{size:"medium",kind:"primary",fullWidth:false,disabled:false,loading:false}},{twMerge:false})}get buttonText(){return this.text||(this.variant?p[this.variant].text:"")}get buttonIcon(){if(this.variant&&p[this.variant].icon){return{icon:p[this.variant].icon,position:p[this.variant].iconPosition||"prefix"}}return{icon:this.icon,position:this.iconPosition}}get buttonStatus(){return this.variant?p[this.variant].status:this.status}get buttonStyles(){const t=this.buttonStatus==="default"?"primary":this.buttonStatus;const e={primary:{"--bcm-button-bg":`var(--bcm-ui-color-background-${t}-default)`,"--bcm-button-bg-hover":`var(--bcm-ui-color-background-${t}-hover)`,"--bcm-button-bg-active":`var(--bcm-ui-color-background-${t}-active)`,"--bcm-button-border":"transparent","--bcm-button-text":"var(--bcm-ui-color-text-base)"},outline:{"--bcm-button-bg":"var(--bcm-ui-color-background-default-default)","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":`var(--bcm-ui-color-border-${this.buttonStatus})`,"--bcm-button-text":`var(--bcm-ui-color-text-${this.buttonStatus})`},ghost:{"--bcm-button-bg":"transparent","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":"transparent","--bcm-button-text":`var(--bcm-ui-color-text-${this.buttonStatus})`},text:{"--bcm-button-bg":"transparent","--bcm-button-bg-hover":"var(--bcm-ui-color-background-default-hover)","--bcm-button-bg-active":"var(--bcm-ui-color-background-default-active)","--bcm-button-border":"transparent","--bcm-button-text":`var(--bcm-ui-color-text-${t})`}};const i=e[this.kind];const o={"--bcm-final-text-color":`var(--bcm-button-custom-text-color, ${i["--bcm-button-text"]})`,"--bcm-final-border-color":`var(--bcm-button-custom-border-color, ${i["--bcm-button-border"]})`,"--bcm-final-bg-color":`var(--bcm-button-custom-bg-color, ${i["--bcm-button-bg"]})`,"--bcm-final-hover-bg-color":`var(--bcm-button-custom-hover-bg-color, ${i["--bcm-button-bg-hover"]})`,"--bcm-final-active-bg-color":`var(--bcm-button-custom-active-bg-color, ${i["--bcm-button-bg-active"]})`};return Object.assign(Object.assign({},i),o)}render(){const{icon:t,position:e}=this.buttonIcon;return i(o,{key:"33e438220fdb261ff87289f8dcbaa7e0601d73c1"},i("button",{key:"4fb4d22a44bac12b3780f9570c734f60fdaba788",type:this.type,disabled:this.disabled||this.loading,"aria-label":this.label,"aria-expanded":this.expanded,"aria-controls":this.controls,"aria-disabled":this.disabled,onClick:this.handleClick,onFocus:this.handleFocus,onBlur:this.handleBlur,style:this.buttonStyles,class:this.buttonClass({size:this.size,kind:this.kind,fullWidth:this.fullWidth,disabled:this.disabled,loading:this.loading,position:this.position})},this.loading&&i("slot",{key:"fa8dcbcba338f94700842fd0482d0261c9a1d3e3",name:"loading"}),i("span",{key:"345162b4ad0034d5081dee0438ceeefe4930ecfb"},i("slot",{key:"c65c9aa07fd2f159426192fc6239c394ee6ec58d",name:"prefix"},e==="prefix"&&t&&i("i",{key:"c94e32a5d308ba3ad98ac10239fc9a155f47e2ac",class:" leading-none "+t}))),i("slot",{key:"171402bb9251492c7e5b0cf572fb0e2ae62a6add"},this.buttonText),i("span",{key:"ae3c5a885029b3d4c54e5ca21ac22adffa26b013"},i("slot",{key:"f80819d122624bb279d19822278c8e651dec27c7",name:"suffix"},e==="suffix"&&t&&i("i",{key:"69631e99a8b7f47dd1d00984f582ec6e7b5433e8",class:" leading-none "+t})))))}};w.style=g;const v=".contents{display:contents}:host{display:contents}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.inset-0{inset:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:0}.flex{display:flex}.hidden{display:none}.h-6{height:1.5rem}.w-6{width:1.5rem}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y:-100%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x:100%}.translate-y-0{--tw-translate-y:0px}.translate-y-0,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.overflow-y-auto{overflow-y:auto}.border-none{border-style:none}.bg-color-base{background-color:var(--bcm-ui-color-background-base-default)}.bg-color-default{background-color:var(--bcm-ui-color-background-default-default)}.bg-color-transparent{background-color:var(--bcm-ui-color-background-transparent-default)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-default{color:var(--bcm-ui-color-text-default)}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\\:bg-color-default-hover:hover{background-color:var(--bcm-ui-color-background-default-hover)}.active\\:bg-color-default-active:active{background-color:var(--bcm-ui-color-background-default-active)}";const y=v;const k=class{constructor(i){t(this,i);this.bcmOpen=e(this,"bcmOpen",7);this.bcmClose=e(this,"bcmClose",7);this.bcmBeforeOpen=e(this,"bcmBeforeOpen",7);this.bcmBeforeClose=e(this,"bcmBeforeClose",7);this.open=false;this.size="medium";this.position="right";this.fullWidth=false;this.noHeader=false;this.drawerClass=a({slots:{backdrop:"fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300",wrapper:"bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col",header:"flex justify-between items-center bg-color-default text-color-default",title:"font-semibold m-0 text-size-6",closeButton:"text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active",content:"overflow-y-auto flex-grow"},variants:{open:{true:{backdrop:"opacity-100 visible"},false:{backdrop:"opacity-0 invisible"}},position:{left:{wrapper:"top-0 left-0 bottom-0"},right:{wrapper:"top-0 right-0 bottom-0"},top:{wrapper:"top-0 left-0 right-0"},bottom:{wrapper:"bottom-0 left-0 right-0"}},size:{small:{header:"py-3 px-4",content:"p-4"},medium:{header:"py-3 px-4",content:"p-4"},large:{header:"py-3 px-4",content:"p-4"}},noHeader:{true:{header:"hidden"}}},compoundVariants:[{open:true,position:["left","right"],class:{wrapper:"translate-x-0"}},{open:true,position:["top","bottom"],class:{wrapper:"translate-y-0"}},{open:false,position:"left",class:{wrapper:"-translate-x-full"}},{open:false,position:"right",class:{wrapper:"translate-x-full"}},{open:false,position:"top",class:{wrapper:"-translate-y-full"}},{open:false,position:"bottom",class:{wrapper:"translate-y-full"}}]})}handleOpenChange(t){if(t){document.body.style.overflow="hidden";this.bcmOpen.emit()}else{document.body.style.overflow="";this.bcmClose.emit()}}handleKeyDown(t){if(t.key==="Escape"&&this.open){this.hide()}}async show(){const t=this.bcmBeforeOpen.emit();if(!t.defaultPrevented){this.open=true}}async hide(){const t=this.bcmBeforeClose.emit();if(!t.defaultPrevented){this.open=false}}disconnectedCallback(){document.body.style.overflow=""}getWrapperStyle(){const t={};if(this.fullWidth){if(this.position==="left"||this.position==="right"){t.width="100vw"}else{t.height="100vh"}return t}if(this.position==="left"||this.position==="right"){switch(this.size){case"small":t.width="320px";break;case"medium":t.width="480px";break;case"large":t.width="1064px";break}}else{switch(this.size){case"small":t.height="40vh";break;case"medium":t.height="60vh";break;case"large":t.height="90vh";break}}return t}render(){const{backdrop:t,wrapper:e,header:o,title:r,closeButton:a,content:s}=this.drawerClass({open:this.open,position:this.position,size:this.size,noHeader:this.noHeader});return i("div",{key:"44379905f1499a16d625ac4d1ff5e89fc6367d46",part:"base"},i("div",{key:"bc53e5322a61cd4af0691905c509d4c5fb765939",part:"backdrop",class:t(),onClick:()=>this.hide()}),i("div",{key:"d5a666671d24b2f3b55b7462b5218a3e11358982",part:"wrapper",class:e(),style:this.getWrapperStyle(),role:"dialog","aria-modal":"true","aria-hidden":!this.open?"true":"false","aria-label":this.headerText},i("div",{key:"5124de9d7fa8f3aa7267f0998f4c4f98f3ebbc4a",part:"header",class:o()},i("h2",{key:"8aa4b971efa9fe0fafa1cfb94f0b6b96f21f2f15",part:"title",class:r()},i("slot",{key:"949ae8f65d13e9e1c973c16a9f90205ac7e7042f",name:"header"},this.headerText)),i("button",{key:"a0c42761ee859e87dee5c267ea7245dde4fb8756",part:"close-button",class:a(),onClick:()=>this.hide(),"aria-label":"Close"},i("bcm-icon",{key:"2df273d63da93eda2280759a909906fe4ae0c493",name:"fa-solid fa-xmark"}))),i("div",{key:"b2532537d10f9aa0dcfa2fca8ac806577363e05b",part:"content",class:s()},i("slot",{key:"bfec5cff35a7bf7bf1d9801ba89559501e6f301f"})),i("div",{key:"4d44fdba62c74fd5c893c5296f998754228cf961",part:"footer"},i("slot",{key:"fd0a58127fd2f0ba0955cef629e55700142a8f32",name:"footer"}))))}get host(){return r(this)}static get watchers(){return{open:["handleOpenChange"]}}};k.style=y;const z=".visible{visibility:visible}.hidden{display:none}.static{position:static}.flex{display:flex}.max-h-64{max-height:16rem}.w-full{width:100%}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.items-center{align-items:center}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.outline{outline-style:solid}";const C=z;const P=class{constructor(i){t(this,i);this.bcmDropdownChange=e(this,"bcmDropdownChange",1);this.isReady=false;this.dropdownItems=[];this.dropdownClass=a({base:"dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto"});this.handleSlotChange=()=>{this.dropdownItems=Array.from(this.host.querySelectorAll("bcm-dropdown-item"));if(this.dropdownItems.length===0){console.warn("No dropdown items found in dropdown component")}}}componentDidLoad(){const t=this.host.shadowRoot.querySelector("bcm-button");if(t){this.buttonRef=t;this.isReady=true}}handleDropdownItemChange(t){var e;const{element:i,selected:o}=t===null||t===void 0?void 0:t.detail;(e=this.dropdownItems)===null||e===void 0?void 0:e.forEach((t=>{if(t!=i){t.selected=false}}));this.bcmDropdownChange.emit({element:i,selected:o})}render(){return i(o,{key:"6aaff12c84d38c32df5bc8dccb83421afb315eef"},i("bcm-button",{key:"5612cef7303a6b839531e125c895a4e7b8d32282",kind:"outline"},i("span",{key:"951418845cb1ec71fe6dc5bbbc33c49934447640",part:"text"},this.text)),this.isReady&&i("bcm-linked",{key:"d594359d6a9b7c673307c6a92e6d69cc47be3e1a",targetElement:this.buttonRef},i("div",{key:"9badba5b1e99af6a5d58b02e849cb0923e49dfd8",part:"dropdown-container",class:this.dropdownClass()},i("slot",{key:"c8191f215600170475d514bb6b4056047e6442d2",onSlotchange:this.handleSlotChange}))))}get host(){return r(this)}};P.style=C;const j=".flex{display:flex}:host{display:inline-block;width:100%}::slotted([slot=left-content]){align-items:center;display:flex;flex-direction:row;gap:8px}::slotted([slot=right-content]){align-items:center;display:flex;flex-direction:row;gap:8px}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.w-full{width:100%}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.gap-2{gap:.5rem}.text-pretty{text-wrap:pretty}.bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]{background-color:var(--bcm-ui-color-background-base-active)}.bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]{background-color:var(--bcm-ui-color-background-palette-red-default)}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-active\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-active)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-base-hover\\)\\]:hover{background-color:var(--bcm-ui-color-background-base-hover)}.hover\\:bg-\\[var\\(--bcm-ui-color-background-palette-red-default\\)\\]:hover{background-color:var(--bcm-ui-color-background-palette-red-default)}";const I=j;const $=class{constructor(i){t(this,i);this.bcmDropDownItemChange=e(this,"bcmDropDownItemChange",1);this.selected=false;this.error=false;this.disabled=false;this.dropdownItemClass=a({base:"dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color",variants:{selected:{true:"bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]",false:"hover:bg-[var(--bcm-ui-color-background-base-hover)]"},error:{true:"bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]",false:""},disabled:{true:"",false:""}},defaultVariants:{selected:false,error:false,disabled:false}},{twMerge:false})}handleClick(){this.selected=true;this.bcmDropDownItemChange.emit({element:this.host,selected:this.selected})}render(){var t;return i("div",{key:"69beaac4c9225bc7803b4002f1543c18e76e36cc","aria-checked":this.selected,class:this.dropdownItemClass({selected:this.selected,error:this.error}),onClick:()=>this.handleClick()},i("slot",{key:"ca2712023285689a1774b5869d982e87d3add46a",name:"left-content"},this.icon&&i("bcm-icon",{key:"bef7483a47c823ed746c39ae37acc3a2360f0c59","icon-name":this.icon})),i("div",{key:"a9bdddf97d4a4e07e601599a4adb11354227dd0f",class:"flex flex-row text-pretty w-full"},i("slot",{key:"51c488350d2daabc32fc9693211a4e89d8cce16f"},this.text)),i("slot",{key:"9bf3f8b4affa41ea72f181a073aea8cd56f8a2df",name:"right-content"},(t=this.rightIcons)===null||t===void 0?void 0:t.map((t=>i("bcm-icon",{"icon-name":t})))))}get host(){return r(this)}};$.style=I;const S=(t,e)=>{var i;const o=(i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector(`slot[name="${e}"]`);if(!o)return false;const r=o.assignedNodes();return r.length>0};const Y='.visible{visibility:visible}.collapse{visibility:collapse}.relative{position:relative}.block{display:block}.table{display:table}.contents{display:contents}.hidden{display:none}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.underline{text-decoration-line:underline}.outline{outline-style:solid}/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid oklch(.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:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.mt-1{margin-top:.25rem}.flex{display:flex}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.w-6{width:1.5rem}.w-full{width:100%}.flex-1{flex:1 1 0%}.cursor-not-allowed{cursor:not-allowed}.appearance-none{appearance:none}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.text-ellipsis{text-overflow:ellipsis}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border-0{border-width:0}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.border-\\[--bcm-ui-color-border-error\\]{border-color:var(--bcm-ui-color-border-error)}.border-\\[--bcm-ui-color-border-info\\]{border-color:var(--bcm-ui-color-border-info)}.border-\\[--bcm-ui-color-border-success\\]{border-color:var(--bcm-ui-color-border-success)}.border-\\[--bcm-ui-color-border-warning\\]{border-color:var(--bcm-ui-color-border-warning)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-transparent{background-color:transparent}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.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-success\\]{color:var(--bcm-ui-color-text-success)}.text-\\[--bcm-ui-color-text-warning\\]{color:var(--bcm-ui-color-text-warning)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-label{color:var(--bcm-ui-color-text-label)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-0{outline-width:0}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.placeholder\\:font-normal::placeholder{font-weight:400}.placeholder\\:text-\\[--bcm-ui-color-text-placeholder\\]::placeholder{color:var(--bcm-ui-color-text-placeholder)}.hover\\:border-\\[--bcm-ui-color-border-error\\]:hover{border-color:var(--bcm-ui-color-border-error)}.hover\\:border-\\[--bcm-ui-color-border-info\\]:hover{border-color:var(--bcm-ui-color-border-info)}.hover\\:border-\\[--bcm-ui-color-border-primary\\]:hover{border-color:var(--bcm-ui-color-border-primary)}.hover\\:border-\\[--bcm-ui-color-border-success\\]:hover{border-color:var(--bcm-ui-color-border-success)}.hover\\:border-\\[--bcm-ui-color-border-warning\\]:hover{border-color:var(--bcm-ui-color-border-warning)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-error\\]:has(:focus){border-color:var(--bcm-ui-color-border-error)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-info\\]:has(:focus){border-color:var(--bcm-ui-color-border-info)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-primary\\]:has(:focus){border-color:var(--bcm-ui-color-border-primary)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-success\\]:has(:focus){border-color:var(--bcm-ui-color-border-success)}.has-\\[\\:focus\\]\\:border-\\[--bcm-ui-color-border-warning\\]:has(:focus){border-color:var(--bcm-ui-color-border-warning)}.\\[\\&\\:\\:-webkit-inner-spin-button\\]\\:appearance-none::-webkit-inner-spin-button{appearance:none}';const T=Y;const D=class{constructor(o){t(this,o);this.bcmInput=e(this,"bcmInput",1);this.bcmChange=e(this,"bcmChange",1);this.bcmFocus=e(this,"bcmFocus",1);this.bcmBlur=e(this,"bcmBlur",1);this.bcmKeyDown=e(this,"bcmKeyDown",1);this.bcmKeyUp=e(this,"bcmKeyUp",1);this.isFocused=false;this.isValid=true;this.internalStatus="default";this.isPasswordVisible=false;this.value="";this._id=n("input");this.size="medium";this.status="default";this.fullWidth=false;this.type="text";this.disabled=false;this.readonly=false;this.required=false;this.useNativeValidation=true;this.onInput=t=>{const e=t.target;this.value=e.value;this.bcmInput.emit(t);this.validateInput()};this.onChange=t=>{this.bcmChange.emit(t)};this.onFocus=t=>{this.isFocused=true;this.bcmFocus.emit(t)};this.onBlur=t=>{this.isFocused=false;this.bcmBlur.emit(t);this.validateInput()};this.onKeyDown=t=>{this.bcmKeyDown.emit(t)};this.onKeyUp=t=>{this.bcmKeyUp.emit(t)};this.styleClass=a({slots:{base:["bcm-input bcm-input__container","bg-[--bcm-ui-color-background-base-default]","text-[--bcm-ui-color-text-default]","border border-solid rounded","flex items-center justify-between","transition-colors duration-200","px-2"],inputClass:["input","w-full flex-1","border-0 outline-0 bg-transparent","appearance-none text-ellipsis","text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal","font-sans antialiased font-medium","px-1","[appearance:textfield][&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none"]},variants:{size:{small:{base:"",inputClass:"text-size-4 h-6"},medium:{base:"",inputClass:"text-size-5 h-8"},large:{base:"",inputClass:"text-size-6 h-10"}},status:{default:{base:["border-[--bcm-ui-color-border-default]","hover:border-[--bcm-ui-color-border-primary]","has-[:focus]:border-[--bcm-ui-color-border-primary]"]},error:{base:["border-[--bcm-ui-color-border-error]","hover:border-[--bcm-ui-color-border-error]","has-[:focus]:border-[--bcm-ui-color-border-error]"]},success:{base:["border-[--bcm-ui-color-border-success]","hover:border-[--bcm-ui-color-border-success]","has-[:focus]:border-[--bcm-ui-color-border-success]"]},warning:{base:["border-[--bcm-ui-color-border-warning]","hover:border-[--bcm-ui-color-border-warning]","has-[:focus]:border-[--bcm-ui-color-border-warning]"]},info:{base:["border-[--bcm-ui-color-border-info]","hover:border-[--bcm-ui-color-border-info]","has-[:focus]:border-[--bcm-ui-color-border-info]"]}},fullWidth:{true:"full-width w-full"},disabled:{true:"disabled cursor-not-allowed",false:""},focused:{true:{base:""}}},defaultVariants:{size:"medium",status:"default",fullWidth:false,disabled:false,focused:false}},{twMerge:false});this.togglePasswordVisibility=()=>{this.isPasswordVisible=!this.isPasswordVisible;this.inputRef.type=this.isPasswordVisible?"text":"password"};this.PasswordToggleButton=()=>{var t;if(this.type!=="password"||this.disabled||this.readonly||((t=this.value)===null||t===void 0?void 0:t.length)===0)return null;return i("button",{class:"appearance-none flex items-center w-6 h-full justify-center",onClick:this.togglePasswordVisibility,type:"button"},i("bcm-icon",{name:this.isPasswordVisible?"fa-eye-slash fa-regular":"fa-regular fa-eye",size:this.iconSize}))};this.iconSize={small:14,medium:16,large:18}[this.size]}handleValueChange(t){if(this.inputRef){this.inputRef.value=t}}watchStatus(t){this.internalStatus=t}watchErrorMessage(t){this.internalErrorMessage=t}async setFocus(){var t;(t=this.inputRef)===null||t===void 0?void 0:t.focus()}async setBlur(){var t;(t=this.inputRef)===null||t===void 0?void 0:t.blur()}async select(){var t;(t=this.inputRef)===null||t===void 0?void 0:t.select()}async setLocale(t,e){l(t,e);if(!this.isValid){this.validateInput()}}componentWillLoad(){l("en",d);this.internalStatus=this.status;this.internalErrorMessage=this.errorMessage}validateInput(){if(!this.inputRef)return;this.isValid=true;this.validationMessage="";const t=this.inputRef.value;if(this.required&&!t){this.isValid=false;this.validationMessage=c("required");this.internalStatus="error";this.internalErrorMessage=this.validationMessage;return}else if(this.minLength&&t.length<this.minLength){this.isValid=false;this.validationMessage=c("minlength",{min:this.minLength})}else if(this.maxLength&&t.length>this.maxLength){this.isValid=false;this.validationMessage=c("maxlength",{max:this.maxLength})}else if(this.pattern&&!new RegExp(this.pattern).test(t)){this.isValid=false;this.validationMessage=c("pattern")}else if(this.type==="email"&&t&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)){this.isValid=false;this.validationMessage=c("email")}else if(this.type==="number"&&t){const e=parseFloat(t);if(this.min!==undefined&&e<this.min){this.isValid=false;this.validationMessage=c("min",{min:this.min})}else if(this.max!==undefined&&e>this.max){this.isValid=false;this.validationMessage=c("max",{max:this.max})}}this.internalStatus=this.isValid?"default":"error";this.internalErrorMessage=this.validationMessage}hasSlotContent(t){return S(this.el,t)}getDefaultIconForType(){return}render(){const t=this._id+"-input"||this.name;const{base:e,inputClass:o}=this.styleClass({size:this.size,status:this.internalStatus,fullWidth:this.fullWidth,disabled:this.disabled,focused:this.isFocused});return i("div",{key:"2b470d6a8d48e3867345a1baaf038f464167bd8c",class:"bcm-ui-element"},this.label&&i("label",{key:"65aa7f333c4cc7deb68dec12ac25fd953d03e5a9",class:s("input-label font-medium",{"text-color-label":!this.disabled,"text-color-disabled":this.disabled},{"text-size-3":this.size==="small","text-size-4":this.size==="medium","text-size-5":this.size==="large"}),htmlFor:t},i("slot",{key:"5507aaf837e03b059b5ee37270406519e3460d84",name:"label"},this.label),this.required&&i("span",{key:"ae92e270cf66574dd511403df99ce6f0172f7cf0"},"*")),i("div",{key:"c562649dbb4085830f2229af20b450de50af18ab",class:e()},(this.hasSlotContent("prefix")||this.prefixIcon||this.getDefaultIconForType())&&i("div",{key:"8e53088d990111325fad2c78c99818761e729e80",class:"flex items-center gap-2 px-2"},(this.prefixIcon||this.getDefaultIconForType())&&i("bcm-icon",{key:"0dd292f047e02ce75051b8a271ffcedb35036631",class:"prefix-icon","icon-name":this.prefixIcon||this.getDefaultIconForType(),size:this.iconSize}),i("slot",{key:"6dd835e17b66f29681232748a9cc8fd04ef8365e",name:"prefix"})),i("input",{key:"965fa5a5d2188a8608ae997973c792708fd986bf",ref:t=>this.inputRef=t,id:t,class:o(),type:this.type,name:this.name,disabled:this.disabled,readonly:this.readonly,required:this.required,placeholder:this.placeholder,autocomplete:this.autocomplete,minlength:this.minLength,maxlength:this.maxLength,min:this.min,max:this.max,step:this.step,pattern:this.pattern,"aria-invalid":this.status==="error","aria-required":this.required,"aria-labelledby":this.labelledby,"aria-describedby":this.describedby,value:this.value,onInput:this.onInput,onChange:this.onChange,onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp}),(this.hasSlotContent("suffix")||this.suffixIcon)&&i("div",{key:"f0f78deaa350963ff31b07c2076a405bb4560fc5",class:"flex items-center gap-2 px-2"},i("slot",{key:"6b6afb6088fa96b9c1daa97641e70bd9d1a8f044",name:"suffix"}),this.suffixIcon&&i("bcm-icon",{key:"9f33e74c6629341ba5cc447af1b4ba9237997138",class:"suffix-icon","icon-name":this.suffixIcon,size:this.iconSize})),this.PasswordToggleButton()),(this.captionText||this.internalErrorMessage||this.validationMessage)&&i("div",{key:"416b4a6c586ebd6e722a68181ca4dc1125fc5e7d",class:s("input-caption-text font-regular mt-1",{"text-[--bcm-ui-color-text-caption]":!this.disabled&&this.internalStatus==="default","text-[--bcm-ui-color-text-error]":!this.disabled&&(this.internalStatus==="error"||!this.isValid),"text-[--bcm-ui-color-text-success]":!this.disabled&&this.internalStatus==="success","text-[--bcm-ui-color-text-warning]":!this.disabled&&this.internalStatus==="warning","text-[--bcm-ui-color-text-info]":!this.disabled&&this.internalStatus==="info","text-[--bcm-ui-color-text-disabled]":this.disabled},{"text-size-3":this.size==="small","text-size-4":this.size==="medium","text-size-5":this.size==="large"})},!this.isValid?this.validationMessage:this.internalStatus==="error"?this.internalErrorMessage:this.captionText))}get el(){return r(this)}static get watchers(){return{value:["handleValueChange"],status:["watchStatus"],errorMessage:["watchErrorMessage"]}}};D.style=T;const F='.absolute{position:absolute}.relative{position:relative}.block{display:block}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.border{border-width:1px}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}bcm-linked{display:block;position:relative}bcm-linked[append-to-body]{display:none}.floating-content{min-width:-moz-max-content;min-width:max-content;transition:opacity .2s ease,visibility .2s ease,transform .2s ease;will-change:transform,opacity}.floating-visible{animation:fadeInScale .2s ease-out}.floating-hidden{display:none!important;pointer-events:none}.floating-wrapper{position:relative;z-index:1}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.floating-arrow{z-index:-1}.floating-arrow,.floating-arrow:before{height:10px;position:absolute;width:10px}.floating-arrow:before{background:#fff;border:1px solid #e2e8f0;content:"";transform:rotate(45deg)}.arrow-top{bottom:-5px}.arrow-bottom,.arrow-top{left:50%;transform:translateX(-50%)}.arrow-bottom{top:-5px}.arrow-left{right:-5px}.arrow-left,.arrow-right{top:50%;transform:translateY(-50%)}.arrow-right{left:-5px}.arrow-top:before{border-bottom:0;border-right:0}.arrow-bottom:before{border-left:0;border-top:0}.arrow-left:before{border-right:0;border-top:0}.arrow-right:before{border-bottom:0;border-left:0}@media (max-width:768px){.floating-content{max-height:calc(100vh - 32px);max-width:calc(100vw - 32px)}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.hidden{display:none}.resize{resize:both}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.flex{display:flex}.max-h-64{max-height:16rem}.w-full{width:100%}.min-w-10{min-width:2.5rem}.max-w-64{max-width:16rem}.flex-col{flex-direction:column}.items-center{align-items:center}.overflow-y-auto{overflow-y:auto}.rounded-lg{border-radius:var(--bcm-ui-border-radius-lg,8px)}.bg-color-basic-panel{background-color:var(--bcm-ui-color-background-basic-panel)}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-3{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-3{--tw-shadow:var(--bcm-ui-box-shadow-3);--tw-shadow-colored:var(--bcm-ui-box-shadow-3)}.outline{outline-style:solid}';const O=F;const X=class{constructor(i){t(this,i);this.bcmShow=e(this,"bcmShow",7);this.bcmHide=e(this,"bcmHide",7);this.bcmShown=e(this,"bcmShown",7);this.bcmHidden=e(this,"bcmHidden",7);this.trigger="click";this.placement="bottom-start";this.showDelay=0;this.hideDelay=0;this.offset=8;this.arrow=false;this.disabled=false;this.zIndex=1e3;this.appendToBody=false;this.destroyOnHide=false;this.isVisible=false;this.isReady=false;this.handleMouseEnter=()=>{this.clearTimeouts();if(this.showDelay>0){this.showTimeout=setTimeout((()=>this.show()),this.showDelay)}else{this.show()}};this.handleMouseLeave=()=>{this.clearTimeouts();if(this.hideDelay>0){this.hideTimeout=setTimeout((()=>this.hide()),this.hideDelay)}else{this.hide()}};this.handleFloatingMouseEnter=()=>{this.clearTimeouts()};this.handleFloatingMouseLeave=()=>{this.clearTimeouts();if(this.hideDelay>0){this.hideTimeout=setTimeout((()=>this.hide()),this.hideDelay)}else{this.hide()}};this.handleClick=t=>{t.stopPropagation();this.toggle()};this.handleFocus=()=>{this.show()};this.handleBlur=()=>{this.hide()}}setupTarget(){this.disconnectTarget();this.connectTarget()}onVisibilityChange(t){if(t){this.updatePosition();this.bcmShown.emit()}else{this.bcmHidden.emit()}}async componentDidLoad(){await new Promise((t=>requestAnimationFrame(t)));this.floatingEl=this.host.querySelector(".floating-content");if(this.floatingEl){this.isReady=true;this.connectTarget();this.setupFloatingObserver();console.log("✅ bcm-linked initialized successfully")}else{console.error("❌ Could not find .floating-content element")}}disconnectedCallback(){var t,e;this.disconnectTarget();this.clearTimeouts();(t=this.cleanup)===null||t===void 0?void 0:t.call(this);(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect();if(this.appendToBody&&this.floatingEl&&this.originalParent){this.originalParent.appendChild(this.floatingEl)}}connectTarget(){if(!this.isReady)return;this.targetEl=this.targetElement||(this.targetId?document.getElementById(this.targetId):null)||this.host.previousElementSibling||this.host.parentElement;if(!this.targetEl){console.warn("bcm-linked: No target element found");return}this.setupEventListeners();if(this.targetEl&&this.floatingEl){this.cleanup=h(this.targetEl,this.floatingEl,(()=>{if(this.isVisible){this.updatePosition()}}))}this.resizeObserver=new ResizeObserver((()=>{if(this.isVisible){this.updatePosition()}}));this.resizeObserver.observe(this.floatingEl)}disconnectTarget(){var t,e;if(this.targetEl){this.removeEventListeners()}(t=this.cleanup)===null||t===void 0?void 0:t.call(this);(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect()}setupEventListeners(){var t,e;if(!this.targetEl||this.disabled)return;switch(this.trigger){case"hover":this.targetEl.addEventListener("mouseenter",this.handleMouseEnter);this.targetEl.addEventListener("mouseleave",this.handleMouseLeave);(t=this.floatingEl)===null||t===void 0?void 0:t.addEventListener("mouseenter",this.handleFloatingMouseEnter);(e=this.floatingEl)===null||e===void 0?void 0:e.addEventListener("mouseleave",this.handleFloatingMouseLeave);break;case"click":this.targetEl.addEventListener("click",this.handleClick);this.setupClickOutside();break;case"focus":this.targetEl.addEventListener("focus",this.handleFocus);this.targetEl.addEventListener("blur",this.handleBlur);break}}removeEventListeners(){var t,e;if(!this.targetEl)return;this.targetEl.removeEventListener("mouseenter",this.handleMouseEnter);this.targetEl.removeEventListener("mouseleave",this.handleMouseLeave);this.targetEl.removeEventListener("click",this.handleClick);this.targetEl.removeEventListener("focus",this.handleFocus);this.targetEl.removeEventListener("blur",this.handleBlur);(t=this.floatingEl)===null||t===void 0?void 0:t.removeEventListener("mouseenter",this.handleFloatingMouseEnter);(e=this.floatingEl)===null||e===void 0?void 0:e.removeEventListener("mouseleave",this.handleFloatingMouseLeave);this.removeClickOutside()}setupClickOutside(){this.clickOutsideHandler=t=>{var e,i;const o=t.target;if(!((e=this.floatingEl)===null||e===void 0?void 0:e.contains(o))&&!((i=this.targetEl)===null||i===void 0?void 0:i.contains(o))&&!this.host.contains(o)){this.hide()}};document.addEventListener("click",this.clickOutsideHandler,true)}removeClickOutside(){if(this.clickOutsideHandler){document.removeEventListener("click",this.clickOutsideHandler,true);this.clickOutsideHandler=undefined}}clearTimeouts(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=undefined}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=undefined}}async updatePosition(){if(!this.targetEl||!this.floatingEl||!this.isVisible)return;const t=[b(this.offset),u({fallbackPlacements:["top","bottom","left","right","top-start","top-end","bottom-start","bottom-end","left-start","left-end","right-start","right-end"]}),f({padding:8})];const{x:e,y:i,placement:o}=await m(this.targetEl,this.floatingEl,{placement:this.placement,middleware:t,strategy:"fixed"});Object.assign(this.floatingEl.style,{left:`${e}px`,top:`${i}px`,zIndex:this.zIndex.toString()});if(this.arrow){this.updateArrow(o)}}updateArrow(t){var e;const i=(e=this.floatingEl)===null||e===void 0?void 0:e.querySelector(".floating-arrow");if(!i)return;i.className="floating-arrow";const o=t.split("-")[0];i.classList.add(`arrow-${o}`)}async show(){if(this.disabled||this.isVisible)return;this.bcmShow.emit();if(this.appendToBody&&this.floatingEl){this.originalParent=this.floatingEl.parentNode;this.originalNextSibling=this.floatingEl.nextSibling;document.body.appendChild(this.floatingEl)}this.isVisible=true;await new Promise((t=>requestAnimationFrame(t)));await this.updatePosition()}async hide(){if(!this.isVisible)return;this.bcmHide.emit();this.isVisible=false;if(this.appendToBody&&this.floatingEl&&this.originalParent){if(this.originalNextSibling){this.originalParent.insertBefore(this.floatingEl,this.originalNextSibling)}else{this.originalParent.appendChild(this.floatingEl)}this.originalParent=undefined;this.originalNextSibling=undefined}if(this.destroyOnHide&&this.floatingEl&&this.floatingEl.parentNode){this.floatingEl.parentNode.removeChild(this.floatingEl)}}async toggle(){if(this.isVisible){await this.hide()}else{await this.show()}}async updatePositioning(){await this.updatePosition()}setupFloatingObserver(){if(!this.floatingEl)return;this.resizeObserver=new ResizeObserver((()=>{if(this.isVisible){this.updatePosition()}}));this.resizeObserver.observe(this.floatingEl)}render(){const t={"floating-content":true,"floating-visible":this.isVisible,"floating-hidden":!this.isVisible,"floating-with-arrow":this.arrow,"floating-destroy-on-hide":this.destroyOnHide};return i(o,{key:"f5835cc1b6044476e66402d23a3becf18d3f2049"},i("div",{key:"2c7f92bbe85bc938a767734ef4b27702247fb390",class:t,style:{position:"fixed",top:"0px",left:"0px",zIndex:this.zIndex.toString(),display:this.isVisible?"block":"none",visibility:this.isVisible?"visible":"hidden",opacity:this.isVisible?"1":"0",pointerEvents:this.isVisible?"auto":"none"}},this.arrow&&i("div",{key:"f6eedac02b29b3ca00a9a84eea940ac89089f30c",class:"floating-arrow"}),i("div",{key:"7cb19f085de1d77a41fd9897be90999e78a0a54d",class:"floating-wrapper"},i("slot",{key:"a4b4289642850e3c2f7f27771b3d28bc41c8248a"}))),i("div",{key:"61cd7af9a4a47c87c308e1e67f96efb987c97312",style:{display:"none"}},i("slot",{key:"7160df275f5c7c66733158f95266598d0d207a17",name:"fallback"})))}get host(){return r(this)}static get watchers(){return{targetId:["setupTarget"],targetElement:["setupTarget"],isVisible:["onVisibilityChange"]}}};X.style=O;const M=":host{display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.block{display:block}.h-fit{height:fit-content}.w-fit{width:fit-content}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-color-default{border-color:var(--bcm-ui-color-border-default)}.bg-color-default{background-color:var(--bcm-ui-color-background-default-default)}.px-1{padding-left:.25rem;padding-right:.25rem}.text-center{text-align:center}.text-size-2{font-size:var(--bcm-ui-font-size-2,10px);line-height:var(--bcm-ui-line-height-2,12px)}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.font-medium{font-weight:500}.capitalize{text-transform:capitalize}.text-color-default{color:var(--bcm-ui-color-text-default)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";const A=M;const E={ctrl:"⌘",alt:"⌥",shift:"⇧",del:"⌫",delete:"⌫",backspace:"⌦",enter:"⏎",return:"⏎"};const _=class{constructor(e){t(this,e);this.size="small";this.isMac=/Mac/.test(window.navigator.userAgent)}getHotkey(t){if(!t){return""}if(this.isMac&&(t.includes(" ")||t.includes("+"))){const e=t.split(/[\s+]+/);return e.map((t=>E[t]||t)).join("")}else{return t}}render(){const{size:t,hotkey:e}=this;return i("div",{key:"007588d1d20941ead644a3d1fd72410cb6793ff5",class:s("bcm-ui-element bcm-ui-content-display","block h-fit w-fit rounded border border-solid px-1","border-color-default bg-color-default text-color-default","text-center font-medium capitalize",{"text-size-2":t==="small","text-size-3":t==="medium","text-size-4":t==="large"})},this.getHotkey(e))}};_.style=A;const B={display:"h1",heading1:"h2",heading2:"h3",title1:"h4",title2:"h5",title3:"h6",body:"p",bodyAccent:"p",helper:"p",caption:"p",label:"label",placeholder:"p",link:"a",info:"p",infoAccent:"p"};const V=".static{position:static}.m-0{margin:0}.appearance-none{appearance:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-0{padding:0}.text-size-12{font-size:var(--bcm-ui-font-size-12,60px);line-height:var(--bcm-ui-line-height-12,72px)}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.text-size-7{font-size:var(--bcm-ui-font-size-7,20px);line-height:var(--bcm-ui-line-height-7,28px)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-color-caption{color:var(--bcm-ui-color-text-caption)}.text-color-default{color:var(--bcm-ui-color-text-default)}.text-color-disabled{color:var(--bcm-ui-color-text-disabled)}.text-color-header{color:var(--bcm-ui-color-text-header)}.text-color-helper{color:var(--bcm-ui-color-text-helper)}.text-color-label{color:var(--bcm-ui-color-text-label)}.text-color-placeholder{color:var(--bcm-ui-color-text-placeholder)}.text-color-primary{color:var(--bcm-ui-color-text-primary)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";const L=V;const W=class{constructor(e){t(this,e);this.variant="body";this.size="medium";this.overflow=false;this.variantClassMap={display:"font-semibold text-size-12 text-color-header",heading1:"font-semibold text-size-7 text-color-header",heading2:"font-semibold text-size-6 text-color-header",title1:{small:"font-semibold text-size-5 text-color-header",medium:"font-semibold text-size-6 text-color-header",large:"font-semibold text-size-7 text-color-header"},title2:{small:"font-semibold text-size-4 text-color-default",medium:"font-semibold text-size-5 text-color-default",large:"font-semibold text-size-6 text-color-default"},title3:{small:"font-semibold text-size-3 text-color-disabled",medium:"font-semibold text-size-4 text-color-disabled",large:"font-semibold text-size-5 text-color-disabled"},body:{small:"font-regular text-size-4 text-color-default",medium:"font-regular text-size-5 text-color-default",large:"font-regular text-size-6 text-color-default"},bodyAccent:{small:"font-medium text-size-4 text-color-default",medium:"font-medium text-size-5 text-color-default",large:"font-medium text-size-6 text-color-default"},helper:{small:"font-regular text-size-4 text-color-helper",medium:"font-regular text-size-5 text-color-helper",large:"font-regular text-size-6 text-color-helper"},caption:{small:"font-regular text-size-3 text-color-caption",medium:"font-regular text-size-4 text-color-caption",large:"font-regular text-size-5 text-color-caption"},link:{small:"font-medium text-size-4 underline text-color-primary",medium:"font-medium text-size-5 underline text-color-primary",large:"font-medium text-size-6 underline text-color-primary"},label:{small:"font-medium text-size-3 text-color-label",medium:"font-medium text-size-4 text-color-label",large:"font-medium text-size-5 text-color-label"},placeholder:{small:"font-regular text-size-4 text-color-placeholder",medium:"font-regular text-size-5 text-color-placeholder",large:"font-regular text-size-6 text-color-placeholder"},info:{small:"font-regular text-size-3 text-color-default",medium:"font-regular text-size-4 text-color-default",large:"font-regular text-size-5 text-color-default"},infoAccent:{small:"font-medium text-size-3 text-color-header",medium:"font-medium text-size-4 text-color-header",large:"font-medium text-size-5 text-color-header"}};this.getTextClass=(t,e)=>{const i=this.variantClassMap[t];if(typeof i==="string"){return i}return i[e]};this.getOverflowClass=t=>t?"truncate":""}render(){var t;const e=B[this.variant];const o=this.getTextClass(this.variant,this.size);const r=this.getOverflowClass((t=this.overflow)!==null&&t!==void 0?t:false);return i(e,{key:"152d737752eea962ac3c5086011da69578ef0920",class:s("bcm-text appearance-none m-0 p-0",o,r),part:"text"},i("slot",{key:"e8c8c89a5925936a2e22a75265b7f42317eab983"},this.text))}};W.style=L;export{w as bcm_button,k as bcm_drawer,P as bcm_dropdown,$ as bcm_dropdown_item,D as bcm_input,X as bcm_linked,_ as bcm_shortcut,W as bcm_text};
|
|
2
|
-
//# sourceMappingURL=p-fdcb9dbd.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 '@utils/tv';\n\n@Component({\n tag: 'bcm-button',\n styleUrl: 'button.css',\n shadow: true,\n})\nexport class BcmButton {\n /** Defines the main visual style of the button */\n @Prop()\n kind: ButtonKind = 'primary';\n\n /** Controls the button size */\n @Prop()\n size: ButtonSize = 'medium';\n\n /** Defines the button's status/state color */\n @Prop()\n status: ButtonStatus = 'default';\n\n /** Predefined button variants */\n @Prop()\n variant?: ButtonVariant;\n\n /** Button position in button group (first, middle, last) */\n @Prop({ reflect: true })\n position?: ButtonPosition;\n\n /** Icon class name */\n @Prop()\n icon?: string;\n\n /** Icon placement (prefix/suffix) */\n @Prop()\n iconPosition: IconPosition = 'prefix';\n\n /** Icon-only button mode */\n @Prop()\n iconOnly = false;\n\n /** Full width button */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML button type */\n @Prop()\n type: ButtonType = 'button';\n\n /** Loading state */\n @Prop()\n loading = false;\n\n /** Disabled state */\n @Prop()\n disabled = false;\n\n /** Button text content */\n @Prop()\n text?: string;\n\n /** Active state */\n @Prop()\n active = false;\n\n /** Form association */\n @Prop()\n form: string;\n\n @Prop()\n value: string;\n\n @Prop()\n name: string;\n\n /** Screen reader label */\n @Prop()\n label: string;\n\n /** Expanded state for expandable content */\n @Prop()\n expanded?: string;\n\n /** ID of controlled element */\n @Prop()\n controls: string;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmClick: EventEmitter<MouseEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.disabled && !this.loading) {\n this.bcmClick.emit(event);\n }\n };\n\n private handleFocus = (event: FocusEvent) => {\n this.bcmFocus.emit(event);\n };\n\n private handleBlur = (event: FocusEvent) => {\n this.bcmBlur.emit(event);\n };\n\n private get buttonText(): string {\n return this.text || (this.variant ? variantOptions[this.variant].text : '');\n }\n\n private get buttonIcon(): { icon?: string; position: IconPosition } {\n if (this.variant && variantOptions[this.variant].icon) {\n return {\n icon: variantOptions[this.variant].icon,\n position: variantOptions[this.variant].iconPosition || 'prefix',\n };\n }\n\n return {\n icon: this.icon,\n position: this.iconPosition,\n };\n }\n\n private get buttonStatus(): ButtonStatus {\n return this.variant ? variantOptions[this.variant].status : this.status;\n }\n\n private get buttonStyles() {\n const status = this.buttonStatus === 'default' ? 'primary' : this.buttonStatus;\n\n // These are the internal default styles based on component props (kind, status)\n const kindStyleMap = {\n primary: {\n '--bcm-button-bg': `var(--bcm-ui-color-background-${status}-default)`,\n '--bcm-button-bg-hover': `var(--bcm-ui-color-background-${status}-hover)`,\n '--bcm-button-bg-active': `var(--bcm-ui-color-background-${status}-active)`,\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': 'var(--bcm-ui-color-text-base)',\n },\n outline: {\n '--bcm-button-bg': 'var(--bcm-ui-color-background-default-default)',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': `var(--bcm-ui-color-border-${this.buttonStatus})`,\n '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,\n },\n ghost: {\n '--bcm-button-bg': 'transparent',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': `var(--bcm-ui-color-text-${this.buttonStatus})`,\n },\n text: {\n '--bcm-button-bg': 'transparent',\n '--bcm-button-bg-hover': 'var(--bcm-ui-color-background-default-hover)',\n '--bcm-button-bg-active': 'var(--bcm-ui-color-background-default-active)',\n '--bcm-button-border': 'transparent',\n '--bcm-button-text': `var(--bcm-ui-color-text-${status})`,\n },\n };\n const internalDefaultStyles = kindStyleMap[this.kind];\n\n // These are the \"final\" CSS custom properties used by the component's styling.\n // They use the \"--bcm-button-custom-...\" token if provided by the user,\n // otherwise, they fall back to the internal \"--bcm-button-...\" style defined above.\n const finalEffectiveStyles = {\n '--bcm-final-text-color': `var(--bcm-button-custom-text-color, ${internalDefaultStyles['--bcm-button-text']})`,\n '--bcm-final-border-color': `var(--bcm-button-custom-border-color, ${internalDefaultStyles['--bcm-button-border']})`,\n '--bcm-final-bg-color': `var(--bcm-button-custom-bg-color, ${internalDefaultStyles['--bcm-button-bg']})`,\n '--bcm-final-hover-bg-color': `var(--bcm-button-custom-hover-bg-color, ${internalDefaultStyles['--bcm-button-bg-hover']})`,\n '--bcm-final-active-bg-color': `var(--bcm-button-custom-active-bg-color, ${internalDefaultStyles['--bcm-button-bg-active']})`,\n };\n\n // return kindStyleMap[this.kind];\n\n return {\n ...internalDefaultStyles, // Provides the fallback values like --bcm-button-text\n ...finalEffectiveStyles, // Defines the --bcm-final-xxx tokens that handle the override logic\n };\n }\n\n private buttonClass = tv(\n {\n base: 'bcm-button appearance-none inline-flex items-center justify-center border border-solid rounded outline-0',\n variants: {\n size: {\n small: 'text-size-4 py-px px-2 min-h-6',\n medium: 'text-size-5 py-0.5 px-3 min-h-8',\n large: 'text-size-6 py-1 px-3 min-h-10',\n },\n kind: {\n primary: 'kind-primary',\n ghost: 'kind-ghost',\n text: 'kind-text',\n outline: 'kind-outline',\n },\n fullWidth: {\n true: 'full-width w-full',\n },\n disabled: {\n true: 'disabled cursor-not-allowed bg-[--bcm-ui-color-background-disabled-default] text-color-disabled border-color-disabled',\n false: [\n 'cursor-pointer',\n 'bg-[--bcm-final-bg-color] text-[--bcm-final-text-color] border-[--bcm-final-border-color]',\n 'hover:bg-[--bcm-final-hover-bg-color]',\n 'active:bg-[--bcm-final-active-bg-color]',\n 'focus-visible:ring',\n ],\n },\n loading: {\n true: '',\n },\n position: {\n first: 'position-first',\n middle: 'position-middle',\n last: 'position-last',\n },\n },\n defaultVariants: {\n size: 'medium',\n kind: 'primary',\n fullWidth: false,\n disabled: false,\n loading: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const { icon, position } = this.buttonIcon;\n\n return (\n <Host>\n <button\n type={this.type}\n disabled={this.disabled || this.loading}\n aria-label={this.label}\n aria-expanded={this.expanded}\n aria-controls={this.controls}\n aria-disabled={this.disabled}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n style={this.buttonStyles}\n class={this.buttonClass({\n size: this.size,\n kind: this.kind,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n loading: this.loading,\n position: this.position,\n })}\n >\n {this.loading && <slot name=\"loading\"></slot>}\n <span>\n <slot name=\"prefix\">{position === 'prefix' && icon && <i class={' leading-none ' + icon}></i>}</slot>\n </span>\n <slot>{this.buttonText}</slot>\n <span>\n <slot name=\"suffix\">{position === 'suffix' && icon && <i class={' leading-none ' + icon}></i>}</slot>\n </span>\n </button>\n </Host>\n );\n }\n}\n",":host {\n display: contents;\n}\n","import { Component, Prop, h, Element, Event, EventEmitter, Method, Watch, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\nimport { DrawerPosition, DrawerSize } from './types';\n\n@Component({\n tag: 'bcm-drawer',\n styleUrl: 'drawer.css',\n shadow: true,\n})\nexport class BcmDrawer {\n @Element() host: HTMLElement;\n\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n @Prop() size: DrawerSize = 'medium';\n @Prop() position: DrawerPosition = 'right';\n @Prop({ attribute: 'full-width' }) fullWidth: boolean = false;\n @Prop() headerText?: string;\n @Prop({ attribute: 'no-header' }) noHeader: boolean = false;\n\n @Event() bcmOpen: EventEmitter<void>;\n @Event() bcmClose: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeOpen: EventEmitter<void>;\n @Event({ cancelable: true }) bcmBeforeClose: EventEmitter<void>;\n\n private drawerClass = tv({\n slots: {\n backdrop: 'fixed inset-0 bg-color-transparent z-40 transition-opacity duration-300',\n wrapper: 'bcm-ui-element fixed bg-color-base text-color-default z-50 transform transition-transform duration-300 ease-in-out flex flex-col',\n header: 'flex justify-between items-center bg-color-default text-color-default',\n title: 'font-semibold m-0 text-size-6',\n closeButton: 'text-size-5 font-medium text-color-default bg-transparent border-none p-0 h-6 w-6 hover:bg-color-default-hover cursor-pointer active:bg-color-default-active',\n content: 'overflow-y-auto flex-grow',\n },\n variants: {\n open: {\n true: {\n backdrop: 'opacity-100 visible',\n },\n false: {\n backdrop: 'opacity-0 invisible',\n },\n },\n position: {\n left: {\n wrapper: 'top-0 left-0 bottom-0',\n },\n right: {\n wrapper: 'top-0 right-0 bottom-0',\n },\n top: {\n wrapper: 'top-0 left-0 right-0',\n },\n bottom: {\n wrapper: 'bottom-0 left-0 right-0',\n },\n },\n size: {\n small: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n medium: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n large: {\n header: 'py-3 px-4',\n content: 'p-4',\n },\n },\n noHeader: {\n true: {\n header: 'hidden',\n },\n },\n },\n compoundVariants: [\n {\n open: true,\n position: ['left', 'right'],\n class: {\n wrapper: 'translate-x-0',\n },\n },\n {\n open: true,\n position: ['top', 'bottom'],\n class: {\n wrapper: 'translate-y-0',\n },\n },\n {\n open: false,\n position: 'left',\n class: {\n wrapper: '-translate-x-full',\n },\n },\n {\n open: false,\n position: 'right',\n class: {\n wrapper: 'translate-x-full',\n },\n },\n {\n open: false,\n position: 'top',\n class: {\n wrapper: '-translate-y-full',\n },\n },\n {\n open: false,\n position: 'bottom',\n class: {\n wrapper: 'translate-y-full',\n },\n },\n ],\n });\n\n @Watch('open')\n handleOpenChange(isOpen: boolean) {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n this.bcmOpen.emit();\n } else {\n document.body.style.overflow = '';\n this.bcmClose.emit();\n }\n }\n\n @Listen('keydown', { target: 'window' })\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.open) {\n this.hide();\n }\n }\n\n @Method()\n async show(): Promise<void> {\n const event = this.bcmBeforeOpen.emit();\n if (!event.defaultPrevented) {\n this.open = true;\n }\n }\n\n @Method()\n async hide(): Promise<void> {\n const event = this.bcmBeforeClose.emit();\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n disconnectedCallback() {\n document.body.style.overflow = '';\n }\n\n private getWrapperStyle() {\n const style: { [key: string]: string } = {};\n\n if (this.fullWidth) {\n if (this.position === 'left' || this.position === 'right') {\n style.width = '100vw';\n } else {\n style.height = '100vh';\n }\n return style;\n }\n\n if (this.position === 'left' || this.position === 'right') {\n switch (this.size) {\n case 'small':\n style.width = '320px';\n break;\n case 'medium':\n style.width = '480px';\n break;\n case 'large':\n style.width = '1064px';\n break;\n }\n } else {\n switch (this.size) {\n case 'small':\n style.height = '40vh';\n break;\n case 'medium':\n style.height = '60vh';\n break;\n case 'large':\n style.height = '90vh';\n break;\n }\n }\n\n return style;\n }\n\n render() {\n const { backdrop, wrapper, header, title, closeButton, content } = this.drawerClass({\n open: this.open,\n position: this.position,\n size: this.size,\n noHeader: this.noHeader,\n });\n\n return (\n <div part=\"base\">\n <div part=\"backdrop\" class={backdrop()} onClick={() => this.hide()} />\n <div\n part=\"wrapper\"\n class={wrapper()}\n style={this.getWrapperStyle()}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden={!this.open ? 'true' : 'false'}\n aria-label={this.headerText}\n >\n <div part=\"header\" class={header()}>\n <h2 part=\"title\" class={title()}>\n <slot name=\"header\">{this.headerText}</slot>\n </h2>\n <button part=\"close-button\" class={closeButton()} onClick={() => this.hide()} aria-label=\"Close\">\n <bcm-icon name=\"fa-solid fa-xmark\"></bcm-icon>\n </button>\n </div>\n <div part=\"content\" class={content()}>\n <slot />\n </div>\n <div part=\"footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n );\n }\n}\n","/* :host {\n --dropdown-box-min-weight: 32px;\n --dropdown-box-max-width: 384px;\n --dropdown-box-max-height: 384px;\n --dropdown-box-background-color: var(--bcm-ui-color-background-basic-panel);\n} */\n/* \n.scroll {\n height: 140px;\n width: 140px;\n overflow-y: auto;\n}\n\n.scroll:active::-webkit-scrollbar-thumb,\n.scroll:focus::-webkit-scrollbar-thumb,\n.scroll:hover::-webkit-scrollbar-thumb {\n visibility: visible;\n}\n.scroll::-webkit-scrollbar-thumb {\n background-color: darkgrey;\n visibility: hidden;\n}\n\n.scroll::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n} */\n","import { Component, ComponentInterface, h, Prop, State, Element, Host, Event, EventEmitter, Listen } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown',\n styleUrl: 'dropdown.css',\n shadow: true,\n})\nexport class Dropdown implements ComponentInterface {\n @Element() host: HTMLElement;\n\n @Prop() text?: string;\n\n @State() isReady: boolean = false;\n\n @State() dropdownItems: HTMLBcmDropdownItemElement[] = [];\n\n protected buttonRef?: HTMLBcmButtonElement;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropdownChange',\n })\n bcmDropdownChange: EventEmitter<any>;\n\n componentDidLoad() {\n const button = this.host.shadowRoot.querySelector('bcm-button') as HTMLBcmButtonElement;\n if (button) {\n this.buttonRef = button;\n this.isReady = true;\n }\n }\n\n @Listen('bcmDropDownItemChange', { capture: true })\n handleDropdownItemChange(event: CustomEvent) {\n const { element, selected } = event?.detail;\n\n this.dropdownItems?.forEach(item => {\n if (item != element) {\n item.selected = false;\n }\n });\n\n this.bcmDropdownChange.emit({\n element: element,\n selected,\n });\n }\n\n private dropdownClass = tv({\n base: 'dropdown flex flex-col items-center min-w-10 shadow-3 max-w-64 max-h-64 w-full bg-color-basic-panel rounded-lg py-1.5 overflow-y-auto',\n });\n\n private handleSlotChange = () => {\n this.dropdownItems = Array.from(this.host.querySelectorAll('bcm-dropdown-item'));\n\n if (this.dropdownItems.length === 0) {\n console.warn('No dropdown items found in dropdown component');\n }\n };\n\n render() {\n return (\n <Host>\n <bcm-button kind=\"outline\">\n <span part=\"text\">{this.text}</span>\n </bcm-button>\n {this.isReady && (\n <bcm-linked targetElement={this.buttonRef}>\n <div part=\"dropdown-container\" class={this.dropdownClass()}>\n <slot onSlotchange={this.handleSlotChange}></slot>\n </div>\n </bcm-linked>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: inline-block;\n width: 100%;\n}\n\n::slotted([slot='left-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n\n::slotted([slot='right-content']) {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n}\n","import { Component, ComponentInterface, h, Prop, Event, EventEmitter, Element } from '@stencil/core';\nimport { tv } from '@utils/tv';\n\n@Component({\n tag: 'bcm-dropdown-item',\n styleUrl: 'dropdown-item.css',\n shadow: true,\n})\nexport class DropdownItem implements ComponentInterface {\n @Element() host: HTMLElement;\n @Prop() text: string;\n @Prop() icon: string;\n @Prop() rightIcons: string[];\n @Prop({ reflect: true }) selected: boolean = false;\n @Prop({ reflect: true }) error: boolean = false;\n @Prop({ reflect: true }) disabled: boolean = false;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n eventName: 'bcmDropDownItemChange',\n })\n bcmDropDownItemChange: EventEmitter<any>;\n\n private handleClick() {\n this.selected = true;\n this.bcmDropDownItemChange.emit({\n element: this.host,\n selected: this.selected,\n });\n }\n\n private dropdownItemClass = tv(\n {\n base: 'dropdown-item bcm-ui-element bcm-ui-content-display flex flex-row gap-2 py-2 px-4 cursor-pointer text-color',\n variants: {\n selected: {\n true: 'bg-[var(--bcm-ui-color-background-base-active)] hover:bg-[var(--bcm-ui-color-background-base-active)]',\n false: 'hover:bg-[var(--bcm-ui-color-background-base-hover)]',\n },\n error: {\n true: 'bg-[var(--bcm-ui-color-background-palette-red-default)] hover:bg-[var(--bcm-ui-color-background-palette-red-default)]',\n false: '',\n },\n disabled: {\n true: '', // should be discuss with ux team\n false: '',\n },\n },\n defaultVariants: {\n selected: false,\n error: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <div\n aria-checked={this.selected}\n class={this.dropdownItemClass({\n selected: this.selected,\n error: this.error,\n })}\n onClick={() => this.handleClick()}\n >\n <slot name=\"left-content\">{this.icon && <bcm-icon icon-name={this.icon}></bcm-icon>}</slot>\n <div class=\"flex flex-row text-pretty w-full\">\n <slot>{this.text}</slot>\n </div>\n <slot name=\"right-content\">\n {this.rightIcons?.map(icon => (\n <bcm-icon icon-name={icon}></bcm-icon>\n ))}\n </slot>\n </div>\n );\n }\n}\n","/**\n * Checks if a named slot has any content\n * @param element - The host element (component instance)\n * @param slotName - Name of the slot to check\n * @returns boolean indicating if the slot has any assigned nodes\n */\nexport const checkSlotContent = (element: HTMLElement, slotName: string): boolean => {\n const slot = element.shadowRoot?.querySelector(`slot[name=\"${slotName}\"]`) as HTMLSlotElement;\n if (!slot) return false;\n\n const assignedNodes = slot.assignedNodes();\n return assignedNodes.length > 0;\n};\n",":host {\n display: inline-block;\n}\n","import { Component, Prop, h, Event, EventEmitter, Method, State, Watch, Element } from '@stencil/core';\nimport { InputSize, InputStatus, InputType } from './types';\nimport { tv } from '@utils/tv';\nimport classNames from 'classnames';\nimport { generateId } from '../../utils/id/generate-id';\nimport { checkSlotContent } from '../../utils/slot/check-slot-content';\nimport { getValidationMessage, setValidationMessages, defaultValidationMessages } from '../../utils/validation-messages';\n\n@Component({\n tag: 'bcm-input',\n styleUrl: 'input.scss',\n shadow: true,\n})\nexport class BcmInput {\n @Element() el: HTMLElement;\n private inputRef: HTMLInputElement;\n\n @State() isFocused = false;\n @State() validationMessage: string;\n @State() isValid = true;\n @State() internalStatus: InputStatus = 'default';\n @State() internalErrorMessage: string;\n @State() isPasswordVisible = false;\n\n /** Input value */\n @Prop({ mutable: true, reflect: true })\n value: string = '';\n\n /** Input placeholder text */\n @Prop()\n placeholder?: string;\n\n /** Input name */\n @Prop()\n name?: string;\n\n /** Input id */\n @Prop({ attribute: 'id', reflect: true })\n _id?: string = generateId('input');\n\n /** Controls the input size */\n @Prop()\n size: InputSize = 'medium';\n\n /** Defines the input's status/state */\n @Prop()\n status: InputStatus = 'default';\n\n /** Full width input */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** HTML input type */\n @Prop()\n type: InputType = 'text';\n\n /** Whether the input is disabled */\n @Prop()\n disabled = false;\n\n /** Whether the input is readonly */\n @Prop()\n readonly = false;\n\n /** Whether the input is required */\n @Prop()\n required = false;\n\n /** Input autocomplete attribute */\n @Prop()\n autocomplete?: string;\n\n /** Min length for text input */\n @Prop()\n minLength?: number;\n\n /** Max length for text input */\n @Prop()\n maxLength?: number;\n\n /** Min value for number input */\n @Prop()\n min?: number;\n\n /** Max value for number input */\n @Prop()\n max?: number;\n\n /** Step value for number input */\n @Prop()\n step?: number;\n\n /** Pattern for validation */\n @Prop()\n pattern?: string;\n\n /** Input label for accessibility */\n @Prop()\n label?: string;\n\n /** Error message to display */\n @Prop()\n errorMessage?: string;\n\n /** Caption text to display below input */\n @Prop()\n captionText?: string;\n\n /** ID of associated label element */\n @Prop()\n labelledby?: string;\n\n /** ID of associated caption/error text element */\n @Prop()\n describedby?: string;\n\n /** Prefix icon class name */\n @Prop()\n prefixIcon?: string;\n\n /** Suffix icon class name */\n @Prop()\n suffixIcon?: string;\n\n /** Whether to use native form validation\n * If false, component will handle validation internally\n */\n @Prop()\n useNativeValidation = true;\n\n /** Custom validation function */\n @Prop()\n validator?: (value: string) => string | undefined;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmInput: EventEmitter<InputEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<Event>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur: EventEmitter<FocusEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyDown: EventEmitter<KeyboardEvent>;\n\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmKeyUp: EventEmitter<KeyboardEvent>;\n\n @Watch('value')\n handleValueChange(newValue: string) {\n if (this.inputRef) {\n this.inputRef.value = newValue;\n }\n }\n\n @Watch('status')\n watchStatus(newValue: InputStatus) {\n this.internalStatus = newValue;\n }\n\n @Watch('errorMessage')\n watchErrorMessage(newValue: string) {\n this.internalErrorMessage = newValue;\n }\n\n @Method()\n async setFocus() {\n this.inputRef?.focus();\n }\n\n @Method()\n async setBlur() {\n this.inputRef?.blur();\n }\n\n @Method()\n async select() {\n this.inputRef?.select();\n }\n\n /** Sets locale and messages for all inputs */\n @Method()\n async setLocale(locale: string, messages: Record<string, string>) {\n // Set messages and update validation immediately\n setValidationMessages(locale, messages);\n\n // Mevcut validasyon mesajını güncelle\n if (!this.isValid) {\n this.validateInput();\n }\n }\n\n componentWillLoad() {\n // I18n için default mesajları set et\n setValidationMessages('en', defaultValidationMessages);\n this.internalStatus = this.status;\n this.internalErrorMessage = this.errorMessage;\n }\n\n private validateInput(): void {\n if (!this.inputRef) return;\n\n // Reset validation state\n this.isValid = true;\n this.validationMessage = '';\n\n const value = this.inputRef.value;\n\n // Required check\n if (this.required && !value) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('required');\n this.internalStatus = 'error';\n this.internalErrorMessage = this.validationMessage;\n return;\n }\n\n // Minimum length check\n else if (this.minLength && value.length < this.minLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('minlength', { min: this.minLength });\n }\n // Maximum length check\n else if (this.maxLength && value.length > this.maxLength) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('maxlength', { max: this.maxLength });\n }\n // Pattern check\n else if (this.pattern && !new RegExp(this.pattern).test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('pattern');\n }\n // Email check\n else if (this.type === 'email' && value && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(value)) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('email');\n }\n // Number range check\n else if (this.type === 'number' && value) {\n const numValue = parseFloat(value);\n if (this.min !== undefined && numValue < this.min) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('min', { min: this.min });\n } else if (this.max !== undefined && numValue > this.max) {\n this.isValid = false;\n this.validationMessage = getValidationMessage('max', { max: this.max });\n }\n }\n\n // Update component state\n this.internalStatus = this.isValid ? 'default' : 'error';\n this.internalErrorMessage = this.validationMessage;\n }\n\n private onInput = (event: InputEvent) => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n this.bcmInput.emit(event);\n this.validateInput();\n };\n\n private onChange = (event: Event) => {\n this.bcmChange.emit(event);\n };\n\n private onFocus = (event: FocusEvent) => {\n this.isFocused = true;\n this.bcmFocus.emit(event);\n };\n\n private onBlur = (event: FocusEvent) => {\n this.isFocused = false;\n this.bcmBlur.emit(event);\n this.validateInput();\n };\n\n private onKeyDown = (event: KeyboardEvent) => {\n this.bcmKeyDown.emit(event);\n };\n\n private onKeyUp = (event: KeyboardEvent) => {\n this.bcmKeyUp.emit(event);\n };\n\n private hasSlotContent(slotName: string): boolean {\n return checkSlotContent(this.el, slotName);\n }\n\n private styleClass = tv(\n {\n slots: {\n base: [\n 'bcm-input bcm-input__container',\n 'bg-[--bcm-ui-color-background-base-default]',\n 'text-[--bcm-ui-color-text-default]',\n 'border border-solid rounded',\n 'flex items-center justify-between',\n 'transition-colors duration-200',\n 'px-2',\n ],\n inputClass: [\n 'input',\n 'w-full flex-1',\n 'border-0 outline-0 bg-transparent',\n 'appearance-none text-ellipsis',\n 'text-[--bcm-ui-color-text-default] placeholder:text-[--bcm-ui-color-text-placeholder] placeholder:font-normal',\n 'font-sans antialiased font-medium',\n 'px-1',\n '[appearance:textfield][&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n ],\n },\n variants: {\n size: {\n small: {\n base: '',\n inputClass: 'text-size-4 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":[]}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
function addHeadScript(obj) {
|
|
4
|
-
const head = document.head;
|
|
5
|
-
const script = document.createElement('script');
|
|
6
|
-
Object.keys(obj).forEach(key => {
|
|
7
|
-
script[key] = obj[key];
|
|
8
|
-
});
|
|
9
|
-
head.appendChild(script);
|
|
10
|
-
}
|
|
11
|
-
addHeadScript({ src: 'https://kit.fontawesome.com/5e86bea963.js', crossOrigin: 'anonymous' });
|
|
12
|
-
const FA_GLOBAL_CSS = 'https://designsystem.bromcomcloud.com/fontawesome/6/css/all.min.css';
|
|
13
|
-
customElements.define('bcm-icon', class extends HTMLElement {
|
|
14
|
-
constructor() {
|
|
15
|
-
super();
|
|
16
|
-
const shadow = this.attachShadow({ mode: 'open' });
|
|
17
|
-
shadow.innerHTML = `
|
|
18
|
-
<link rel="stylesheet" href="${FA_GLOBAL_CSS}"/>
|
|
19
|
-
<i></i>
|
|
20
|
-
`;
|
|
21
|
-
}
|
|
22
|
-
static get observedAttributes() {
|
|
23
|
-
return ['name', 'icon-name'];
|
|
24
|
-
}
|
|
25
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
26
|
-
if ((name === 'name' || name === 'icon-name') && oldValue !== newValue) {
|
|
27
|
-
this.icon = newValue;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
get icon() {
|
|
31
|
-
return this.getAttribute('name') || this.getAttribute('icon-name');
|
|
32
|
-
}
|
|
33
|
-
set icon(icon) {
|
|
34
|
-
this.shadowRoot.querySelector('i').className = `${icon}`;
|
|
35
|
-
}
|
|
36
|
-
connectedCallback() {
|
|
37
|
-
this.style.display = 'inline-block';
|
|
38
|
-
this.icon = this.icon;
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
const globalFn = () => { };
|
|
42
|
-
|
|
43
|
-
const globalScripts = globalFn;
|
|
44
|
-
|
|
45
|
-
exports.globalScripts = globalScripts;
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=app-globals-e0eef2e9.js.map
|