bromcom-ui-next 0.1.29 → 0.1.31
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 -1
- package/dist/bromcom-ui/bcm-accordion.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-alert.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-avatar.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-badge.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-basic-badge.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-button-group.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-button.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-checkbox.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-chip.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-drawer.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-dropdown-item.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-file-upload.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-input.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-modal.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-radio-group.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-radio.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-segment.bcm-segmented-picker.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-shortcut.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-tab.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-text.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-textarea.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +1 -1
- 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/global/global.js +33 -30
- package/dist/bromcom-ui/p-010219cf.entry.js +2 -0
- package/dist/bromcom-ui/p-010219cf.entry.js.map +1 -0
- package/dist/bromcom-ui/p-01a4e00b.entry.js +2 -0
- package/dist/bromcom-ui/p-01a4e00b.entry.js.map +1 -0
- package/dist/bromcom-ui/p-14c63d61.entry.js +2 -0
- package/dist/bromcom-ui/p-14c63d61.entry.js.map +1 -0
- package/dist/bromcom-ui/p-20a94dec.entry.js +2 -0
- package/dist/bromcom-ui/p-20a94dec.entry.js.map +1 -0
- package/dist/bromcom-ui/p-398620c2.entry.js +2 -0
- package/dist/bromcom-ui/p-398620c2.entry.js.map +1 -0
- package/dist/bromcom-ui/p-3b898f90.entry.js +2 -0
- package/dist/bromcom-ui/p-3b898f90.entry.js.map +1 -0
- package/dist/bromcom-ui/p-43c85c84.entry.js +2 -0
- package/dist/bromcom-ui/p-43c85c84.entry.js.map +1 -0
- package/dist/bromcom-ui/p-4e6661a5.entry.js +2 -0
- package/dist/bromcom-ui/p-4e6661a5.entry.js.map +1 -0
- package/dist/bromcom-ui/p-52bb0cdc.entry.js +2 -0
- package/dist/bromcom-ui/p-52bb0cdc.entry.js.map +1 -0
- package/dist/bromcom-ui/p-61c1c1c8.entry.js +2 -0
- package/dist/bromcom-ui/p-61c1c1c8.entry.js.map +1 -0
- package/dist/bromcom-ui/p-82e4c5f2.entry.js +2 -0
- package/dist/bromcom-ui/p-82e4c5f2.entry.js.map +1 -0
- package/dist/bromcom-ui/p-86f85963.entry.js +2 -0
- package/dist/bromcom-ui/p-86f85963.entry.js.map +1 -0
- package/dist/bromcom-ui/p-9249c1d1.entry.js +2 -0
- package/dist/bromcom-ui/p-9249c1d1.entry.js.map +1 -0
- package/dist/bromcom-ui/p-B6Ppbs5O.js +3 -0
- package/dist/bromcom-ui/p-B6Ppbs5O.js.map +1 -0
- package/dist/bromcom-ui/p-BfTCfPZ1.js.map +1 -1
- package/dist/bromcom-ui/p-CEcVC0yX.js.map +1 -1
- package/dist/bromcom-ui/p-DBDSgIvP.js +2 -0
- package/dist/bromcom-ui/p-DBDSgIvP.js.map +1 -0
- package/dist/bromcom-ui/p-DaE0ZLar.js +2 -0
- package/dist/bromcom-ui/p-DaE0ZLar.js.map +1 -0
- package/dist/bromcom-ui/p-IBjzkjef.js.map +1 -1
- package/dist/bromcom-ui/p-a25d1cef.entry.js +2 -0
- package/dist/bromcom-ui/p-a25d1cef.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a4cb2e79.entry.js +2 -0
- package/dist/bromcom-ui/p-a4cb2e79.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a68925b4.entry.js +2 -0
- package/dist/bromcom-ui/p-a68925b4.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a750186c.entry.js +2 -0
- package/dist/bromcom-ui/p-a750186c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-ac768b56.entry.js +2 -0
- package/dist/bromcom-ui/p-ac768b56.entry.js.map +1 -0
- package/dist/bromcom-ui/p-b0b193e6.entry.js +2 -0
- package/dist/bromcom-ui/p-b0b193e6.entry.js.map +1 -0
- package/dist/bromcom-ui/p-bf4409ca.entry.js +2 -0
- package/dist/bromcom-ui/p-bf4409ca.entry.js.map +1 -0
- package/dist/bromcom-ui/p-c57fb29b.entry.js +2 -0
- package/dist/bromcom-ui/p-c57fb29b.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-2480e468.entry.js → p-ccc310aa.entry.js} +2 -2
- package/dist/bromcom-ui/p-ccc310aa.entry.js.map +1 -0
- package/dist/bromcom-ui/p-d4ee962d.entry.js +2 -0
- package/dist/bromcom-ui/p-d4ee962d.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e25a2f7a.entry.js +2 -0
- package/dist/bromcom-ui/p-e25a2f7a.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e5b0b2ad.entry.js +2 -0
- package/dist/bromcom-ui/p-e5b0b2ad.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e70d784d.entry.js +2 -0
- package/dist/bromcom-ui/p-e70d784d.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e9fa3a22.entry.js +2 -0
- package/dist/bromcom-ui/p-e9fa3a22.entry.js.map +1 -0
- package/dist/bromcom-ui/p-ef281184.entry.js +2 -0
- package/dist/bromcom-ui/p-ef281184.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-089edfdc.entry.js → p-fb6f616c.entry.js} +2 -2
- package/dist/bromcom-ui/p-fb6f616c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-fd31c70c.entry.js +2 -0
- package/dist/bromcom-ui/p-fd31c70c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-nf_HKsGq.js +2 -0
- package/dist/bromcom-ui/{p-CUvT12BL.js.map → p-nf_HKsGq.js.map} +1 -1
- package/dist/cjs/base-choice-control-EmA4JRjR.js +54 -0
- package/dist/cjs/base-choice-control-EmA4JRjR.js.map +1 -0
- package/dist/cjs/bcm-accordion-group.cjs.entry.js +21 -21
- package/dist/cjs/bcm-accordion-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-accordion.cjs.entry.js +75 -60
- package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-alert.cjs.entry.js +21 -23
- package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-avatar.cjs.entry.js +22 -14
- package/dist/cjs/bcm-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-badge.cjs.entry.js +114 -84
- package/dist/cjs/bcm-badge.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-basic-badge.cjs.entry.js +73 -61
- package/dist/cjs/bcm-basic-badge.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js +36 -26
- package/dist/cjs/bcm-button-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-button.cjs.entry.js +338 -0
- package/dist/cjs/bcm-button.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-checkbox.cjs.entry.js +284 -176
- package/dist/cjs/bcm-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-chip.cjs.entry.js +38 -37
- package/dist/cjs/bcm-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-divider.cjs.entry.js +56 -58
- package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-drawer.cjs.entry.js +332 -0
- package/dist/cjs/bcm-drawer.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js +36 -35
- package/dist/cjs/bcm-dropdown-item.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-dropdown.cjs.entry.js +17 -26
- package/dist/cjs/bcm-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-file-upload.cjs.entry.js +552 -0
- package/dist/cjs/bcm-file-upload.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-input.cjs.entry.js +250 -160
- package/dist/cjs/bcm-input.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-linked.cjs.entry.js +373 -264
- package/dist/cjs/bcm-linked.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-modal.cjs.entry.js +360 -0
- package/dist/cjs/bcm-modal.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js +337 -206
- package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-popover.cjs.entry.js +416 -154
- package/dist/cjs/bcm-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-radio-group.cjs.entry.js +103 -82
- package/dist/cjs/bcm-radio-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-radio.cjs.entry.js +239 -108
- package/dist/cjs/bcm-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-segment.bcm-segmented-picker.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-segment_2.cjs.entry.js +335 -0
- package/dist/cjs/bcm-shortcut.cjs.entry.js +5 -6
- package/dist/cjs/bcm-shortcut.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-switch.cjs.entry.js +281 -150
- package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-tab.cjs.entry.js +44 -0
- package/dist/cjs/bcm-tab.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-tabs.cjs.entry.js +191 -239
- package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-text.cjs.entry.js +86 -87
- package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-textarea.cjs.entry.js +224 -156
- package/dist/cjs/bcm-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-tooltip.cjs.entry.js +386 -152
- package/dist/cjs/bcm-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/bromcom-ui.cjs.js +3 -5
- package/dist/cjs/bromcom-ui.cjs.js.map +1 -1
- package/dist/cjs/{floating-ui.dom-DyKmFgkP.js → floating-ui.dom-S9nP6zZt.js} +40 -23
- package/dist/cjs/floating-ui.dom-S9nP6zZt.js.map +1 -0
- package/dist/cjs/generate-id-CG_BkTJu.js.map +1 -1
- package/dist/cjs/{index-BtiU-G2W.js → index-1Qal-onT.js} +165 -398
- package/dist/cjs/index-1Qal-onT.js.map +1 -0
- package/dist/cjs/index-Bp6Dd2i1.js.map +1 -1
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/loader.cjs.js +2 -4
- package/dist/cjs/tv-ngpIbGlG.js.map +1 -1
- package/dist/cjs/{validation-messages-BjfpSEWk.js → validation-messages-DieKlSG4.js} +6 -7
- package/dist/{esm/validation-messages-CUvT12BL.js.map → cjs/validation-messages-DieKlSG4.js.map} +1 -1
- package/dist/collection/collection-manifest.json +7 -8
- package/dist/collection/components/_shared/form/base-choice-control.js +90 -0
- package/dist/collection/components/_shared/form/base-choice-control.js.map +1 -0
- package/dist/collection/components/_shared/form/base-form-control.js +115 -0
- package/dist/collection/components/_shared/form/base-form-control.js.map +1 -0
- package/dist/collection/components/accordion/accordion.component.js +80 -63
- package/dist/collection/components/accordion/accordion.component.js.map +1 -1
- package/dist/collection/components/accordion/accordion.css +1 -1
- package/dist/collection/components/accordion-group/accordion-group.component.js +23 -21
- package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -1
- package/dist/collection/components/accordion-group/types.js.map +1 -1
- package/dist/collection/components/alert/alert.component.js +24 -26
- package/dist/collection/components/alert/alert.component.js.map +1 -1
- package/dist/collection/components/alert/alert.css +1 -1
- package/dist/collection/components/avatar/avatar.component.js +34 -26
- package/dist/collection/components/avatar/avatar.component.js.map +1 -1
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/badge/badge.component.js +124 -94
- package/dist/collection/components/badge/badge.component.js.map +1 -1
- package/dist/collection/components/badge/badge.css +1 -1
- package/dist/collection/components/basic-badge/basic-badge.component.js +77 -65
- package/dist/collection/components/basic-badge/basic-badge.component.js.map +1 -1
- package/dist/collection/components/basic-badge/basic-badge.css +1 -1
- package/dist/collection/components/button/button.component.js +135 -114
- package/dist/collection/components/button/button.component.js.map +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button-group/button-group.component.js +47 -36
- package/dist/collection/components/button-group/button-group.component.js.map +1 -1
- package/dist/collection/components/button-group/button-group.css +1 -1
- package/dist/collection/components/checkbox/checkbox.component.js +362 -243
- package/dist/collection/components/checkbox/checkbox.component.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +1 -1
- package/dist/collection/components/chip/chip.component.js +42 -41
- package/dist/collection/components/chip/chip.component.js.map +1 -1
- package/dist/collection/components/chip/chip.css +1 -1
- package/dist/collection/components/divider/divider.component.js +56 -58
- package/dist/collection/components/divider/divider.component.js.map +1 -1
- package/dist/collection/components/divider/divider.css +1 -1
- package/dist/collection/components/drawer/drawer.component.js +476 -155
- package/dist/collection/components/drawer/drawer.component.js.map +1 -1
- package/dist/collection/components/drawer/drawer.css +1 -1
- package/dist/collection/components/drawer/types.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.component.js +18 -27
- package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.component.js +41 -40
- package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.css +1 -1
- package/dist/collection/components/input/input.component.js +283 -198
- package/dist/collection/components/input/input.component.js.map +1 -1
- package/dist/collection/components/linked/linked.component.js +551 -355
- package/dist/collection/components/linked/linked.component.js.map +1 -1
- package/dist/collection/components/linked/linked.css +1 -1
- package/dist/collection/components/modal/modal.component.js +276 -149
- package/dist/collection/components/modal/modal.component.js.map +1 -1
- package/dist/collection/components/modal/modal.css +1 -1
- package/dist/collection/components/pop-confirm/pop-confirm.component.js +745 -340
- package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -1
- package/dist/collection/components/pop-confirm/pop-confirm.css +1 -1
- package/dist/collection/components/popover/popover.component.js +609 -196
- package/dist/collection/components/popover/popover.component.js.map +1 -1
- package/dist/collection/components/popover/popover.css +1 -1
- package/dist/collection/components/radio/radio.component.js +294 -118
- package/dist/collection/components/radio/radio.component.js.map +1 -1
- package/dist/collection/components/radio-group/radio-group.component.js +115 -93
- package/dist/collection/components/radio-group/radio-group.component.js.map +1 -1
- package/dist/collection/components/segmented-picker/segment.component.js +228 -0
- package/dist/collection/components/segmented-picker/segment.component.js.map +1 -0
- package/dist/collection/components/segmented-picker/segment.css +1 -0
- package/dist/collection/components/segmented-picker/segmented-picker.component.js +357 -142
- package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -1
- package/dist/collection/components/segmented-picker/segmented-picker.css +1 -1
- package/dist/collection/components/shortcut/shortcut.js +7 -8
- package/dist/collection/components/shortcut/shortcut.js.map +1 -1
- package/dist/collection/components/switch/switch.component.js +357 -287
- package/dist/collection/components/switch/switch.component.js.map +1 -1
- package/dist/collection/components/switch/switch.css +1 -1
- package/dist/collection/components/tabs/bcm-tab.css +1 -0
- package/dist/collection/components/tabs/bcm-tabs.css +1 -1
- package/dist/collection/components/tabs/tab.component.js +169 -0
- package/dist/collection/components/tabs/tab.component.js.map +1 -0
- package/dist/collection/components/tabs/tabs.component.js +224 -355
- package/dist/collection/components/tabs/tabs.component.js.map +1 -1
- package/dist/collection/components/text/text.component.js +90 -91
- package/dist/collection/components/text/text.component.js.map +1 -1
- package/dist/collection/components/textarea/textarea.component.js +252 -190
- package/dist/collection/components/textarea/textarea.component.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.component.js +605 -220
- package/dist/collection/components/tooltip/tooltip.component.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.css +1 -1
- package/dist/collection/components/upload/file-upload.component.js +905 -0
- package/dist/collection/components/upload/file-upload.component.js.map +1 -0
- package/dist/collection/components/upload/file-upload.css +1 -0
- package/dist/collection/global/global.js +33 -30
- package/dist/collection/utils/i18n.js +3 -4
- package/dist/collection/utils/i18n.js.map +1 -1
- package/dist/collection/utils/slot/check-slot-content.js +1 -2
- package/dist/collection/utils/slot/check-slot-content.js.map +1 -1
- package/dist/collection/utils/validation-messages.js +1 -1
- package/dist/collection/utils/validation-messages.js.map +1 -1
- package/dist/components/bcm-accordion-group.js +24 -20
- package/dist/components/bcm-accordion-group.js.map +1 -1
- package/dist/components/bcm-accordion.js +78 -59
- package/dist/components/bcm-accordion.js.map +1 -1
- package/dist/components/bcm-alert.js +1 -112
- package/dist/components/bcm-alert.js.map +1 -1
- package/dist/components/bcm-avatar.js +26 -14
- package/dist/components/bcm-avatar.js.map +1 -1
- package/dist/components/bcm-badge.js +1 -1
- package/dist/components/bcm-basic-badge.js +76 -60
- package/dist/components/bcm-basic-badge.js.map +1 -1
- package/dist/components/bcm-button-group.js +39 -25
- package/dist/components/bcm-button-group.js.map +1 -1
- package/dist/components/bcm-button.js +1 -1
- package/dist/components/bcm-checkbox.js +300 -186
- package/dist/components/bcm-checkbox.js.map +1 -1
- package/dist/components/bcm-chip.js +41 -36
- package/dist/components/bcm-chip.js.map +1 -1
- package/dist/components/bcm-divider.js +59 -57
- package/dist/components/bcm-divider.js.map +1 -1
- package/dist/components/bcm-drawer.js +276 -138
- package/dist/components/bcm-drawer.js.map +1 -1
- package/dist/components/bcm-dropdown-item.js +40 -35
- package/dist/components/bcm-dropdown-item.js.map +1 -1
- package/dist/components/bcm-dropdown.js +22 -28
- package/dist/components/bcm-dropdown.js.map +1 -1
- package/dist/components/{bcm-tabs-content.d.ts → bcm-file-upload.d.ts} +4 -4
- package/dist/components/bcm-file-upload.js +593 -0
- package/dist/components/bcm-file-upload.js.map +1 -0
- package/dist/components/bcm-input.js +248 -160
- package/dist/components/bcm-input.js.map +1 -1
- package/dist/components/bcm-linked.js +1 -1
- package/dist/components/bcm-modal.js +196 -119
- package/dist/components/bcm-modal.js.map +1 -1
- package/dist/components/bcm-pop-confirm.js +354 -215
- package/dist/components/bcm-pop-confirm.js.map +1 -1
- package/dist/components/bcm-popover.js +431 -157
- package/dist/components/bcm-popover.js.map +1 -1
- package/dist/components/bcm-radio-group.js +106 -81
- package/dist/components/bcm-radio-group.js.map +1 -1
- package/dist/components/bcm-radio.js +245 -110
- package/dist/components/bcm-radio.js.map +1 -1
- package/dist/components/{bcm-tabs-list.d.ts → bcm-segment.d.ts} +4 -4
- package/dist/components/bcm-segment.js +110 -0
- package/dist/components/bcm-segment.js.map +1 -0
- package/dist/components/bcm-segmented-picker.js +238 -117
- package/dist/components/bcm-segmented-picker.js.map +1 -1
- package/dist/components/bcm-shortcut.js +8 -5
- package/dist/components/bcm-shortcut.js.map +1 -1
- package/dist/components/bcm-switch.js +296 -158
- package/dist/components/bcm-switch.js.map +1 -1
- package/dist/components/{bcm-tabs-trigger.d.ts → bcm-tab.d.ts} +4 -4
- package/dist/components/bcm-tab.js +71 -0
- package/dist/components/bcm-tab.js.map +1 -0
- package/dist/components/bcm-tabs.js +200 -249
- package/dist/components/bcm-tabs.js.map +1 -1
- package/dist/components/bcm-text.js +89 -86
- package/dist/components/bcm-text.js.map +1 -1
- package/dist/components/bcm-textarea.js +222 -156
- package/dist/components/bcm-textarea.js.map +1 -1
- package/dist/components/bcm-tooltip.js +402 -154
- package/dist/components/bcm-tooltip.js.map +1 -1
- package/dist/components/index.js +140 -392
- package/dist/components/index.js.map +1 -1
- package/dist/components/p-5_TgtzQU.js +119 -0
- package/dist/components/p-5_TgtzQU.js.map +1 -0
- package/dist/components/p-BfTCfPZ1.js.map +1 -1
- package/dist/components/p-CEcVC0yX.js.map +1 -1
- package/dist/components/{p-CzcTU1ty.js → p-DBDSgIvP.js} +40 -23
- package/dist/components/p-DBDSgIvP.js.map +1 -0
- package/dist/components/p-IBjzkjef.js.map +1 -1
- package/dist/components/p-RlBWOSgL.js +179 -0
- package/dist/components/p-RlBWOSgL.js.map +1 -0
- package/dist/components/p-SERXqWcS.js +51 -0
- package/dist/components/p-SERXqWcS.js.map +1 -0
- package/dist/components/{p-CUvT12BL.js → p-nf_HKsGq.js} +6 -7
- package/dist/components/p-nf_HKsGq.js.map +1 -0
- package/dist/components/{p-DHONP_n4.js → p-xQIzBLsS.js} +112 -87
- package/dist/components/p-xQIzBLsS.js.map +1 -0
- package/dist/components/p-z9ESseGb.js +492 -0
- package/dist/components/p-z9ESseGb.js.map +1 -0
- package/dist/esm/base-choice-control-CKR8UdZ6.js +52 -0
- package/dist/esm/base-choice-control-CKR8UdZ6.js.map +1 -0
- package/dist/esm/bcm-accordion-group.entry.js +21 -21
- package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
- package/dist/esm/bcm-accordion.entry.js +75 -60
- package/dist/esm/bcm-accordion.entry.js.map +1 -1
- package/dist/esm/bcm-alert.entry.js +21 -23
- package/dist/esm/bcm-alert.entry.js.map +1 -1
- package/dist/esm/bcm-avatar.entry.js +22 -14
- package/dist/esm/bcm-avatar.entry.js.map +1 -1
- package/dist/esm/bcm-badge.entry.js +114 -84
- package/dist/esm/bcm-badge.entry.js.map +1 -1
- package/dist/esm/bcm-basic-badge.entry.js +73 -61
- package/dist/esm/bcm-basic-badge.entry.js.map +1 -1
- package/dist/esm/bcm-button-group.entry.js +36 -26
- package/dist/esm/bcm-button-group.entry.js.map +1 -1
- package/dist/esm/bcm-button.entry.js +336 -0
- package/dist/esm/bcm-button.entry.js.map +1 -0
- package/dist/esm/bcm-checkbox.entry.js +284 -176
- package/dist/esm/bcm-checkbox.entry.js.map +1 -1
- package/dist/esm/bcm-chip.entry.js +38 -37
- package/dist/esm/bcm-chip.entry.js.map +1 -1
- package/dist/esm/bcm-divider.entry.js +56 -58
- package/dist/esm/bcm-divider.entry.js.map +1 -1
- package/dist/esm/bcm-drawer.entry.js +330 -0
- package/dist/esm/bcm-drawer.entry.js.map +1 -0
- package/dist/esm/bcm-dropdown-item.entry.js +36 -35
- package/dist/esm/bcm-dropdown-item.entry.js.map +1 -1
- package/dist/esm/bcm-dropdown.entry.js +17 -26
- package/dist/esm/bcm-dropdown.entry.js.map +1 -1
- package/dist/esm/bcm-file-upload.entry.js +550 -0
- package/dist/esm/bcm-file-upload.entry.js.map +1 -0
- package/dist/esm/bcm-input.entry.js +250 -160
- package/dist/esm/bcm-input.entry.js.map +1 -1
- package/dist/esm/bcm-linked.entry.js +373 -264
- package/dist/esm/bcm-linked.entry.js.map +1 -1
- package/dist/esm/bcm-modal.entry.js +358 -0
- package/dist/esm/bcm-modal.entry.js.map +1 -0
- package/dist/esm/bcm-pop-confirm.entry.js +337 -206
- package/dist/esm/bcm-pop-confirm.entry.js.map +1 -1
- package/dist/esm/bcm-popover.entry.js +416 -154
- package/dist/esm/bcm-popover.entry.js.map +1 -1
- package/dist/esm/bcm-radio-group.entry.js +103 -82
- package/dist/esm/bcm-radio-group.entry.js.map +1 -1
- package/dist/esm/bcm-radio.entry.js +239 -108
- package/dist/esm/bcm-radio.entry.js.map +1 -1
- package/dist/esm/bcm-segment.bcm-segmented-picker.entry.js.map +1 -0
- package/dist/esm/bcm-segment_2.entry.js +332 -0
- package/dist/esm/bcm-shortcut.entry.js +5 -6
- package/dist/esm/bcm-shortcut.entry.js.map +1 -1
- package/dist/esm/bcm-switch.entry.js +281 -150
- package/dist/esm/bcm-switch.entry.js.map +1 -1
- package/dist/esm/bcm-tab.entry.js +42 -0
- package/dist/esm/bcm-tab.entry.js.map +1 -0
- package/dist/esm/bcm-tabs.entry.js +191 -239
- package/dist/esm/bcm-tabs.entry.js.map +1 -1
- package/dist/esm/bcm-text.entry.js +86 -87
- package/dist/esm/bcm-text.entry.js.map +1 -1
- package/dist/esm/bcm-textarea.entry.js +224 -156
- package/dist/esm/bcm-textarea.entry.js.map +1 -1
- package/dist/esm/bcm-tooltip.entry.js +386 -152
- package/dist/esm/bcm-tooltip.entry.js.map +1 -1
- package/dist/esm/bromcom-ui.js +4 -6
- package/dist/esm/bromcom-ui.js.map +1 -1
- package/dist/esm/{floating-ui.dom-DxMLMJ3r.js → floating-ui.dom-DBDSgIvP.js} +41 -24
- package/dist/esm/floating-ui.dom-DBDSgIvP.js.map +1 -0
- package/dist/esm/generate-id-IBjzkjef.js.map +1 -1
- package/dist/esm/{index-BuuGCw0z.js → index-B6Ppbs5O.js} +165 -398
- package/dist/esm/index-B6Ppbs5O.js.map +1 -0
- package/dist/esm/index-BfTCfPZ1.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/loader.js +3 -5
- package/dist/esm/tv-CEcVC0yX.js.map +1 -1
- package/dist/esm/{validation-messages-CUvT12BL.js → validation-messages-nf_HKsGq.js} +6 -7
- package/dist/{cjs/validation-messages-BjfpSEWk.js.map → esm/validation-messages-nf_HKsGq.js.map} +1 -1
- package/dist/types/components/_shared/form/base-choice-control.d.ts +15 -0
- package/dist/types/components/_shared/form/base-form-control.d.ts +11 -0
- package/dist/types/components/accordion-group/types.d.ts +2 -2
- package/dist/types/components/checkbox/checkbox.component.d.ts +89 -71
- package/dist/types/components/drawer/drawer.component.d.ts +143 -3
- package/dist/types/components/drawer/types.d.ts +1 -1
- package/dist/types/components/dropdown/dropdown.component.d.ts +0 -3
- package/dist/types/components/input/input.component.d.ts +5 -0
- package/dist/types/components/linked/linked.component.d.ts +152 -36
- package/dist/types/components/modal/modal.component.d.ts +121 -0
- package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +263 -143
- package/dist/types/components/popover/popover.component.d.ts +94 -39
- package/dist/types/components/radio/radio.component.d.ts +21 -0
- package/dist/types/components/segmented-picker/segment.component.d.ts +42 -0
- package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +91 -24
- package/dist/types/components/switch/switch.component.d.ts +83 -43
- package/dist/types/components/tabs/tab.component.d.ts +33 -0
- package/dist/types/components/tabs/tabs.component.d.ts +51 -64
- package/dist/types/components/textarea/textarea.component.d.ts +5 -0
- package/dist/types/components/tooltip/tooltip.component.d.ts +147 -56
- package/dist/types/components/upload/file-upload.component.d.ts +107 -0
- package/dist/types/components.d.ts +2400 -742
- package/dist/types/stencil-public-runtime.d.ts +50 -3
- package/package.json +2 -2
- package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-modal.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-tabs-content.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-tabs-list.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-tabs-trigger.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/p-0101b4f2.entry.js +0 -2
- package/dist/bromcom-ui/p-0101b4f2.entry.js.map +0 -1
- package/dist/bromcom-ui/p-089edfdc.entry.js.map +0 -1
- package/dist/bromcom-ui/p-08bc93c5.entry.js +0 -2
- package/dist/bromcom-ui/p-08bc93c5.entry.js.map +0 -1
- package/dist/bromcom-ui/p-09be61c3.entry.js +0 -2
- package/dist/bromcom-ui/p-09be61c3.entry.js.map +0 -1
- package/dist/bromcom-ui/p-11851391.entry.js +0 -2
- package/dist/bromcom-ui/p-11851391.entry.js.map +0 -1
- package/dist/bromcom-ui/p-11f3e129.entry.js +0 -2
- package/dist/bromcom-ui/p-11f3e129.entry.js.map +0 -1
- package/dist/bromcom-ui/p-211ca6e0.entry.js +0 -2
- package/dist/bromcom-ui/p-211ca6e0.entry.js.map +0 -1
- package/dist/bromcom-ui/p-22edf049.entry.js +0 -2
- package/dist/bromcom-ui/p-22edf049.entry.js.map +0 -1
- package/dist/bromcom-ui/p-2480e468.entry.js.map +0 -1
- package/dist/bromcom-ui/p-26d2db9e.entry.js +0 -2
- package/dist/bromcom-ui/p-26d2db9e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-2d0a6472.entry.js +0 -2
- package/dist/bromcom-ui/p-2d0a6472.entry.js.map +0 -1
- package/dist/bromcom-ui/p-360bff8a.entry.js +0 -2
- package/dist/bromcom-ui/p-360bff8a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-488d6ef4.entry.js +0 -2
- package/dist/bromcom-ui/p-488d6ef4.entry.js.map +0 -1
- package/dist/bromcom-ui/p-5e0702d1.entry.js +0 -2
- package/dist/bromcom-ui/p-5e0702d1.entry.js.map +0 -1
- package/dist/bromcom-ui/p-63228f7e.entry.js +0 -2
- package/dist/bromcom-ui/p-63228f7e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-6b585adc.entry.js +0 -2
- package/dist/bromcom-ui/p-6b585adc.entry.js.map +0 -1
- package/dist/bromcom-ui/p-6d7d73d5.entry.js +0 -2
- package/dist/bromcom-ui/p-6d7d73d5.entry.js.map +0 -1
- package/dist/bromcom-ui/p-7234af90.entry.js +0 -2
- package/dist/bromcom-ui/p-7234af90.entry.js.map +0 -1
- package/dist/bromcom-ui/p-83f64814.entry.js +0 -2
- package/dist/bromcom-ui/p-83f64814.entry.js.map +0 -1
- package/dist/bromcom-ui/p-8ace5a6a.entry.js +0 -2
- package/dist/bromcom-ui/p-8ace5a6a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-8d74249a.entry.js +0 -2
- package/dist/bromcom-ui/p-8d74249a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-BuuGCw0z.js +0 -3
- package/dist/bromcom-ui/p-BuuGCw0z.js.map +0 -1
- package/dist/bromcom-ui/p-CUvT12BL.js +0 -2
- package/dist/bromcom-ui/p-DxMLMJ3r.js +0 -2
- package/dist/bromcom-ui/p-DxMLMJ3r.js.map +0 -1
- package/dist/bromcom-ui/p-a88f20e0.entry.js +0 -2
- package/dist/bromcom-ui/p-a88f20e0.entry.js.map +0 -1
- package/dist/bromcom-ui/p-bad299f2.entry.js +0 -2
- package/dist/bromcom-ui/p-bad299f2.entry.js.map +0 -1
- package/dist/bromcom-ui/p-bdaf5653.entry.js +0 -2
- package/dist/bromcom-ui/p-bdaf5653.entry.js.map +0 -1
- package/dist/bromcom-ui/p-c0e7f9d6.entry.js +0 -2
- package/dist/bromcom-ui/p-c0e7f9d6.entry.js.map +0 -1
- package/dist/bromcom-ui/p-c34f0a66.entry.js +0 -2
- package/dist/bromcom-ui/p-c34f0a66.entry.js.map +0 -1
- package/dist/bromcom-ui/p-d7cea19f.entry.js +0 -2
- package/dist/bromcom-ui/p-d7cea19f.entry.js.map +0 -1
- package/dist/bromcom-ui/p-e5e0ac07.entry.js +0 -2
- package/dist/bromcom-ui/p-e5e0ac07.entry.js.map +0 -1
- package/dist/bromcom-ui/p-ee5f877f.entry.js +0 -2
- package/dist/bromcom-ui/p-ee5f877f.entry.js.map +0 -1
- package/dist/bromcom-ui/p-fbccbffc.entry.js +0 -2
- package/dist/bromcom-ui/p-fbccbffc.entry.js.map +0 -1
- package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-accordion.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-alert.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-button.bcm-drawer.bcm-modal.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-button_3.cjs.entry.js +0 -794
- package/dist/cjs/bcm-button_3.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-checkbox.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-chip.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-divider.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-popover.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-radio-group.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-radio.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +0 -107
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js +0 -144
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-switch.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-content.cjs.entry.js +0 -20
- package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-content.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs-list.cjs.entry.js +0 -84
- package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-list.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +0 -122
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-trigger.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-textarea.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tooltip.cjs.entry.js.map +0 -1
- package/dist/cjs/floating-ui.dom-DyKmFgkP.js.map +0 -1
- package/dist/cjs/index-BtiU-G2W.js.map +0 -1
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +0 -253
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +0 -1
- package/dist/collection/components/segmented-picker/segmented-picker-option.css +0 -1
- package/dist/collection/components/tabs/tabs-content.component.js +0 -46
- package/dist/collection/components/tabs/tabs-content.component.js.map +0 -1
- package/dist/collection/components/tabs/tabs-content.css +0 -1
- package/dist/collection/components/tabs/tabs-list.component.js +0 -133
- package/dist/collection/components/tabs/tabs-list.component.js.map +0 -1
- package/dist/collection/components/tabs/tabs-list.css +0 -1
- package/dist/collection/components/tabs/tabs-trigger.component.js +0 -267
- package/dist/collection/components/tabs/tabs-trigger.component.js.map +0 -1
- package/dist/collection/components/tabs/tabs-trigger.css +0 -1
- package/dist/components/bcm-segmented-picker-option.d.ts +0 -11
- package/dist/components/bcm-segmented-picker-option.js +0 -131
- package/dist/components/bcm-segmented-picker-option.js.map +0 -1
- package/dist/components/bcm-tabs-content.js +0 -39
- package/dist/components/bcm-tabs-content.js.map +0 -1
- package/dist/components/bcm-tabs-list.js +0 -104
- package/dist/components/bcm-tabs-list.js.map +0 -1
- package/dist/components/bcm-tabs-trigger.js +0 -146
- package/dist/components/bcm-tabs-trigger.js.map +0 -1
- package/dist/components/p-BHwftRkk.js +0 -379
- package/dist/components/p-BHwftRkk.js.map +0 -1
- package/dist/components/p-CQF7wlXf.js +0 -145
- package/dist/components/p-CQF7wlXf.js.map +0 -1
- package/dist/components/p-CUvT12BL.js.map +0 -1
- package/dist/components/p-CzcTU1ty.js.map +0 -1
- package/dist/components/p-DHONP_n4.js.map +0 -1
- package/dist/esm/bcm-button.bcm-drawer.bcm-modal.entry.js.map +0 -1
- package/dist/esm/bcm-button_3.entry.js +0 -790
- package/dist/esm/bcm-button_3.entry.js.map +0 -1
- package/dist/esm/bcm-segmented-picker-option.entry.js +0 -105
- package/dist/esm/bcm-segmented-picker-option.entry.js.map +0 -1
- package/dist/esm/bcm-segmented-picker.entry.js +0 -142
- package/dist/esm/bcm-segmented-picker.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-content.entry.js +0 -18
- package/dist/esm/bcm-tabs-content.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-list.entry.js +0 -82
- package/dist/esm/bcm-tabs-list.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-trigger.entry.js +0 -120
- package/dist/esm/bcm-tabs-trigger.entry.js.map +0 -1
- package/dist/esm/floating-ui.dom-DxMLMJ3r.js.map +0 -1
- package/dist/esm/index-BuuGCw0z.js.map +0 -1
- package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +0 -30
- package/dist/types/components/tabs/tabs-content.component.d.ts +0 -13
- package/dist/types/components/tabs/tabs-list.component.d.ts +0 -20
- package/dist/types/components/tabs/tabs-trigger.component.d.ts +0 -49
|
@@ -1,214 +1,367 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
|
-
import { computePosition, shift, offset, autoUpdate, flip } from "@floating-ui/dom";
|
|
2
|
+
import { computePosition, shift, offset, autoUpdate, flip, arrow } from "@floating-ui/dom";
|
|
3
|
+
import { tv } from "../../utils/tv";
|
|
4
|
+
/**
|
|
5
|
+
* @component BcmLinked
|
|
6
|
+
* @description A flexible linked floating element component that displays contextual content relative to a trigger element.
|
|
7
|
+
* Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.
|
|
8
|
+
* Supports different trigger types (click, hover, focus, manual) and comprehensive event system.
|
|
9
|
+
*
|
|
10
|
+
* @example Basic Click Trigger
|
|
11
|
+
* <bcm-linked trigger="click">
|
|
12
|
+
* <button slot="trigger">Click Me</button>
|
|
13
|
+
* <div>Floating content here</div>
|
|
14
|
+
* </bcm-linked>
|
|
15
|
+
*
|
|
16
|
+
* @example Hover Trigger with Delays
|
|
17
|
+
* <bcm-linked trigger="hover" show-delay="200" hide-delay="100">
|
|
18
|
+
* <span slot="trigger">Hover Me</span>
|
|
19
|
+
* <div>This appears on hover</div>
|
|
20
|
+
* </bcm-linked>
|
|
21
|
+
*
|
|
22
|
+
* @example Manual Control
|
|
23
|
+
* <bcm-linked id="my-linked" trigger="manual">
|
|
24
|
+
* <button slot="trigger">Trigger</button>
|
|
25
|
+
* <div>Controlled content</div>
|
|
26
|
+
* </bcm-linked>
|
|
27
|
+
* <script>
|
|
28
|
+
* const linked = document.querySelector('#my-linked');
|
|
29
|
+
* linked.show(); // Opens the floating element
|
|
30
|
+
* linked.hide(); // Closes the floating element
|
|
31
|
+
* </script>
|
|
32
|
+
*
|
|
33
|
+
* @slot trigger - The trigger element that controls the floating element visibility
|
|
34
|
+
* @slot - Default slot for the floating content
|
|
35
|
+
*
|
|
36
|
+
* @csspart floating - The floating container element
|
|
37
|
+
* @csspart arrow - The arrow element pointing to the trigger
|
|
38
|
+
* @csspart content - The content wrapper element
|
|
39
|
+
*/
|
|
3
40
|
export class BcmLinked {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
41
|
+
host;
|
|
42
|
+
// Element references
|
|
43
|
+
floatingRef;
|
|
44
|
+
triggerRef;
|
|
45
|
+
arrowRef;
|
|
46
|
+
// Cleanup references
|
|
47
|
+
cleanupAutoUpdate;
|
|
48
|
+
showTimeout;
|
|
49
|
+
hideTimeout;
|
|
50
|
+
// Unique ID for ARIA
|
|
51
|
+
componentId = `linked-${Math.random().toString(36).substring(2, 11)}`;
|
|
52
|
+
/**
|
|
53
|
+
* @prop {boolean} visible - Controls the visibility state of the floating element.
|
|
54
|
+
* Can be set programmatically or toggled by user interaction.
|
|
55
|
+
* Default: false
|
|
56
|
+
*/
|
|
57
|
+
visible = false;
|
|
58
|
+
/**
|
|
59
|
+
* @prop {TriggerType} trigger - Defines the interaction type to show/hide the floating element.
|
|
60
|
+
* 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave,
|
|
61
|
+
* 'focus' shows on focus and hides on blur, 'manual' requires programmatic control.
|
|
62
|
+
* Default: 'click'
|
|
63
|
+
*/
|
|
64
|
+
trigger = 'click';
|
|
65
|
+
/**
|
|
66
|
+
* @prop {Placement} placement - Defines the position of the floating element relative to the trigger.
|
|
67
|
+
* Default: 'bottom-start'
|
|
68
|
+
*/
|
|
69
|
+
placement = 'bottom-start';
|
|
70
|
+
/**
|
|
71
|
+
* @prop {number} showDelay - Delay in milliseconds before showing the floating element.
|
|
72
|
+
* Default: 0
|
|
73
|
+
*/
|
|
74
|
+
showDelay = 0;
|
|
75
|
+
/**
|
|
76
|
+
* @prop {number} hideDelay - Delay in milliseconds before hiding the floating element.
|
|
77
|
+
* Default: 0
|
|
78
|
+
*/
|
|
79
|
+
hideDelay = 0;
|
|
80
|
+
/**
|
|
81
|
+
* @prop {number} offsetDistance - Distance in pixels between the floating element and the trigger.
|
|
82
|
+
* Default: 8
|
|
83
|
+
*/
|
|
84
|
+
offsetDistance = 8;
|
|
85
|
+
/**
|
|
86
|
+
* @prop {boolean} showArrow - Whether to show an arrow pointing to the trigger element.
|
|
87
|
+
* Default: true
|
|
88
|
+
*/
|
|
89
|
+
showArrow = true;
|
|
90
|
+
/**
|
|
91
|
+
* @prop {boolean} disabled - Disables the floating element, preventing it from showing.
|
|
92
|
+
* Default: false
|
|
93
|
+
*/
|
|
94
|
+
disabled = false;
|
|
95
|
+
/**
|
|
96
|
+
* @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside.
|
|
97
|
+
* Default: true
|
|
98
|
+
*/
|
|
99
|
+
closeOnOutsideClick = true;
|
|
100
|
+
/**
|
|
101
|
+
* @prop {boolean} closeOnEscape - Whether to close when pressing Escape key.
|
|
102
|
+
* Default: true
|
|
103
|
+
*/
|
|
104
|
+
closeOnEscape = true;
|
|
105
|
+
// Internal state
|
|
106
|
+
isVisible = false;
|
|
107
|
+
/**
|
|
108
|
+
* @event bcmBeforeShow - Emitted before the floating element shows.
|
|
109
|
+
*/
|
|
110
|
+
bcmBeforeShow;
|
|
111
|
+
/**
|
|
112
|
+
* @event bcmShow - Emitted when the floating element is shown.
|
|
113
|
+
*/
|
|
114
|
+
bcmShow;
|
|
115
|
+
/**
|
|
116
|
+
* @event bcmBeforeHide - Emitted before the floating element hides.
|
|
117
|
+
*/
|
|
118
|
+
bcmBeforeHide;
|
|
119
|
+
/**
|
|
120
|
+
* @event bcmHide - Emitted when the floating element is hidden.
|
|
121
|
+
*/
|
|
122
|
+
bcmHide;
|
|
123
|
+
/**
|
|
124
|
+
* @event bcmShown - Emitted after the floating element is fully shown (after animation).
|
|
125
|
+
*/
|
|
126
|
+
bcmShown;
|
|
127
|
+
/**
|
|
128
|
+
* @event bcmHidden - Emitted after the floating element is fully hidden (after animation).
|
|
129
|
+
*/
|
|
130
|
+
bcmHidden;
|
|
131
|
+
// Watch for visibility prop changes
|
|
132
|
+
handleVisibleChange(newValue) {
|
|
133
|
+
if (this.disabled)
|
|
134
|
+
return;
|
|
135
|
+
if (newValue) {
|
|
136
|
+
this.showInternal();
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
this.hideInternal();
|
|
140
|
+
}
|
|
62
141
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
142
|
+
handleDisabledChange(isDisabled) {
|
|
143
|
+
if (isDisabled && this.visible) {
|
|
144
|
+
this.hide();
|
|
145
|
+
}
|
|
67
146
|
}
|
|
68
|
-
|
|
69
|
-
if (
|
|
147
|
+
handlePositionPropsChange() {
|
|
148
|
+
if (this.visible) {
|
|
70
149
|
this.updatePosition();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Internal show logic
|
|
153
|
+
showInternal() {
|
|
154
|
+
if (!this.floatingRef || this.disabled)
|
|
155
|
+
return;
|
|
156
|
+
this.bcmShow.emit();
|
|
157
|
+
this.isVisible = true;
|
|
158
|
+
this.floatingRef.showPopover();
|
|
159
|
+
this.startAutoUpdate();
|
|
160
|
+
this.updatePosition();
|
|
161
|
+
this.triggerRef?.setAttribute('aria-expanded', 'true');
|
|
162
|
+
if (this.closeOnOutsideClick && this.trigger !== 'manual') {
|
|
163
|
+
this.addOutsideClickListener();
|
|
164
|
+
}
|
|
165
|
+
// Emit bcmShown after animation
|
|
166
|
+
requestAnimationFrame(() => {
|
|
71
167
|
this.bcmShown.emit();
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
// Internal hide logic
|
|
171
|
+
hideInternal() {
|
|
172
|
+
if (!this.floatingRef)
|
|
173
|
+
return;
|
|
174
|
+
this.bcmHide.emit();
|
|
175
|
+
this.isVisible = false;
|
|
176
|
+
this.floatingRef.hidePopover();
|
|
177
|
+
this.stopAutoUpdate();
|
|
178
|
+
this.triggerRef?.setAttribute('aria-expanded', 'false');
|
|
179
|
+
this.removeOutsideClickListener();
|
|
180
|
+
// Emit bcmHidden after animation
|
|
181
|
+
setTimeout(() => {
|
|
182
|
+
this.bcmHidden.emit();
|
|
183
|
+
}, 150);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Programmatically shows the floating element.
|
|
187
|
+
* Respects the showDelay prop.
|
|
188
|
+
*/
|
|
189
|
+
async show() {
|
|
190
|
+
if (this.visible || this.disabled)
|
|
191
|
+
return;
|
|
192
|
+
this.clearTimeouts();
|
|
193
|
+
if (this.showDelay > 0) {
|
|
194
|
+
this.showTimeout = window.setTimeout(() => {
|
|
195
|
+
this.bcmBeforeShow.emit();
|
|
196
|
+
this.visible = true;
|
|
197
|
+
}, this.showDelay);
|
|
72
198
|
}
|
|
73
199
|
else {
|
|
74
|
-
this.
|
|
200
|
+
this.bcmBeforeShow.emit();
|
|
201
|
+
this.visible = true;
|
|
75
202
|
}
|
|
76
203
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Programmatically hides the floating element.
|
|
206
|
+
* Respects the hideDelay prop.
|
|
207
|
+
*/
|
|
208
|
+
async hide() {
|
|
209
|
+
if (!this.visible)
|
|
210
|
+
return;
|
|
211
|
+
this.clearTimeouts();
|
|
212
|
+
if (this.hideDelay > 0) {
|
|
213
|
+
this.hideTimeout = window.setTimeout(() => {
|
|
214
|
+
this.bcmBeforeHide.emit();
|
|
215
|
+
this.visible = false;
|
|
216
|
+
}, this.hideDelay);
|
|
86
217
|
}
|
|
87
218
|
else {
|
|
88
|
-
|
|
219
|
+
this.bcmBeforeHide.emit();
|
|
220
|
+
this.visible = false;
|
|
89
221
|
}
|
|
90
222
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
this.
|
|
223
|
+
/**
|
|
224
|
+
* Toggles the floating element visibility.
|
|
225
|
+
*/
|
|
226
|
+
async toggle() {
|
|
227
|
+
if (this.visible) {
|
|
228
|
+
await this.hide();
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
await this.show();
|
|
100
232
|
}
|
|
101
233
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
234
|
+
/**
|
|
235
|
+
* Updates the position of the floating element.
|
|
236
|
+
* Useful when the trigger element moves or resizes.
|
|
237
|
+
*/
|
|
238
|
+
async updatePosition() {
|
|
239
|
+
await this.calculatePosition();
|
|
240
|
+
}
|
|
241
|
+
clearTimeouts() {
|
|
242
|
+
if (this.showTimeout) {
|
|
243
|
+
clearTimeout(this.showTimeout);
|
|
244
|
+
this.showTimeout = undefined;
|
|
111
245
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (this.targetEl && this.floatingEl) {
|
|
116
|
-
this.cleanup = autoUpdate(this.targetEl, this.floatingEl, () => {
|
|
117
|
-
if (this.isVisible) {
|
|
118
|
-
this.updatePosition();
|
|
119
|
-
}
|
|
120
|
-
});
|
|
246
|
+
if (this.hideTimeout) {
|
|
247
|
+
clearTimeout(this.hideTimeout);
|
|
248
|
+
this.hideTimeout = undefined;
|
|
121
249
|
}
|
|
122
|
-
// Setup resize observer for responsive positioning
|
|
123
|
-
this.resizeObserver = new ResizeObserver(() => {
|
|
124
|
-
if (this.isVisible) {
|
|
125
|
-
this.updatePosition();
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
this.resizeObserver.observe(this.floatingEl);
|
|
129
250
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if (
|
|
133
|
-
|
|
251
|
+
handleTriggerSlotChange = () => {
|
|
252
|
+
const slot = this.host.shadowRoot?.querySelector('slot[name="trigger"]');
|
|
253
|
+
if (!slot)
|
|
254
|
+
return;
|
|
255
|
+
const elements = slot.assignedElements();
|
|
256
|
+
if (elements.length > 0) {
|
|
257
|
+
this.removeTriggerListeners();
|
|
258
|
+
this.triggerRef = elements[0];
|
|
259
|
+
this.setupTriggerListeners();
|
|
260
|
+
this.setupAriaAttributes();
|
|
134
261
|
}
|
|
135
|
-
|
|
136
|
-
|
|
262
|
+
};
|
|
263
|
+
setupAriaAttributes() {
|
|
264
|
+
if (!this.triggerRef)
|
|
265
|
+
return;
|
|
266
|
+
this.triggerRef.setAttribute('aria-describedby', this.componentId);
|
|
267
|
+
this.triggerRef.setAttribute('aria-expanded', String(this.visible));
|
|
268
|
+
this.triggerRef.setAttribute('aria-haspopup', 'true');
|
|
137
269
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (!this.targetEl || this.disabled)
|
|
270
|
+
setupTriggerListeners() {
|
|
271
|
+
if (!this.triggerRef || this.disabled)
|
|
141
272
|
return;
|
|
142
273
|
switch (this.trigger) {
|
|
143
274
|
case 'hover':
|
|
144
|
-
this.
|
|
145
|
-
this.
|
|
146
|
-
|
|
147
|
-
|
|
275
|
+
this.triggerRef.addEventListener('mouseenter', this.handleMouseEnter);
|
|
276
|
+
this.triggerRef.addEventListener('mouseleave', this.handleMouseLeave);
|
|
277
|
+
this.floatingRef?.addEventListener('mouseenter', this.handleFloatingMouseEnter);
|
|
278
|
+
this.floatingRef?.addEventListener('mouseleave', this.handleFloatingMouseLeave);
|
|
148
279
|
break;
|
|
149
280
|
case 'click':
|
|
150
|
-
this.
|
|
151
|
-
this.setupClickOutside();
|
|
281
|
+
this.triggerRef.addEventListener('click', this.handleTriggerClick);
|
|
152
282
|
break;
|
|
153
283
|
case 'focus':
|
|
154
|
-
this.
|
|
155
|
-
this.
|
|
284
|
+
this.triggerRef.addEventListener('focus', this.handleFocus);
|
|
285
|
+
this.triggerRef.addEventListener('blur', this.handleBlur);
|
|
286
|
+
break;
|
|
287
|
+
case 'manual':
|
|
288
|
+
// No automatic listeners
|
|
156
289
|
break;
|
|
157
290
|
}
|
|
158
291
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
if (!this.targetEl)
|
|
292
|
+
removeTriggerListeners() {
|
|
293
|
+
if (!this.triggerRef)
|
|
162
294
|
return;
|
|
163
|
-
this.
|
|
164
|
-
this.
|
|
165
|
-
this.
|
|
166
|
-
this.
|
|
167
|
-
this.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
this.removeClickOutside();
|
|
295
|
+
this.triggerRef.removeEventListener('mouseenter', this.handleMouseEnter);
|
|
296
|
+
this.triggerRef.removeEventListener('mouseleave', this.handleMouseLeave);
|
|
297
|
+
this.triggerRef.removeEventListener('click', this.handleTriggerClick);
|
|
298
|
+
this.triggerRef.removeEventListener('focus', this.handleFocus);
|
|
299
|
+
this.triggerRef.removeEventListener('blur', this.handleBlur);
|
|
300
|
+
this.floatingRef?.removeEventListener('mouseenter', this.handleFloatingMouseEnter);
|
|
301
|
+
this.floatingRef?.removeEventListener('mouseleave', this.handleFloatingMouseLeave);
|
|
171
302
|
}
|
|
172
|
-
|
|
173
|
-
this.
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
303
|
+
handleMouseEnter = () => {
|
|
304
|
+
this.show();
|
|
305
|
+
};
|
|
306
|
+
handleMouseLeave = () => {
|
|
307
|
+
this.hide();
|
|
308
|
+
};
|
|
309
|
+
handleFloatingMouseEnter = () => {
|
|
310
|
+
this.clearTimeouts();
|
|
311
|
+
};
|
|
312
|
+
handleFloatingMouseLeave = () => {
|
|
313
|
+
this.hide();
|
|
314
|
+
};
|
|
315
|
+
handleTriggerClick = (event) => {
|
|
316
|
+
event.stopPropagation();
|
|
317
|
+
this.toggle();
|
|
318
|
+
};
|
|
319
|
+
handleFocus = () => {
|
|
320
|
+
this.show();
|
|
321
|
+
};
|
|
322
|
+
handleBlur = () => {
|
|
323
|
+
this.hide();
|
|
324
|
+
};
|
|
325
|
+
handleKeyDown(event) {
|
|
326
|
+
if (!this.closeOnEscape || !this.visible)
|
|
327
|
+
return;
|
|
328
|
+
if (event.key === 'Escape') {
|
|
329
|
+
const openLinked = Array.from(document.querySelectorAll('bcm-linked[visible]'));
|
|
330
|
+
const topLinked = openLinked[openLinked.length - 1];
|
|
331
|
+
if (topLinked === this.host) {
|
|
332
|
+
event.preventDefault();
|
|
177
333
|
this.hide();
|
|
334
|
+
this.triggerRef?.focus();
|
|
178
335
|
}
|
|
179
|
-
};
|
|
180
|
-
document.addEventListener('click', this.clickOutsideHandler, true);
|
|
181
|
-
}
|
|
182
|
-
removeClickOutside() {
|
|
183
|
-
if (this.clickOutsideHandler) {
|
|
184
|
-
document.removeEventListener('click', this.clickOutsideHandler, true);
|
|
185
|
-
this.clickOutsideHandler = undefined;
|
|
186
336
|
}
|
|
187
337
|
}
|
|
188
|
-
|
|
189
|
-
if (this.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
338
|
+
handleOutsideClick = (event) => {
|
|
339
|
+
if (!this.closeOnOutsideClick || !this.visible)
|
|
340
|
+
return;
|
|
341
|
+
const target = event.target;
|
|
342
|
+
const path = event.composedPath();
|
|
343
|
+
const isInsideHost = this.host.contains(target) || path.includes(this.host);
|
|
344
|
+
const isInsideFloating = this.floatingRef?.contains(target) || (this.floatingRef && path.includes(this.floatingRef));
|
|
345
|
+
if (!isInsideHost && !isInsideFloating) {
|
|
346
|
+
this.hide();
|
|
196
347
|
}
|
|
348
|
+
};
|
|
349
|
+
addOutsideClickListener() {
|
|
350
|
+
setTimeout(() => {
|
|
351
|
+
document.addEventListener('click', this.handleOutsideClick, true);
|
|
352
|
+
}, 0);
|
|
197
353
|
}
|
|
198
|
-
|
|
199
|
-
|
|
354
|
+
removeOutsideClickListener() {
|
|
355
|
+
document.removeEventListener('click', this.handleOutsideClick, true);
|
|
356
|
+
}
|
|
357
|
+
async calculatePosition() {
|
|
358
|
+
if (!this.triggerRef || !this.floatingRef || !this.isVisible)
|
|
200
359
|
return;
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
const
|
|
205
|
-
offset(this.
|
|
206
|
-
// useAutoPlacement
|
|
207
|
-
// ? autoPlacement({
|
|
208
|
-
// allowedPlacements: ['bottom-start', 'bottom-end', 'bottom', 'top-start', 'top-end', 'top', 'right-start', 'right-end', 'right', 'left-start', 'left-end', 'left'],
|
|
209
|
-
// boundary: document.body,
|
|
210
|
-
// })
|
|
211
|
-
// :
|
|
360
|
+
const virtualElement = {
|
|
361
|
+
getBoundingClientRect: () => this.triggerRef.getBoundingClientRect(),
|
|
362
|
+
};
|
|
363
|
+
const middlewareList = [
|
|
364
|
+
offset(this.offsetDistance),
|
|
212
365
|
flip({
|
|
213
366
|
fallbackPlacements: ['top', 'bottom', 'left', 'right', 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'left-start', 'left-end', 'right-start', 'right-end'],
|
|
214
367
|
}),
|
|
@@ -216,109 +369,102 @@ export class BcmLinked {
|
|
|
216
369
|
padding: 8,
|
|
217
370
|
}),
|
|
218
371
|
];
|
|
219
|
-
|
|
372
|
+
if (this.showArrow && this.arrowRef) {
|
|
373
|
+
middlewareList.push(arrow({ element: this.arrowRef }));
|
|
374
|
+
}
|
|
375
|
+
const { x, y, placement, middlewareData } = await computePosition(virtualElement, this.floatingRef, {
|
|
220
376
|
placement: this.placement,
|
|
221
|
-
middleware,
|
|
377
|
+
middleware: middlewareList,
|
|
222
378
|
strategy: 'fixed',
|
|
223
379
|
});
|
|
224
|
-
Object.assign(this.
|
|
380
|
+
Object.assign(this.floatingRef.style, {
|
|
225
381
|
left: `${x}px`,
|
|
226
382
|
top: `${y}px`,
|
|
227
|
-
zIndex: this.zIndex.toString(),
|
|
228
383
|
});
|
|
229
|
-
//
|
|
230
|
-
if (this.arrow) {
|
|
231
|
-
|
|
384
|
+
// Arrow positioning
|
|
385
|
+
if (this.showArrow && this.arrowRef && middlewareData.arrow) {
|
|
386
|
+
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
387
|
+
const staticSide = {
|
|
388
|
+
top: 'bottom',
|
|
389
|
+
right: 'left',
|
|
390
|
+
bottom: 'top',
|
|
391
|
+
left: 'right',
|
|
392
|
+
}[placement.split('-')[0]];
|
|
393
|
+
Object.assign(this.arrowRef.style, {
|
|
394
|
+
left: arrowX != null ? `${arrowX}px` : '',
|
|
395
|
+
top: arrowY != null ? `${arrowY}px` : '',
|
|
396
|
+
right: '',
|
|
397
|
+
bottom: '',
|
|
398
|
+
[staticSide]: '-4px',
|
|
399
|
+
});
|
|
232
400
|
}
|
|
401
|
+
this.floatingRef.setAttribute('data-placement', placement);
|
|
233
402
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
const arrow = (_a = this.floatingEl) === null || _a === void 0 ? void 0 : _a.querySelector('.floating-arrow');
|
|
237
|
-
if (!arrow)
|
|
403
|
+
startAutoUpdate() {
|
|
404
|
+
if (!this.triggerRef || !this.floatingRef)
|
|
238
405
|
return;
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
406
|
+
this.cleanupAutoUpdate = autoUpdate(this.triggerRef, this.floatingRef, () => this.calculatePosition(), {
|
|
407
|
+
ancestorScroll: true,
|
|
408
|
+
ancestorResize: true,
|
|
409
|
+
elementResize: true,
|
|
410
|
+
layoutShift: true,
|
|
411
|
+
});
|
|
244
412
|
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
this.bcmShow.emit();
|
|
249
|
-
// Portalling: Move the floating element to the body
|
|
250
|
-
if (this.appendToBody && this.floatingEl) {
|
|
251
|
-
this.originalParent = this.floatingEl.parentNode;
|
|
252
|
-
this.originalNextSibling = this.floatingEl.nextSibling;
|
|
253
|
-
document.body.appendChild(this.floatingEl);
|
|
254
|
-
}
|
|
255
|
-
this.isVisible = true;
|
|
256
|
-
// Use requestAnimationFrame to ensure the element is visible before positioning
|
|
257
|
-
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
258
|
-
await this.updatePosition();
|
|
413
|
+
stopAutoUpdate() {
|
|
414
|
+
this.cleanupAutoUpdate?.();
|
|
415
|
+
this.cleanupAutoUpdate = undefined;
|
|
259
416
|
}
|
|
260
|
-
|
|
261
|
-
if (!this.isVisible)
|
|
262
|
-
|
|
263
|
-
this.bcmHide.emit();
|
|
264
|
-
this.isVisible = false;
|
|
265
|
-
// Portalling: Restore the floating element to its original position
|
|
266
|
-
if (this.appendToBody && this.floatingEl && this.originalParent) {
|
|
267
|
-
if (this.originalNextSibling) {
|
|
268
|
-
this.originalParent.insertBefore(this.floatingEl, this.originalNextSibling);
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
this.originalParent.appendChild(this.floatingEl);
|
|
272
|
-
}
|
|
273
|
-
this.originalParent = undefined;
|
|
274
|
-
this.originalNextSibling = undefined;
|
|
417
|
+
handleToggle = (event) => {
|
|
418
|
+
if (event.newState === 'open' && !this.isVisible) {
|
|
419
|
+
this.isVisible = true;
|
|
275
420
|
}
|
|
276
|
-
if (
|
|
277
|
-
this.
|
|
421
|
+
else if (event.newState === 'closed' && this.isVisible) {
|
|
422
|
+
this.isVisible = false;
|
|
278
423
|
}
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
424
|
+
};
|
|
425
|
+
componentDidLoad() {
|
|
426
|
+
// Toggle event listener (Popover API)
|
|
427
|
+
this.floatingRef?.addEventListener('toggle', this.handleToggle);
|
|
428
|
+
// Initial trigger setup - manually trigger slot change handler
|
|
429
|
+
this.handleTriggerSlotChange();
|
|
430
|
+
// Initial state sync
|
|
431
|
+
if (this.visible) {
|
|
432
|
+
this.showInternal();
|
|
286
433
|
}
|
|
287
434
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
this.resizeObserver = new ResizeObserver(() => {
|
|
435
|
+
disconnectedCallback() {
|
|
436
|
+
this.clearTimeouts();
|
|
437
|
+
this.stopAutoUpdate();
|
|
438
|
+
this.removeTriggerListeners();
|
|
439
|
+
this.removeOutsideClickListener();
|
|
440
|
+
if (this.floatingRef) {
|
|
441
|
+
this.floatingRef.removeEventListener('toggle', this.handleToggle);
|
|
296
442
|
if (this.isVisible) {
|
|
297
|
-
|
|
443
|
+
try {
|
|
444
|
+
this.floatingRef.hidePopover();
|
|
445
|
+
}
|
|
446
|
+
catch (e) {
|
|
447
|
+
// Element might already be removed
|
|
448
|
+
}
|
|
298
449
|
}
|
|
299
|
-
}
|
|
300
|
-
this.resizeObserver.observe(this.floatingEl);
|
|
450
|
+
}
|
|
301
451
|
}
|
|
452
|
+
linkedClass = tv({
|
|
453
|
+
slots: {
|
|
454
|
+
wrapper: 'inline-block',
|
|
455
|
+
floating: ['bcm-ui-element', 'fixed', 'bg-color-basic-base', 'rounded-md', 'shadow-lg', 'border', 'border-color-basic-subtle'],
|
|
456
|
+
arrow: ['absolute', 'w-2', 'h-2', 'bg-color-basic-base', 'border', 'border-color-basic-subtle', 'rotate-45'],
|
|
457
|
+
content: 'bg-color-basic-base',
|
|
458
|
+
},
|
|
459
|
+
});
|
|
302
460
|
render() {
|
|
303
|
-
const
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
'
|
|
307
|
-
'floating-with-arrow': this.arrow,
|
|
308
|
-
'floating-destroy-on-hide': this.destroyOnHide,
|
|
309
|
-
};
|
|
310
|
-
return (h(Host, { key: 'f5835cc1b6044476e66402d23a3becf18d3f2049' }, h("div", { key: '2c7f92bbe85bc938a767734ef4b27702247fb390', class: floatingClasses, style: {
|
|
311
|
-
position: 'fixed',
|
|
312
|
-
top: '0px',
|
|
313
|
-
left: '0px',
|
|
314
|
-
zIndex: this.zIndex.toString(),
|
|
315
|
-
display: this.isVisible ? 'block' : 'none',
|
|
316
|
-
visibility: this.isVisible ? 'visible' : 'hidden',
|
|
317
|
-
opacity: this.isVisible ? '1' : '0',
|
|
318
|
-
pointerEvents: this.isVisible ? 'auto' : 'none',
|
|
319
|
-
} }, this.arrow && h("div", { key: 'f6eedac02b29b3ca00a9a84eea940ac89089f30c', class: "floating-arrow" }), h("div", { key: '7cb19f085de1d77a41fd9897be90999e78a0a54d', class: "floating-wrapper" }, h("slot", { key: 'a4b4289642850e3c2f7f27771b3d28bc41c8248a' }))), h("div", { key: '61cd7af9a4a47c87c308e1e67f96efb987c97312', style: { display: 'none' } }, h("slot", { key: '7160df275f5c7c66733158f95266598d0d207a17', name: "fallback" }))));
|
|
461
|
+
const { wrapper, floating, arrow, content } = this.linkedClass();
|
|
462
|
+
return (h(Host, { key: 'f58760b6589329f9eabc42f39b6503fad10cf330' }, h("div", { key: 'adb9003eec4ca786bdddc657ba28cbc0a80baf57', class: wrapper() }, h("slot", { key: '61323463e76c395668d02288e5bdcb44826a31ea', name: "trigger", onSlotchange: this.handleTriggerSlotChange }), h("div", { key: '3b395b18152cd302b4511ef89928374f33012594', ref: el => (this.floatingRef = el), id: this.componentId, part: "floating", class: floating(),
|
|
463
|
+
// @ts-ignore - popover is a valid HTML attribute
|
|
464
|
+
popover: "manual", role: "dialog" }, this.showArrow && h("div", { key: '3f5311d21f7fce74c94ac0435a8d2fc076036b10', ref: el => (this.arrowRef = el), part: "arrow", class: arrow() }), h("div", { key: 'ee41f30c7f73c113f129f938fd721476658b5744', part: "content", class: content() }, h("slot", { key: '106502e2f8db8fdc90412fcf59da40d2de377988' }))))));
|
|
320
465
|
}
|
|
321
466
|
static get is() { return "bcm-linked"; }
|
|
467
|
+
static get encapsulation() { return "shadow"; }
|
|
322
468
|
static get originalStyleUrls() {
|
|
323
469
|
return {
|
|
324
470
|
"$": ["linked.css"]
|
|
@@ -331,51 +477,31 @@ export class BcmLinked {
|
|
|
331
477
|
}
|
|
332
478
|
static get properties() {
|
|
333
479
|
return {
|
|
334
|
-
"
|
|
335
|
-
"type": "
|
|
336
|
-
"
|
|
337
|
-
"mutable": false,
|
|
480
|
+
"visible": {
|
|
481
|
+
"type": "boolean",
|
|
482
|
+
"mutable": true,
|
|
338
483
|
"complexType": {
|
|
339
|
-
"original": "
|
|
340
|
-
"resolved": "
|
|
484
|
+
"original": "boolean",
|
|
485
|
+
"resolved": "boolean",
|
|
341
486
|
"references": {}
|
|
342
487
|
},
|
|
343
488
|
"required": false,
|
|
344
|
-
"optional":
|
|
489
|
+
"optional": false,
|
|
345
490
|
"docs": {
|
|
346
|
-
"tags": [
|
|
491
|
+
"tags": [{
|
|
492
|
+
"name": "prop",
|
|
493
|
+
"text": "{boolean} visible - Controls the visibility state of the floating element.\nCan be set programmatically or toggled by user interaction.\nDefault: false"
|
|
494
|
+
}],
|
|
347
495
|
"text": ""
|
|
348
496
|
},
|
|
349
497
|
"getter": false,
|
|
350
498
|
"setter": false,
|
|
351
|
-
"reflect": true
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
"type": "unknown",
|
|
355
|
-
"attribute": "target-element",
|
|
356
|
-
"mutable": false,
|
|
357
|
-
"complexType": {
|
|
358
|
-
"original": "HTMLElement",
|
|
359
|
-
"resolved": "HTMLElement",
|
|
360
|
-
"references": {
|
|
361
|
-
"HTMLElement": {
|
|
362
|
-
"location": "global",
|
|
363
|
-
"id": "global::HTMLElement"
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
},
|
|
367
|
-
"required": false,
|
|
368
|
-
"optional": true,
|
|
369
|
-
"docs": {
|
|
370
|
-
"tags": [],
|
|
371
|
-
"text": ""
|
|
372
|
-
},
|
|
373
|
-
"getter": false,
|
|
374
|
-
"setter": false
|
|
499
|
+
"reflect": true,
|
|
500
|
+
"attribute": "visible",
|
|
501
|
+
"defaultValue": "false"
|
|
375
502
|
},
|
|
376
503
|
"trigger": {
|
|
377
504
|
"type": "string",
|
|
378
|
-
"attribute": "trigger",
|
|
379
505
|
"mutable": false,
|
|
380
506
|
"complexType": {
|
|
381
507
|
"original": "TriggerType",
|
|
@@ -391,17 +517,20 @@ export class BcmLinked {
|
|
|
391
517
|
"required": false,
|
|
392
518
|
"optional": false,
|
|
393
519
|
"docs": {
|
|
394
|
-
"tags": [
|
|
520
|
+
"tags": [{
|
|
521
|
+
"name": "prop",
|
|
522
|
+
"text": "{TriggerType} trigger - Defines the interaction type to show/hide the floating element.\n'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave,\n'focus' shows on focus and hides on blur, 'manual' requires programmatic control.\nDefault: 'click'"
|
|
523
|
+
}],
|
|
395
524
|
"text": ""
|
|
396
525
|
},
|
|
397
526
|
"getter": false,
|
|
398
527
|
"setter": false,
|
|
399
528
|
"reflect": false,
|
|
529
|
+
"attribute": "trigger",
|
|
400
530
|
"defaultValue": "'click'"
|
|
401
531
|
},
|
|
402
532
|
"placement": {
|
|
403
533
|
"type": "string",
|
|
404
|
-
"attribute": "placement",
|
|
405
534
|
"mutable": false,
|
|
406
535
|
"complexType": {
|
|
407
536
|
"original": "Placement",
|
|
@@ -417,17 +546,20 @@ export class BcmLinked {
|
|
|
417
546
|
"required": false,
|
|
418
547
|
"optional": false,
|
|
419
548
|
"docs": {
|
|
420
|
-
"tags": [
|
|
549
|
+
"tags": [{
|
|
550
|
+
"name": "prop",
|
|
551
|
+
"text": "{Placement} placement - Defines the position of the floating element relative to the trigger.\nDefault: 'bottom-start'"
|
|
552
|
+
}],
|
|
421
553
|
"text": ""
|
|
422
554
|
},
|
|
423
555
|
"getter": false,
|
|
424
556
|
"setter": false,
|
|
425
557
|
"reflect": false,
|
|
558
|
+
"attribute": "placement",
|
|
426
559
|
"defaultValue": "'bottom-start'"
|
|
427
560
|
},
|
|
428
561
|
"showDelay": {
|
|
429
562
|
"type": "number",
|
|
430
|
-
"attribute": "show-delay",
|
|
431
563
|
"mutable": false,
|
|
432
564
|
"complexType": {
|
|
433
565
|
"original": "number",
|
|
@@ -437,17 +569,20 @@ export class BcmLinked {
|
|
|
437
569
|
"required": false,
|
|
438
570
|
"optional": false,
|
|
439
571
|
"docs": {
|
|
440
|
-
"tags": [
|
|
572
|
+
"tags": [{
|
|
573
|
+
"name": "prop",
|
|
574
|
+
"text": "{number} showDelay - Delay in milliseconds before showing the floating element.\nDefault: 0"
|
|
575
|
+
}],
|
|
441
576
|
"text": ""
|
|
442
577
|
},
|
|
443
578
|
"getter": false,
|
|
444
579
|
"setter": false,
|
|
445
580
|
"reflect": false,
|
|
581
|
+
"attribute": "show-delay",
|
|
446
582
|
"defaultValue": "0"
|
|
447
583
|
},
|
|
448
584
|
"hideDelay": {
|
|
449
585
|
"type": "number",
|
|
450
|
-
"attribute": "hide-delay",
|
|
451
586
|
"mutable": false,
|
|
452
587
|
"complexType": {
|
|
453
588
|
"original": "number",
|
|
@@ -457,17 +592,20 @@ export class BcmLinked {
|
|
|
457
592
|
"required": false,
|
|
458
593
|
"optional": false,
|
|
459
594
|
"docs": {
|
|
460
|
-
"tags": [
|
|
595
|
+
"tags": [{
|
|
596
|
+
"name": "prop",
|
|
597
|
+
"text": "{number} hideDelay - Delay in milliseconds before hiding the floating element.\nDefault: 0"
|
|
598
|
+
}],
|
|
461
599
|
"text": ""
|
|
462
600
|
},
|
|
463
601
|
"getter": false,
|
|
464
602
|
"setter": false,
|
|
465
603
|
"reflect": false,
|
|
604
|
+
"attribute": "hide-delay",
|
|
466
605
|
"defaultValue": "0"
|
|
467
606
|
},
|
|
468
|
-
"
|
|
607
|
+
"offsetDistance": {
|
|
469
608
|
"type": "number",
|
|
470
|
-
"attribute": "offset",
|
|
471
609
|
"mutable": false,
|
|
472
610
|
"complexType": {
|
|
473
611
|
"original": "number",
|
|
@@ -477,17 +615,20 @@ export class BcmLinked {
|
|
|
477
615
|
"required": false,
|
|
478
616
|
"optional": false,
|
|
479
617
|
"docs": {
|
|
480
|
-
"tags": [
|
|
618
|
+
"tags": [{
|
|
619
|
+
"name": "prop",
|
|
620
|
+
"text": "{number} offsetDistance - Distance in pixels between the floating element and the trigger.\nDefault: 8"
|
|
621
|
+
}],
|
|
481
622
|
"text": ""
|
|
482
623
|
},
|
|
483
624
|
"getter": false,
|
|
484
625
|
"setter": false,
|
|
485
626
|
"reflect": false,
|
|
627
|
+
"attribute": "offset-distance",
|
|
486
628
|
"defaultValue": "8"
|
|
487
629
|
},
|
|
488
|
-
"
|
|
630
|
+
"showArrow": {
|
|
489
631
|
"type": "boolean",
|
|
490
|
-
"attribute": "arrow",
|
|
491
632
|
"mutable": false,
|
|
492
633
|
"complexType": {
|
|
493
634
|
"original": "boolean",
|
|
@@ -497,17 +638,20 @@ export class BcmLinked {
|
|
|
497
638
|
"required": false,
|
|
498
639
|
"optional": false,
|
|
499
640
|
"docs": {
|
|
500
|
-
"tags": [
|
|
641
|
+
"tags": [{
|
|
642
|
+
"name": "prop",
|
|
643
|
+
"text": "{boolean} showArrow - Whether to show an arrow pointing to the trigger element.\nDefault: true"
|
|
644
|
+
}],
|
|
501
645
|
"text": ""
|
|
502
646
|
},
|
|
503
647
|
"getter": false,
|
|
504
648
|
"setter": false,
|
|
505
649
|
"reflect": false,
|
|
506
|
-
"
|
|
650
|
+
"attribute": "show-arrow",
|
|
651
|
+
"defaultValue": "true"
|
|
507
652
|
},
|
|
508
653
|
"disabled": {
|
|
509
654
|
"type": "boolean",
|
|
510
|
-
"attribute": "disabled",
|
|
511
655
|
"mutable": false,
|
|
512
656
|
"complexType": {
|
|
513
657
|
"original": "boolean",
|
|
@@ -517,37 +661,20 @@ export class BcmLinked {
|
|
|
517
661
|
"required": false,
|
|
518
662
|
"optional": false,
|
|
519
663
|
"docs": {
|
|
520
|
-
"tags": [
|
|
664
|
+
"tags": [{
|
|
665
|
+
"name": "prop",
|
|
666
|
+
"text": "{boolean} disabled - Disables the floating element, preventing it from showing.\nDefault: false"
|
|
667
|
+
}],
|
|
521
668
|
"text": ""
|
|
522
669
|
},
|
|
523
670
|
"getter": false,
|
|
524
671
|
"setter": false,
|
|
525
672
|
"reflect": false,
|
|
673
|
+
"attribute": "disabled",
|
|
526
674
|
"defaultValue": "false"
|
|
527
675
|
},
|
|
528
|
-
"
|
|
529
|
-
"type": "number",
|
|
530
|
-
"attribute": "z-index",
|
|
531
|
-
"mutable": false,
|
|
532
|
-
"complexType": {
|
|
533
|
-
"original": "number",
|
|
534
|
-
"resolved": "number",
|
|
535
|
-
"references": {}
|
|
536
|
-
},
|
|
537
|
-
"required": false,
|
|
538
|
-
"optional": false,
|
|
539
|
-
"docs": {
|
|
540
|
-
"tags": [],
|
|
541
|
-
"text": ""
|
|
542
|
-
},
|
|
543
|
-
"getter": false,
|
|
544
|
-
"setter": false,
|
|
545
|
-
"reflect": false,
|
|
546
|
-
"defaultValue": "1000"
|
|
547
|
-
},
|
|
548
|
-
"appendToBody": {
|
|
676
|
+
"closeOnOutsideClick": {
|
|
549
677
|
"type": "boolean",
|
|
550
|
-
"attribute": "append-to-body",
|
|
551
678
|
"mutable": false,
|
|
552
679
|
"complexType": {
|
|
553
680
|
"original": "boolean",
|
|
@@ -557,17 +684,20 @@ export class BcmLinked {
|
|
|
557
684
|
"required": false,
|
|
558
685
|
"optional": false,
|
|
559
686
|
"docs": {
|
|
560
|
-
"tags": [
|
|
687
|
+
"tags": [{
|
|
688
|
+
"name": "prop",
|
|
689
|
+
"text": "{boolean} closeOnOutsideClick - Whether to close when clicking outside.\nDefault: true"
|
|
690
|
+
}],
|
|
561
691
|
"text": ""
|
|
562
692
|
},
|
|
563
693
|
"getter": false,
|
|
564
694
|
"setter": false,
|
|
565
695
|
"reflect": false,
|
|
566
|
-
"
|
|
696
|
+
"attribute": "close-on-outside-click",
|
|
697
|
+
"defaultValue": "true"
|
|
567
698
|
},
|
|
568
|
-
"
|
|
699
|
+
"closeOnEscape": {
|
|
569
700
|
"type": "boolean",
|
|
570
|
-
"attribute": "destroy-on-hide",
|
|
571
701
|
"mutable": false,
|
|
572
702
|
"complexType": {
|
|
573
703
|
"original": "boolean",
|
|
@@ -577,31 +707,73 @@ export class BcmLinked {
|
|
|
577
707
|
"required": false,
|
|
578
708
|
"optional": false,
|
|
579
709
|
"docs": {
|
|
580
|
-
"tags": [
|
|
710
|
+
"tags": [{
|
|
711
|
+
"name": "prop",
|
|
712
|
+
"text": "{boolean} closeOnEscape - Whether to close when pressing Escape key.\nDefault: true"
|
|
713
|
+
}],
|
|
581
714
|
"text": ""
|
|
582
715
|
},
|
|
583
716
|
"getter": false,
|
|
584
717
|
"setter": false,
|
|
585
718
|
"reflect": false,
|
|
586
|
-
"
|
|
719
|
+
"attribute": "close-on-escape",
|
|
720
|
+
"defaultValue": "true"
|
|
587
721
|
}
|
|
588
722
|
};
|
|
589
723
|
}
|
|
590
724
|
static get states() {
|
|
591
725
|
return {
|
|
592
|
-
"isVisible": {}
|
|
593
|
-
"isReady": {}
|
|
726
|
+
"isVisible": {}
|
|
594
727
|
};
|
|
595
728
|
}
|
|
596
729
|
static get events() {
|
|
597
730
|
return [{
|
|
731
|
+
"method": "bcmBeforeShow",
|
|
732
|
+
"name": "bcmBeforeShow",
|
|
733
|
+
"bubbles": false,
|
|
734
|
+
"cancelable": true,
|
|
735
|
+
"composed": false,
|
|
736
|
+
"docs": {
|
|
737
|
+
"tags": [{
|
|
738
|
+
"name": "event",
|
|
739
|
+
"text": "bcmBeforeShow - Emitted before the floating element shows."
|
|
740
|
+
}],
|
|
741
|
+
"text": ""
|
|
742
|
+
},
|
|
743
|
+
"complexType": {
|
|
744
|
+
"original": "void",
|
|
745
|
+
"resolved": "void",
|
|
746
|
+
"references": {}
|
|
747
|
+
}
|
|
748
|
+
}, {
|
|
598
749
|
"method": "bcmShow",
|
|
599
750
|
"name": "bcmShow",
|
|
600
|
-
"bubbles":
|
|
751
|
+
"bubbles": false,
|
|
601
752
|
"cancelable": true,
|
|
602
|
-
"composed":
|
|
753
|
+
"composed": false,
|
|
603
754
|
"docs": {
|
|
604
|
-
"tags": [
|
|
755
|
+
"tags": [{
|
|
756
|
+
"name": "event",
|
|
757
|
+
"text": "bcmShow - Emitted when the floating element is shown."
|
|
758
|
+
}],
|
|
759
|
+
"text": ""
|
|
760
|
+
},
|
|
761
|
+
"complexType": {
|
|
762
|
+
"original": "void",
|
|
763
|
+
"resolved": "void",
|
|
764
|
+
"references": {}
|
|
765
|
+
}
|
|
766
|
+
}, {
|
|
767
|
+
"method": "bcmBeforeHide",
|
|
768
|
+
"name": "bcmBeforeHide",
|
|
769
|
+
"bubbles": false,
|
|
770
|
+
"cancelable": true,
|
|
771
|
+
"composed": false,
|
|
772
|
+
"docs": {
|
|
773
|
+
"tags": [{
|
|
774
|
+
"name": "event",
|
|
775
|
+
"text": "bcmBeforeHide - Emitted before the floating element hides."
|
|
776
|
+
}],
|
|
605
777
|
"text": ""
|
|
606
778
|
},
|
|
607
779
|
"complexType": {
|
|
@@ -612,11 +784,14 @@ export class BcmLinked {
|
|
|
612
784
|
}, {
|
|
613
785
|
"method": "bcmHide",
|
|
614
786
|
"name": "bcmHide",
|
|
615
|
-
"bubbles":
|
|
787
|
+
"bubbles": false,
|
|
616
788
|
"cancelable": true,
|
|
617
|
-
"composed":
|
|
789
|
+
"composed": false,
|
|
618
790
|
"docs": {
|
|
619
|
-
"tags": [
|
|
791
|
+
"tags": [{
|
|
792
|
+
"name": "event",
|
|
793
|
+
"text": "bcmHide - Emitted when the floating element is hidden."
|
|
794
|
+
}],
|
|
620
795
|
"text": ""
|
|
621
796
|
},
|
|
622
797
|
"complexType": {
|
|
@@ -627,11 +802,14 @@ export class BcmLinked {
|
|
|
627
802
|
}, {
|
|
628
803
|
"method": "bcmShown",
|
|
629
804
|
"name": "bcmShown",
|
|
630
|
-
"bubbles":
|
|
805
|
+
"bubbles": false,
|
|
631
806
|
"cancelable": true,
|
|
632
|
-
"composed":
|
|
807
|
+
"composed": false,
|
|
633
808
|
"docs": {
|
|
634
|
-
"tags": [
|
|
809
|
+
"tags": [{
|
|
810
|
+
"name": "event",
|
|
811
|
+
"text": "bcmShown - Emitted after the floating element is fully shown (after animation)."
|
|
812
|
+
}],
|
|
635
813
|
"text": ""
|
|
636
814
|
},
|
|
637
815
|
"complexType": {
|
|
@@ -642,11 +820,14 @@ export class BcmLinked {
|
|
|
642
820
|
}, {
|
|
643
821
|
"method": "bcmHidden",
|
|
644
822
|
"name": "bcmHidden",
|
|
645
|
-
"bubbles":
|
|
823
|
+
"bubbles": false,
|
|
646
824
|
"cancelable": true,
|
|
647
|
-
"composed":
|
|
825
|
+
"composed": false,
|
|
648
826
|
"docs": {
|
|
649
|
-
"tags": [
|
|
827
|
+
"tags": [{
|
|
828
|
+
"name": "event",
|
|
829
|
+
"text": "bcmHidden - Emitted after the floating element is fully hidden (after animation)."
|
|
830
|
+
}],
|
|
650
831
|
"text": ""
|
|
651
832
|
},
|
|
652
833
|
"complexType": {
|
|
@@ -671,7 +852,7 @@ export class BcmLinked {
|
|
|
671
852
|
"return": "Promise<void>"
|
|
672
853
|
},
|
|
673
854
|
"docs": {
|
|
674
|
-
"text": "",
|
|
855
|
+
"text": "Programmatically shows the floating element.\nRespects the showDelay prop.",
|
|
675
856
|
"tags": []
|
|
676
857
|
}
|
|
677
858
|
},
|
|
@@ -688,7 +869,7 @@ export class BcmLinked {
|
|
|
688
869
|
"return": "Promise<void>"
|
|
689
870
|
},
|
|
690
871
|
"docs": {
|
|
691
|
-
"text": "",
|
|
872
|
+
"text": "Programmatically hides the floating element.\nRespects the hideDelay prop.",
|
|
692
873
|
"tags": []
|
|
693
874
|
}
|
|
694
875
|
},
|
|
@@ -705,11 +886,11 @@ export class BcmLinked {
|
|
|
705
886
|
"return": "Promise<void>"
|
|
706
887
|
},
|
|
707
888
|
"docs": {
|
|
708
|
-
"text": "",
|
|
889
|
+
"text": "Toggles the floating element visibility.",
|
|
709
890
|
"tags": []
|
|
710
891
|
}
|
|
711
892
|
},
|
|
712
|
-
"
|
|
893
|
+
"updatePosition": {
|
|
713
894
|
"complexType": {
|
|
714
895
|
"signature": "() => Promise<void>",
|
|
715
896
|
"parameters": [],
|
|
@@ -722,7 +903,7 @@ export class BcmLinked {
|
|
|
722
903
|
"return": "Promise<void>"
|
|
723
904
|
},
|
|
724
905
|
"docs": {
|
|
725
|
-
"text": "",
|
|
906
|
+
"text": "Updates the position of the floating element.\nUseful when the trigger element moves or resizes.",
|
|
726
907
|
"tags": []
|
|
727
908
|
}
|
|
728
909
|
}
|
|
@@ -731,14 +912,29 @@ export class BcmLinked {
|
|
|
731
912
|
static get elementRef() { return "host"; }
|
|
732
913
|
static get watchers() {
|
|
733
914
|
return [{
|
|
734
|
-
"propName": "
|
|
735
|
-
"methodName": "
|
|
915
|
+
"propName": "visible",
|
|
916
|
+
"methodName": "handleVisibleChange"
|
|
736
917
|
}, {
|
|
737
|
-
"propName": "
|
|
738
|
-
"methodName": "
|
|
918
|
+
"propName": "disabled",
|
|
919
|
+
"methodName": "handleDisabledChange"
|
|
739
920
|
}, {
|
|
740
|
-
"propName": "
|
|
741
|
-
"methodName": "
|
|
921
|
+
"propName": "placement",
|
|
922
|
+
"methodName": "handlePositionPropsChange"
|
|
923
|
+
}, {
|
|
924
|
+
"propName": "offsetDistance",
|
|
925
|
+
"methodName": "handlePositionPropsChange"
|
|
926
|
+
}, {
|
|
927
|
+
"propName": "showArrow",
|
|
928
|
+
"methodName": "handlePositionPropsChange"
|
|
929
|
+
}];
|
|
930
|
+
}
|
|
931
|
+
static get listeners() {
|
|
932
|
+
return [{
|
|
933
|
+
"name": "keydown",
|
|
934
|
+
"method": "handleKeyDown",
|
|
935
|
+
"target": "document",
|
|
936
|
+
"capture": false,
|
|
937
|
+
"passive": false
|
|
742
938
|
}];
|
|
743
939
|
}
|
|
744
940
|
}
|