bromcom-ui-next 0.1.30 → 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 -0
- package/dist/bromcom-ui/bcm-modal.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 -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 -0
- package/dist/bromcom-ui/bromcom-ui.esm.js +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-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-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-1507908f.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-496014ca.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 +20 -18
- package/dist/cjs/bcm-accordion-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-accordion.cjs.entry.js +73 -56
- package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-alert.cjs.entry.js +21 -21
- package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-avatar.cjs.entry.js +22 -12
- package/dist/cjs/bcm-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-badge.cjs.entry.js +114 -82
- package/dist/cjs/bcm-badge.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-basic-badge.cjs.entry.js +73 -59
- package/dist/cjs/bcm-basic-badge.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js +36 -24
- 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 -174
- package/dist/cjs/bcm-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-chip.cjs.entry.js +38 -35
- package/dist/cjs/bcm-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-divider.cjs.entry.js +55 -55
- 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 -33
- package/dist/cjs/bcm-dropdown-item.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-dropdown.cjs.entry.js +18 -17
- 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 -158
- package/dist/cjs/bcm-input.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-linked.cjs.entry.js +452 -0
- package/dist/cjs/bcm-linked.entry.cjs.js.map +1 -0
- 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 +381 -0
- package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-popover.cjs.entry.js +451 -0
- package/dist/cjs/bcm-popover.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-radio-group.cjs.entry.js +103 -80
- package/dist/cjs/bcm-radio-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-radio.cjs.entry.js +239 -106
- 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 -4
- package/dist/cjs/bcm-shortcut.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-switch.cjs.entry.js +281 -148
- 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 -237
- package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-text.cjs.entry.js +86 -85
- package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-textarea.cjs.entry.js +224 -154
- package/dist/cjs/bcm-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-tooltip.cjs.entry.js +414 -0
- package/dist/cjs/bcm-tooltip.entry.cjs.js.map +1 -0
- package/dist/cjs/bromcom-ui.cjs.js +2 -2
- package/dist/cjs/floating-ui.dom-S9nP6zZt.js +1622 -0
- package/dist/{bromcom-ui/floating-ui.dom-ltNPqX34.js.map → cjs/floating-ui.dom-S9nP6zZt.js.map} +1 -1
- package/dist/cjs/{index-CmYzUr-k.js → index-1Qal-onT.js} +111 -33
- package/dist/cjs/index-1Qal-onT.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- 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 +4 -5
- 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 +72 -55
- 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 +20 -18
- package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -1
- package/dist/collection/components/alert/alert.component.js +19 -21
- 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 +20 -12
- 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 +111 -81
- 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 +70 -58
- 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 +105 -84
- 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 +34 -23
- 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 +355 -236
- 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 +35 -34
- 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 +53 -55
- package/dist/collection/components/divider/divider.component.js.map +1 -1
- package/dist/collection/components/drawer/drawer.component.js +168 -144
- package/dist/collection/components/drawer/drawer.component.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.component.js +16 -16
- package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.css +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.component.js +34 -32
- 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 +241 -155
- package/dist/collection/components/input/input.component.js.map +1 -1
- package/dist/collection/components/linked/linked.component.js +160 -138
- 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 +180 -156
- package/dist/collection/components/modal/modal.component.js.map +1 -1
- package/dist/collection/components/pop-confirm/pop-confirm.component.js +190 -159
- 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 +240 -212
- 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 +282 -106
- package/dist/collection/components/radio/radio.component.js.map +1 -1
- package/dist/collection/components/radio-group/radio-group.component.js +102 -80
- 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 +354 -139
- 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 +4 -5
- package/dist/collection/components/shortcut/shortcut.js.map +1 -1
- package/dist/collection/components/switch/switch.component.js +350 -280
- 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 +221 -352
- package/dist/collection/components/tabs/tabs.component.js.map +1 -1
- package/dist/collection/components/text/text.component.js +84 -85
- package/dist/collection/components/text/text.component.js.map +1 -1
- package/dist/collection/components/text/text.css +1 -1
- package/dist/collection/components/textarea/textarea.component.js +216 -153
- package/dist/collection/components/textarea/textarea.component.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.component.js +164 -154
- package/dist/collection/components/tooltip/tooltip.component.js.map +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 +19 -17
- package/dist/components/bcm-accordion-group.js.map +1 -1
- package/dist/components/bcm-accordion.js +72 -55
- package/dist/components/bcm-accordion.js.map +1 -1
- package/dist/components/bcm-alert.js +1 -114
- package/dist/components/bcm-alert.js.map +1 -1
- package/dist/components/bcm-avatar.js +22 -12
- package/dist/components/bcm-avatar.js.map +1 -1
- package/dist/components/bcm-badge.js +1 -1
- package/dist/components/bcm-basic-badge.js +72 -58
- package/dist/components/bcm-basic-badge.js.map +1 -1
- package/dist/components/bcm-button-group.js +35 -23
- package/dist/components/bcm-button-group.js.map +1 -1
- package/dist/components/bcm-button.js +1 -1
- package/dist/components/bcm-checkbox.js +296 -184
- package/dist/components/bcm-checkbox.js.map +1 -1
- package/dist/components/bcm-chip.js +37 -34
- package/dist/components/bcm-chip.js.map +1 -1
- package/dist/components/bcm-divider.js +54 -54
- package/dist/components/bcm-divider.js.map +1 -1
- package/dist/components/bcm-drawer.js +169 -144
- package/dist/components/bcm-drawer.js.map +1 -1
- package/dist/components/bcm-dropdown-item.js +35 -32
- package/dist/components/bcm-dropdown-item.js.map +1 -1
- package/dist/components/bcm-dropdown.js +19 -18
- 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 +244 -158
- package/dist/components/bcm-input.js.map +1 -1
- package/dist/components/bcm-linked.js +1 -1
- package/dist/components/bcm-modal.js +181 -156
- package/dist/components/bcm-modal.js.map +1 -1
- package/dist/components/bcm-pop-confirm.js +192 -160
- package/dist/components/bcm-pop-confirm.js.map +1 -1
- package/dist/components/bcm-popover.js +242 -213
- package/dist/components/bcm-popover.js.map +1 -1
- package/dist/components/bcm-radio-group.js +102 -79
- package/dist/components/bcm-radio-group.js.map +1 -1
- package/dist/components/bcm-radio.js +241 -108
- 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 +234 -115
- package/dist/components/bcm-segmented-picker.js.map +1 -1
- package/dist/components/bcm-shortcut.js +4 -3
- package/dist/components/bcm-shortcut.js.map +1 -1
- package/dist/components/bcm-switch.js +292 -156
- 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 +196 -247
- package/dist/components/bcm-tabs.js.map +1 -1
- package/dist/components/bcm-text.js +85 -84
- package/dist/components/bcm-text.js.map +1 -1
- package/dist/components/bcm-textarea.js +218 -154
- package/dist/components/bcm-textarea.js.map +1 -1
- package/dist/components/bcm-tooltip.js +164 -153
- package/dist/components/bcm-tooltip.js.map +1 -1
- package/dist/components/index.js +105 -32
- 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-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-CsIBm0J5.js → p-xQIzBLsS.js} +108 -85
- package/dist/components/p-xQIzBLsS.js.map +1 -0
- package/dist/components/{p-6VLsKZvR.js → p-z9ESseGb.js} +163 -140
- 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 +20 -18
- package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
- package/dist/esm/bcm-accordion.entry.js +73 -56
- package/dist/esm/bcm-accordion.entry.js.map +1 -1
- package/dist/esm/bcm-alert.entry.js +21 -21
- package/dist/esm/bcm-alert.entry.js.map +1 -1
- package/dist/esm/bcm-avatar.entry.js +22 -12
- package/dist/esm/bcm-avatar.entry.js.map +1 -1
- package/dist/esm/bcm-badge.entry.js +114 -82
- package/dist/esm/bcm-badge.entry.js.map +1 -1
- package/dist/esm/bcm-basic-badge.entry.js +73 -59
- package/dist/esm/bcm-basic-badge.entry.js.map +1 -1
- package/dist/esm/bcm-button-group.entry.js +36 -24
- 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 -174
- package/dist/esm/bcm-checkbox.entry.js.map +1 -1
- package/dist/esm/bcm-chip.entry.js +38 -35
- package/dist/esm/bcm-chip.entry.js.map +1 -1
- package/dist/esm/bcm-divider.entry.js +55 -55
- 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 -33
- package/dist/esm/bcm-dropdown-item.entry.js.map +1 -1
- package/dist/esm/bcm-dropdown.entry.js +18 -17
- 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 -158
- package/dist/esm/bcm-input.entry.js.map +1 -1
- package/dist/esm/bcm-linked.entry.js +450 -0
- package/dist/esm/bcm-linked.entry.js.map +1 -0
- 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 +379 -0
- package/dist/esm/bcm-pop-confirm.entry.js.map +1 -0
- package/dist/esm/bcm-popover.entry.js +449 -0
- package/dist/esm/bcm-popover.entry.js.map +1 -0
- package/dist/esm/bcm-radio-group.entry.js +103 -80
- package/dist/esm/bcm-radio-group.entry.js.map +1 -1
- package/dist/esm/bcm-radio.entry.js +239 -106
- 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 -4
- package/dist/esm/bcm-shortcut.entry.js.map +1 -1
- package/dist/esm/bcm-switch.entry.js +281 -148
- 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 -237
- package/dist/esm/bcm-tabs.entry.js.map +1 -1
- package/dist/esm/bcm-text.entry.js +86 -85
- package/dist/esm/bcm-text.entry.js.map +1 -1
- package/dist/esm/bcm-textarea.entry.js +224 -154
- package/dist/esm/bcm-textarea.entry.js.map +1 -1
- package/dist/esm/bcm-tooltip.entry.js +412 -0
- package/dist/esm/bcm-tooltip.entry.js.map +1 -0
- package/dist/esm/bromcom-ui.js +3 -3
- package/dist/esm/floating-ui.dom-DBDSgIvP.js +1615 -0
- package/dist/esm/floating-ui.dom-DBDSgIvP.js.map +1 -0
- package/dist/esm/{index-CRwAh9Np.js → index-B6Ppbs5O.js} +111 -34
- package/dist/esm/index-B6Ppbs5O.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- 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/checkbox/checkbox.component.d.ts +89 -71
- package/dist/types/components/input/input.component.d.ts +5 -0
- 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/upload/file-upload.component.d.ts +107 -0
- package/dist/types/components.d.ts +830 -382
- package/package.json +2 -2
- package/dist/bromcom-ui/_commonjsHelpers-CvGrISen.js.map +0 -1
- package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.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/generate-id-Crb5QsB-.js.map +0 -1
- package/dist/bromcom-ui/index-40rmUZjU.js.map +0 -1
- package/dist/bromcom-ui/index-BCaJmHBB.js.map +0 -1
- package/dist/bromcom-ui/p-0c7c6896.entry.js +0 -2
- package/dist/bromcom-ui/p-0c7c6896.entry.js.map +0 -1
- package/dist/bromcom-ui/p-11d0e649.entry.js +0 -2
- package/dist/bromcom-ui/p-11d0e649.entry.js.map +0 -1
- package/dist/bromcom-ui/p-12f38632.entry.js +0 -2
- package/dist/bromcom-ui/p-12f38632.entry.js.map +0 -1
- package/dist/bromcom-ui/p-13cbd1f5.entry.js +0 -2
- package/dist/bromcom-ui/p-13cbd1f5.entry.js.map +0 -1
- package/dist/bromcom-ui/p-1507908f.entry.js.map +0 -1
- package/dist/bromcom-ui/p-1ce9913f.entry.js +0 -2
- package/dist/bromcom-ui/p-1ce9913f.entry.js.map +0 -1
- package/dist/bromcom-ui/p-206d767e.entry.js +0 -2
- package/dist/bromcom-ui/p-206d767e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-3cf7a7f4.entry.js +0 -2
- package/dist/bromcom-ui/p-3cf7a7f4.entry.js.map +0 -1
- package/dist/bromcom-ui/p-4505feba.entry.js +0 -2
- package/dist/bromcom-ui/p-4505feba.entry.js.map +0 -1
- package/dist/bromcom-ui/p-496014ca.entry.js.map +0 -1
- package/dist/bromcom-ui/p-4a932cd3.entry.js +0 -2
- package/dist/bromcom-ui/p-4a932cd3.entry.js.map +0 -1
- package/dist/bromcom-ui/p-4e554b8d.entry.js +0 -2
- package/dist/bromcom-ui/p-4e554b8d.entry.js.map +0 -1
- package/dist/bromcom-ui/p-57c4c4c4.entry.js +0 -2
- package/dist/bromcom-ui/p-57c4c4c4.entry.js.map +0 -1
- package/dist/bromcom-ui/p-61293ab2.entry.js +0 -2
- package/dist/bromcom-ui/p-61293ab2.entry.js.map +0 -1
- package/dist/bromcom-ui/p-61789456.entry.js +0 -2
- package/dist/bromcom-ui/p-61789456.entry.js.map +0 -1
- package/dist/bromcom-ui/p-65d0f188.entry.js +0 -2
- package/dist/bromcom-ui/p-65d0f188.entry.js.map +0 -1
- package/dist/bromcom-ui/p-83f707dc.entry.js +0 -2
- package/dist/bromcom-ui/p-83f707dc.entry.js.map +0 -1
- package/dist/bromcom-ui/p-8ba02e7e.entry.js +0 -2
- package/dist/bromcom-ui/p-8ba02e7e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-9e9bf32e.entry.js +0 -2
- package/dist/bromcom-ui/p-9e9bf32e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-CRwAh9Np.js +0 -3
- package/dist/bromcom-ui/p-CRwAh9Np.js.map +0 -1
- package/dist/bromcom-ui/p-CUvT12BL.js +0 -2
- package/dist/bromcom-ui/p-c87a6acf.entry.js +0 -2
- package/dist/bromcom-ui/p-c87a6acf.entry.js.map +0 -1
- package/dist/bromcom-ui/p-e0e235a8.entry.js +0 -2
- package/dist/bromcom-ui/p-e0e235a8.entry.js.map +0 -1
- package/dist/bromcom-ui/p-e1ce8b55.entry.js +0 -2
- package/dist/bromcom-ui/p-e1ce8b55.entry.js.map +0 -1
- package/dist/bromcom-ui/p-e4dddb0b.entry.js +0 -2
- package/dist/bromcom-ui/p-e4dddb0b.entry.js.map +0 -1
- package/dist/bromcom-ui/p-f9426924.entry.js +0 -2
- package/dist/bromcom-ui/p-f9426924.entry.js.map +0 -1
- package/dist/bromcom-ui/p-faa0e62c.entry.js +0 -2
- package/dist/bromcom-ui/p-faa0e62c.entry.js.map +0 -1
- package/dist/bromcom-ui/p-fcb4399f.entry.js +0 -2
- package/dist/bromcom-ui/p-fcb4399f.entry.js.map +0 -1
- package/dist/bromcom-ui/tv-SlGJ5EfR.js.map +0 -1
- package/dist/bromcom-ui/validation-messages-CUvT12BL.js.map +0 -1
- package/dist/cjs/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-button_7.cjs.entry.js +0 -4131
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +0 -105
- package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js +0 -142
- package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs-content.cjs.entry.js +0 -18
- package/dist/cjs/bcm-tabs-content.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs-list.cjs.entry.js +0 -82
- package/dist/cjs/bcm-tabs-list.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +0 -120
- package/dist/cjs/bcm-tabs-trigger.entry.cjs.js.map +0 -1
- package/dist/cjs/index-CmYzUr-k.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 -133
- package/dist/components/bcm-segmented-picker-option.js.map +0 -1
- package/dist/components/bcm-tabs-content.js +0 -41
- package/dist/components/bcm-tabs-content.js.map +0 -1
- package/dist/components/bcm-tabs-list.js +0 -106
- package/dist/components/bcm-tabs-list.js.map +0 -1
- package/dist/components/bcm-tabs-trigger.js +0 -148
- package/dist/components/bcm-tabs-trigger.js.map +0 -1
- package/dist/components/p-6VLsKZvR.js.map +0 -1
- package/dist/components/p-CUvT12BL.js.map +0 -1
- package/dist/components/p-CaemikSK.js +0 -147
- package/dist/components/p-CaemikSK.js.map +0 -1
- package/dist/components/p-CsIBm0J5.js.map +0 -1
- package/dist/esm/bcm-button.bcm-drawer.bcm-linked.bcm-modal.bcm-pop-confirm.bcm-popover.bcm-tooltip.entry.js.map +0 -1
- package/dist/esm/bcm-button_7.entry.js +0 -4123
- package/dist/esm/bcm-segmented-picker-option.entry.js +0 -103
- package/dist/esm/bcm-segmented-picker-option.entry.js.map +0 -1
- package/dist/esm/bcm-segmented-picker.entry.js +0 -140
- package/dist/esm/bcm-segmented-picker.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-content.entry.js +0 -16
- package/dist/esm/bcm-tabs-content.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-list.entry.js +0 -80
- package/dist/esm/bcm-tabs-list.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-trigger.entry.js +0 -118
- package/dist/esm/bcm-tabs-trigger.entry.js.map +0 -1
- package/dist/esm/index-CRwAh9Np.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
|
@@ -2,7 +2,7 @@ import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './in
|
|
|
2
2
|
import { c as computePosition, a as autoUpdate, o as offset, f as flip, s as shift, b as arrow } from './p-DBDSgIvP.js';
|
|
3
3
|
import { t as tv } from './p-CEcVC0yX.js';
|
|
4
4
|
|
|
5
|
-
const linkedCss = ".visible{visibility:visible}.absolute{position:absolute}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:host{display:inline-block}[popover]{background:transparent;border:none;margin:0;opacity:0;overflow:visible;padding:0;position:absolute;transform:scale(.95);transition:opacity .15s ease-out,transform .15s ease-out,display allow-discrete .15s ease-out,overlay allow-discrete .15s ease-out}[popover]:popover-open{opacity:1;transform:scale(1)}@starting-style{[popover]:popover-open{opacity:0;transform:scale(.95)}}[data-placement^=top] [part=arrow]{border-left:none;border-top:none;bottom:-4px}[data-placement^=bottom] [part=arrow]{border-bottom:none;border-right:none;top:-4px}[data-placement^=left] [part=arrow]{border-bottom:none;border-left:none;right:-4px}[data-placement^=right] [part=arrow]{border-right:none;border-top:none;left:-4px}.
|
|
5
|
+
const linkedCss = ".visible{visibility:visible}.absolute{position:absolute}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:host{display:inline-block}[popover]{background:transparent;border:none;margin:0;opacity:0;overflow:visible;padding:0;position:absolute;transform:scale(.95);transition:opacity .15s ease-out,transform .15s ease-out,display allow-discrete .15s ease-out,overlay allow-discrete .15s ease-out}[popover]:popover-open{opacity:1;transform:scale(1)}@starting-style{[popover]:popover-open{opacity:0;transform:scale(.95)}}[data-placement^=top] [part=arrow]{border-left:none;border-top:none;bottom:-4px}[data-placement^=bottom] [part=arrow]{border-bottom:none;border-right:none;top:-4px}[data-placement^=left] [part=arrow]{border-bottom:none;border-left:none;right:-4px}[data-placement^=right] [part=arrow]{border-right:none;border-top:none;left:-4px}.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}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.fixed{position:fixed}.relative{position:relative}.inline-block{display:inline-block}.hidden{display:none}.h-2{height:.5rem}.w-2{width:.5rem}.rotate-45{--tw-rotate:45deg;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))}.rounded-md{border-radius:var(--bcm-ui-border-radius-md,6px)}.bg-color-basic-base{background-color:var(--bcm-ui-color-background-basic-base)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:var(--bcm-ui-box-shadow-lg);--tw-shadow-colored:var(--bcm-ui-box-shadow-lg)}.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)}";
|
|
6
6
|
|
|
7
7
|
const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
8
8
|
constructor(registerHost) {
|
|
@@ -17,127 +17,97 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
17
17
|
this.bcmHide = createEvent(this, "bcmHide", 1);
|
|
18
18
|
this.bcmShown = createEvent(this, "bcmShown", 1);
|
|
19
19
|
this.bcmHidden = createEvent(this, "bcmHidden", 1);
|
|
20
|
-
// Unique ID for ARIA
|
|
21
|
-
this.componentId = `linked-${Math.random().toString(36).substring(2, 11)}`;
|
|
22
|
-
/**
|
|
23
|
-
* @prop {boolean} visible - Controls the visibility state of the floating element.
|
|
24
|
-
* Can be set programmatically or toggled by user interaction.
|
|
25
|
-
* Default: false
|
|
26
|
-
*/
|
|
27
|
-
this.visible = false;
|
|
28
|
-
/**
|
|
29
|
-
* @prop {TriggerType} trigger - Defines the interaction type to show/hide the floating element.
|
|
30
|
-
* 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave,
|
|
31
|
-
* 'focus' shows on focus and hides on blur, 'manual' requires programmatic control.
|
|
32
|
-
* Default: 'click'
|
|
33
|
-
*/
|
|
34
|
-
this.trigger = 'click';
|
|
35
|
-
/**
|
|
36
|
-
* @prop {Placement} placement - Defines the position of the floating element relative to the trigger.
|
|
37
|
-
* Default: 'bottom-start'
|
|
38
|
-
*/
|
|
39
|
-
this.placement = 'bottom-start';
|
|
40
|
-
/**
|
|
41
|
-
* @prop {number} showDelay - Delay in milliseconds before showing the floating element.
|
|
42
|
-
* Default: 0
|
|
43
|
-
*/
|
|
44
|
-
this.showDelay = 0;
|
|
45
|
-
/**
|
|
46
|
-
* @prop {number} hideDelay - Delay in milliseconds before hiding the floating element.
|
|
47
|
-
* Default: 0
|
|
48
|
-
*/
|
|
49
|
-
this.hideDelay = 0;
|
|
50
|
-
/**
|
|
51
|
-
* @prop {number} offsetDistance - Distance in pixels between the floating element and the trigger.
|
|
52
|
-
* Default: 8
|
|
53
|
-
*/
|
|
54
|
-
this.offsetDistance = 8;
|
|
55
|
-
/**
|
|
56
|
-
* @prop {boolean} showArrow - Whether to show an arrow pointing to the trigger element.
|
|
57
|
-
* Default: true
|
|
58
|
-
*/
|
|
59
|
-
this.showArrow = true;
|
|
60
|
-
/**
|
|
61
|
-
* @prop {boolean} disabled - Disables the floating element, preventing it from showing.
|
|
62
|
-
* Default: false
|
|
63
|
-
*/
|
|
64
|
-
this.disabled = false;
|
|
65
|
-
/**
|
|
66
|
-
* @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside.
|
|
67
|
-
* Default: true
|
|
68
|
-
*/
|
|
69
|
-
this.closeOnOutsideClick = true;
|
|
70
|
-
/**
|
|
71
|
-
* @prop {boolean} closeOnEscape - Whether to close when pressing Escape key.
|
|
72
|
-
* Default: true
|
|
73
|
-
*/
|
|
74
|
-
this.closeOnEscape = true;
|
|
75
|
-
// Internal state
|
|
76
|
-
this.isVisible = false;
|
|
77
|
-
this.handleTriggerSlotChange = () => {
|
|
78
|
-
var _a;
|
|
79
|
-
const slot = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="trigger"]');
|
|
80
|
-
if (!slot)
|
|
81
|
-
return;
|
|
82
|
-
const elements = slot.assignedElements();
|
|
83
|
-
if (elements.length > 0) {
|
|
84
|
-
this.removeTriggerListeners();
|
|
85
|
-
this.triggerRef = elements[0];
|
|
86
|
-
this.setupTriggerListeners();
|
|
87
|
-
this.setupAriaAttributes();
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
this.handleMouseEnter = () => {
|
|
91
|
-
this.show();
|
|
92
|
-
};
|
|
93
|
-
this.handleMouseLeave = () => {
|
|
94
|
-
this.hide();
|
|
95
|
-
};
|
|
96
|
-
this.handleFloatingMouseEnter = () => {
|
|
97
|
-
this.clearTimeouts();
|
|
98
|
-
};
|
|
99
|
-
this.handleFloatingMouseLeave = () => {
|
|
100
|
-
this.hide();
|
|
101
|
-
};
|
|
102
|
-
this.handleTriggerClick = (event) => {
|
|
103
|
-
event.stopPropagation();
|
|
104
|
-
this.toggle();
|
|
105
|
-
};
|
|
106
|
-
this.handleFocus = () => {
|
|
107
|
-
this.show();
|
|
108
|
-
};
|
|
109
|
-
this.handleBlur = () => {
|
|
110
|
-
this.hide();
|
|
111
|
-
};
|
|
112
|
-
this.handleOutsideClick = (event) => {
|
|
113
|
-
var _a;
|
|
114
|
-
if (!this.closeOnOutsideClick || !this.visible)
|
|
115
|
-
return;
|
|
116
|
-
const target = event.target;
|
|
117
|
-
const path = event.composedPath();
|
|
118
|
-
const isInsideHost = this.host.contains(target) || path.includes(this.host);
|
|
119
|
-
const isInsideFloating = ((_a = this.floatingRef) === null || _a === void 0 ? void 0 : _a.contains(target)) || (this.floatingRef && path.includes(this.floatingRef));
|
|
120
|
-
if (!isInsideHost && !isInsideFloating) {
|
|
121
|
-
this.hide();
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
this.handleToggle = (event) => {
|
|
125
|
-
if (event.newState === 'open' && !this.isVisible) {
|
|
126
|
-
this.isVisible = true;
|
|
127
|
-
}
|
|
128
|
-
else if (event.newState === 'closed' && this.isVisible) {
|
|
129
|
-
this.isVisible = false;
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
this.linkedClass = tv({
|
|
133
|
-
slots: {
|
|
134
|
-
wrapper: 'inline-block',
|
|
135
|
-
floating: ['bcm-ui-element', 'fixed', 'bg-color-basic-base', 'rounded-md', 'shadow-lg', 'border', 'border-color-basic-subtle'],
|
|
136
|
-
arrow: ['absolute', 'w-2', 'h-2', 'bg-color-basic-base', 'border', 'border-color-basic-subtle', 'rotate-45'],
|
|
137
|
-
content: 'bg-color-basic-base',
|
|
138
|
-
},
|
|
139
|
-
});
|
|
140
20
|
}
|
|
21
|
+
get host() { return this; }
|
|
22
|
+
// Element references
|
|
23
|
+
floatingRef;
|
|
24
|
+
triggerRef;
|
|
25
|
+
arrowRef;
|
|
26
|
+
// Cleanup references
|
|
27
|
+
cleanupAutoUpdate;
|
|
28
|
+
showTimeout;
|
|
29
|
+
hideTimeout;
|
|
30
|
+
// Unique ID for ARIA
|
|
31
|
+
componentId = `linked-${Math.random().toString(36).substring(2, 11)}`;
|
|
32
|
+
/**
|
|
33
|
+
* @prop {boolean} visible - Controls the visibility state of the floating element.
|
|
34
|
+
* Can be set programmatically or toggled by user interaction.
|
|
35
|
+
* Default: false
|
|
36
|
+
*/
|
|
37
|
+
visible = false;
|
|
38
|
+
/**
|
|
39
|
+
* @prop {TriggerType} trigger - Defines the interaction type to show/hide the floating element.
|
|
40
|
+
* 'click' toggles on click, 'hover' shows on mouse enter and hides on mouse leave,
|
|
41
|
+
* 'focus' shows on focus and hides on blur, 'manual' requires programmatic control.
|
|
42
|
+
* Default: 'click'
|
|
43
|
+
*/
|
|
44
|
+
trigger = 'click';
|
|
45
|
+
/**
|
|
46
|
+
* @prop {Placement} placement - Defines the position of the floating element relative to the trigger.
|
|
47
|
+
* Default: 'bottom-start'
|
|
48
|
+
*/
|
|
49
|
+
placement = 'bottom-start';
|
|
50
|
+
/**
|
|
51
|
+
* @prop {number} showDelay - Delay in milliseconds before showing the floating element.
|
|
52
|
+
* Default: 0
|
|
53
|
+
*/
|
|
54
|
+
showDelay = 0;
|
|
55
|
+
/**
|
|
56
|
+
* @prop {number} hideDelay - Delay in milliseconds before hiding the floating element.
|
|
57
|
+
* Default: 0
|
|
58
|
+
*/
|
|
59
|
+
hideDelay = 0;
|
|
60
|
+
/**
|
|
61
|
+
* @prop {number} offsetDistance - Distance in pixels between the floating element and the trigger.
|
|
62
|
+
* Default: 8
|
|
63
|
+
*/
|
|
64
|
+
offsetDistance = 8;
|
|
65
|
+
/**
|
|
66
|
+
* @prop {boolean} showArrow - Whether to show an arrow pointing to the trigger element.
|
|
67
|
+
* Default: true
|
|
68
|
+
*/
|
|
69
|
+
showArrow = true;
|
|
70
|
+
/**
|
|
71
|
+
* @prop {boolean} disabled - Disables the floating element, preventing it from showing.
|
|
72
|
+
* Default: false
|
|
73
|
+
*/
|
|
74
|
+
disabled = false;
|
|
75
|
+
/**
|
|
76
|
+
* @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside.
|
|
77
|
+
* Default: true
|
|
78
|
+
*/
|
|
79
|
+
closeOnOutsideClick = true;
|
|
80
|
+
/**
|
|
81
|
+
* @prop {boolean} closeOnEscape - Whether to close when pressing Escape key.
|
|
82
|
+
* Default: true
|
|
83
|
+
*/
|
|
84
|
+
closeOnEscape = true;
|
|
85
|
+
// Internal state
|
|
86
|
+
isVisible = false;
|
|
87
|
+
/**
|
|
88
|
+
* @event bcmBeforeShow - Emitted before the floating element shows.
|
|
89
|
+
*/
|
|
90
|
+
bcmBeforeShow;
|
|
91
|
+
/**
|
|
92
|
+
* @event bcmShow - Emitted when the floating element is shown.
|
|
93
|
+
*/
|
|
94
|
+
bcmShow;
|
|
95
|
+
/**
|
|
96
|
+
* @event bcmBeforeHide - Emitted before the floating element hides.
|
|
97
|
+
*/
|
|
98
|
+
bcmBeforeHide;
|
|
99
|
+
/**
|
|
100
|
+
* @event bcmHide - Emitted when the floating element is hidden.
|
|
101
|
+
*/
|
|
102
|
+
bcmHide;
|
|
103
|
+
/**
|
|
104
|
+
* @event bcmShown - Emitted after the floating element is fully shown (after animation).
|
|
105
|
+
*/
|
|
106
|
+
bcmShown;
|
|
107
|
+
/**
|
|
108
|
+
* @event bcmHidden - Emitted after the floating element is fully hidden (after animation).
|
|
109
|
+
*/
|
|
110
|
+
bcmHidden;
|
|
141
111
|
// Watch for visibility prop changes
|
|
142
112
|
handleVisibleChange(newValue) {
|
|
143
113
|
if (this.disabled)
|
|
@@ -161,7 +131,6 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
161
131
|
}
|
|
162
132
|
// Internal show logic
|
|
163
133
|
showInternal() {
|
|
164
|
-
var _a;
|
|
165
134
|
if (!this.floatingRef || this.disabled)
|
|
166
135
|
return;
|
|
167
136
|
this.bcmShow.emit();
|
|
@@ -169,7 +138,7 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
169
138
|
this.floatingRef.showPopover();
|
|
170
139
|
this.startAutoUpdate();
|
|
171
140
|
this.updatePosition();
|
|
172
|
-
|
|
141
|
+
this.triggerRef?.setAttribute('aria-expanded', 'true');
|
|
173
142
|
if (this.closeOnOutsideClick && this.trigger !== 'manual') {
|
|
174
143
|
this.addOutsideClickListener();
|
|
175
144
|
}
|
|
@@ -180,14 +149,13 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
180
149
|
}
|
|
181
150
|
// Internal hide logic
|
|
182
151
|
hideInternal() {
|
|
183
|
-
var _a;
|
|
184
152
|
if (!this.floatingRef)
|
|
185
153
|
return;
|
|
186
154
|
this.bcmHide.emit();
|
|
187
155
|
this.isVisible = false;
|
|
188
156
|
this.floatingRef.hidePopover();
|
|
189
157
|
this.stopAutoUpdate();
|
|
190
|
-
|
|
158
|
+
this.triggerRef?.setAttribute('aria-expanded', 'false');
|
|
191
159
|
this.removeOutsideClickListener();
|
|
192
160
|
// Emit bcmHidden after animation
|
|
193
161
|
setTimeout(() => {
|
|
@@ -260,6 +228,18 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
260
228
|
this.hideTimeout = undefined;
|
|
261
229
|
}
|
|
262
230
|
}
|
|
231
|
+
handleTriggerSlotChange = () => {
|
|
232
|
+
const slot = this.host.shadowRoot?.querySelector('slot[name="trigger"]');
|
|
233
|
+
if (!slot)
|
|
234
|
+
return;
|
|
235
|
+
const elements = slot.assignedElements();
|
|
236
|
+
if (elements.length > 0) {
|
|
237
|
+
this.removeTriggerListeners();
|
|
238
|
+
this.triggerRef = elements[0];
|
|
239
|
+
this.setupTriggerListeners();
|
|
240
|
+
this.setupAriaAttributes();
|
|
241
|
+
}
|
|
242
|
+
};
|
|
263
243
|
setupAriaAttributes() {
|
|
264
244
|
if (!this.triggerRef)
|
|
265
245
|
return;
|
|
@@ -268,15 +248,14 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
268
248
|
this.triggerRef.setAttribute('aria-haspopup', 'true');
|
|
269
249
|
}
|
|
270
250
|
setupTriggerListeners() {
|
|
271
|
-
var _a, _b;
|
|
272
251
|
if (!this.triggerRef || this.disabled)
|
|
273
252
|
return;
|
|
274
253
|
switch (this.trigger) {
|
|
275
254
|
case 'hover':
|
|
276
255
|
this.triggerRef.addEventListener('mouseenter', this.handleMouseEnter);
|
|
277
256
|
this.triggerRef.addEventListener('mouseleave', this.handleMouseLeave);
|
|
278
|
-
|
|
279
|
-
|
|
257
|
+
this.floatingRef?.addEventListener('mouseenter', this.handleFloatingMouseEnter);
|
|
258
|
+
this.floatingRef?.addEventListener('mouseleave', this.handleFloatingMouseLeave);
|
|
280
259
|
break;
|
|
281
260
|
case 'click':
|
|
282
261
|
this.triggerRef.addEventListener('click', this.handleTriggerClick);
|
|
@@ -288,7 +267,6 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
288
267
|
}
|
|
289
268
|
}
|
|
290
269
|
removeTriggerListeners() {
|
|
291
|
-
var _a, _b;
|
|
292
270
|
if (!this.triggerRef)
|
|
293
271
|
return;
|
|
294
272
|
this.triggerRef.removeEventListener('mouseenter', this.handleMouseEnter);
|
|
@@ -296,11 +274,32 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
296
274
|
this.triggerRef.removeEventListener('click', this.handleTriggerClick);
|
|
297
275
|
this.triggerRef.removeEventListener('focus', this.handleFocus);
|
|
298
276
|
this.triggerRef.removeEventListener('blur', this.handleBlur);
|
|
299
|
-
|
|
300
|
-
|
|
277
|
+
this.floatingRef?.removeEventListener('mouseenter', this.handleFloatingMouseEnter);
|
|
278
|
+
this.floatingRef?.removeEventListener('mouseleave', this.handleFloatingMouseLeave);
|
|
301
279
|
}
|
|
280
|
+
handleMouseEnter = () => {
|
|
281
|
+
this.show();
|
|
282
|
+
};
|
|
283
|
+
handleMouseLeave = () => {
|
|
284
|
+
this.hide();
|
|
285
|
+
};
|
|
286
|
+
handleFloatingMouseEnter = () => {
|
|
287
|
+
this.clearTimeouts();
|
|
288
|
+
};
|
|
289
|
+
handleFloatingMouseLeave = () => {
|
|
290
|
+
this.hide();
|
|
291
|
+
};
|
|
292
|
+
handleTriggerClick = (event) => {
|
|
293
|
+
event.stopPropagation();
|
|
294
|
+
this.toggle();
|
|
295
|
+
};
|
|
296
|
+
handleFocus = () => {
|
|
297
|
+
this.show();
|
|
298
|
+
};
|
|
299
|
+
handleBlur = () => {
|
|
300
|
+
this.hide();
|
|
301
|
+
};
|
|
302
302
|
handleKeyDown(event) {
|
|
303
|
-
var _a;
|
|
304
303
|
if (!this.closeOnEscape || !this.visible)
|
|
305
304
|
return;
|
|
306
305
|
if (event.key === 'Escape') {
|
|
@@ -309,10 +308,21 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
309
308
|
if (topLinked === this.host) {
|
|
310
309
|
event.preventDefault();
|
|
311
310
|
this.hide();
|
|
312
|
-
|
|
311
|
+
this.triggerRef?.focus();
|
|
313
312
|
}
|
|
314
313
|
}
|
|
315
314
|
}
|
|
315
|
+
handleOutsideClick = (event) => {
|
|
316
|
+
if (!this.closeOnOutsideClick || !this.visible)
|
|
317
|
+
return;
|
|
318
|
+
const target = event.target;
|
|
319
|
+
const path = event.composedPath();
|
|
320
|
+
const isInsideHost = this.host.contains(target) || path.includes(this.host);
|
|
321
|
+
const isInsideFloating = this.floatingRef?.contains(target) || (this.floatingRef && path.includes(this.floatingRef));
|
|
322
|
+
if (!isInsideHost && !isInsideFloating) {
|
|
323
|
+
this.hide();
|
|
324
|
+
}
|
|
325
|
+
};
|
|
316
326
|
addOutsideClickListener() {
|
|
317
327
|
setTimeout(() => {
|
|
318
328
|
document.addEventListener('click', this.handleOutsideClick, true);
|
|
@@ -378,14 +388,20 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
378
388
|
});
|
|
379
389
|
}
|
|
380
390
|
stopAutoUpdate() {
|
|
381
|
-
|
|
382
|
-
(_a = this.cleanupAutoUpdate) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
391
|
+
this.cleanupAutoUpdate?.();
|
|
383
392
|
this.cleanupAutoUpdate = undefined;
|
|
384
393
|
}
|
|
394
|
+
handleToggle = (event) => {
|
|
395
|
+
if (event.newState === 'open' && !this.isVisible) {
|
|
396
|
+
this.isVisible = true;
|
|
397
|
+
}
|
|
398
|
+
else if (event.newState === 'closed' && this.isVisible) {
|
|
399
|
+
this.isVisible = false;
|
|
400
|
+
}
|
|
401
|
+
};
|
|
385
402
|
componentDidLoad() {
|
|
386
|
-
var _a;
|
|
387
403
|
// Toggle event listener (Popover API)
|
|
388
|
-
|
|
404
|
+
this.floatingRef?.addEventListener('toggle', this.handleToggle);
|
|
389
405
|
// Initial trigger setup - manually trigger slot change handler
|
|
390
406
|
this.handleTriggerSlotChange();
|
|
391
407
|
// Initial state sync
|
|
@@ -410,13 +426,20 @@ const BcmLinked = /*@__PURE__*/ proxyCustomElement(class BcmLinked extends H {
|
|
|
410
426
|
}
|
|
411
427
|
}
|
|
412
428
|
}
|
|
429
|
+
linkedClass = tv({
|
|
430
|
+
slots: {
|
|
431
|
+
wrapper: 'inline-block',
|
|
432
|
+
floating: ['bcm-ui-element', 'fixed', 'bg-color-basic-base', 'rounded-md', 'shadow-lg', 'border', 'border-color-basic-subtle'],
|
|
433
|
+
arrow: ['absolute', 'w-2', 'h-2', 'bg-color-basic-base', 'border', 'border-color-basic-subtle', 'rotate-45'],
|
|
434
|
+
content: 'bg-color-basic-base',
|
|
435
|
+
},
|
|
436
|
+
});
|
|
413
437
|
render() {
|
|
414
438
|
const { wrapper, floating, arrow, content } = this.linkedClass();
|
|
415
439
|
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(),
|
|
416
440
|
// @ts-ignore - popover is a valid HTML attribute
|
|
417
441
|
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' }))))));
|
|
418
442
|
}
|
|
419
|
-
get host() { return this; }
|
|
420
443
|
static get watchers() { return {
|
|
421
444
|
"visible": ["handleVisibleChange"],
|
|
422
445
|
"disabled": ["handleDisabledChange"],
|
|
@@ -464,6 +487,6 @@ function defineCustomElement() {
|
|
|
464
487
|
defineCustomElement();
|
|
465
488
|
|
|
466
489
|
export { BcmLinked as B, defineCustomElement as d };
|
|
467
|
-
//# sourceMappingURL=p-
|
|
490
|
+
//# sourceMappingURL=p-z9ESseGb.js.map
|
|
468
491
|
|
|
469
|
-
//# sourceMappingURL=p-
|
|
492
|
+
//# sourceMappingURL=p-z9ESseGb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"p-z9ESseGb.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/linked/linked.css?tag=bcm-linked&encapsulation=shadow","src/components/linked/linked.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n/* Popover API base styles */\n[popover] {\n position: absolute;\n margin: 0;\n border: none;\n padding: 0;\n overflow: visible;\n background: transparent;\n}\n\n/* Animation properties */\n[popover] {\n transition:\n opacity 150ms ease-out,\n transform 150ms ease-out,\n display 150ms ease-out allow-discrete,\n overlay 150ms ease-out allow-discrete;\n opacity: 0;\n transform: scale(0.95);\n}\n\n/* Open state */\n[popover]:popover-open {\n opacity: 1;\n transform: scale(1);\n}\n\n/* Starting style for entry animation */\n@starting-style {\n [popover]:popover-open {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n/* Arrow positioning based on placement */\n[data-placement^='top'] [part='arrow'] {\n bottom: -4px;\n border-top: none;\n border-left: none;\n}\n\n[data-placement^='bottom'] [part='arrow'] {\n top: -4px;\n border-bottom: none;\n border-right: none;\n}\n\n[data-placement^='left'] [part='arrow'] {\n right: -4px;\n border-bottom: none;\n border-left: none;\n}\n\n[data-placement^='right'] [part='arrow'] {\n left: -4px;\n border-top: none;\n border-right: none;\n}\n","import { Component, ComponentInterface, Prop, Element, State, h, Event, EventEmitter, Watch, Method, Host, Listen } from '@stencil/core';\nimport { computePosition, shift, offset, autoUpdate, flip, arrow, type Placement } from '@floating-ui/dom';\nimport { tv } from '@utils/tv';\n\nexport type TriggerType = 'hover' | 'click' | 'focus' | 'manual';\n\n/**\n * @component BcmLinked\n * @description A flexible linked floating element component that displays contextual content relative to a trigger element.\n * Built on the native Popover API for top-layer rendering and Floating UI for intelligent positioning.\n * Supports different trigger types (click, hover, focus, manual) and comprehensive event system.\n *\n * @example Basic Click Trigger\n * <bcm-linked trigger=\"click\">\n * <button slot=\"trigger\">Click Me</button>\n * <div>Floating content here</div>\n * </bcm-linked>\n *\n * @example Hover Trigger with Delays\n * <bcm-linked trigger=\"hover\" show-delay=\"200\" hide-delay=\"100\">\n * <span slot=\"trigger\">Hover Me</span>\n * <div>This appears on hover</div>\n * </bcm-linked>\n *\n * @example Manual Control\n * <bcm-linked id=\"my-linked\" trigger=\"manual\">\n * <button slot=\"trigger\">Trigger</button>\n * <div>Controlled content</div>\n * </bcm-linked>\n * <script>\n * const linked = document.querySelector('#my-linked');\n * linked.show(); // Opens the floating element\n * linked.hide(); // Closes the floating element\n * </script>\n *\n * @slot trigger - The trigger element that controls the floating element visibility\n * @slot - Default slot for the floating content\n *\n * @csspart floating - The floating container element\n * @csspart arrow - The arrow element pointing to the trigger\n * @csspart content - The content wrapper element\n */\n@Component({\n tag: 'bcm-linked',\n styleUrl: 'linked.css',\n shadow: true,\n})\nexport class BcmLinked implements ComponentInterface {\n @Element() host: HTMLElement;\n\n // Element references\n private floatingRef?: HTMLElement;\n private triggerRef?: HTMLElement;\n private arrowRef?: HTMLElement;\n\n // Cleanup references\n private cleanupAutoUpdate?: () => void;\n private showTimeout?: number;\n private hideTimeout?: number;\n\n // Unique ID for ARIA\n private componentId = `linked-${Math.random().toString(36).substring(2, 11)}`;\n\n /**\n * @prop {boolean} visible - Controls the visibility state of the floating element.\n * Can be set programmatically or toggled by user interaction.\n * Default: false\n */\n @Prop({ mutable: true, reflect: true }) visible: boolean = false;\n\n /**\n * @prop {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.\n * Default: 'click'\n */\n @Prop() trigger: TriggerType = 'click';\n\n /**\n * @prop {Placement} placement - Defines the position of the floating element relative to the trigger.\n * Default: 'bottom-start'\n */\n @Prop() placement: Placement = 'bottom-start';\n\n /**\n * @prop {number} showDelay - Delay in milliseconds before showing the floating element.\n * Default: 0\n */\n @Prop() showDelay: number = 0;\n\n /**\n * @prop {number} hideDelay - Delay in milliseconds before hiding the floating element.\n * Default: 0\n */\n @Prop() hideDelay: number = 0;\n\n /**\n * @prop {number} offsetDistance - Distance in pixels between the floating element and the trigger.\n * Default: 8\n */\n @Prop() offsetDistance: number = 8;\n\n /**\n * @prop {boolean} showArrow - Whether to show an arrow pointing to the trigger element.\n * Default: true\n */\n @Prop() showArrow: boolean = true;\n\n /**\n * @prop {boolean} disabled - Disables the floating element, preventing it from showing.\n * Default: false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * @prop {boolean} closeOnOutsideClick - Whether to close when clicking outside.\n * Default: true\n */\n @Prop() closeOnOutsideClick: boolean = true;\n\n /**\n * @prop {boolean} closeOnEscape - Whether to close when pressing Escape key.\n * Default: true\n */\n @Prop() closeOnEscape: boolean = true;\n\n // Internal state\n @State() isVisible: boolean = false;\n\n /**\n * @event bcmBeforeShow - Emitted before the floating element shows.\n */\n @Event({ composed: false, bubbles: false }) bcmBeforeShow: EventEmitter<void>;\n\n /**\n * @event bcmShow - Emitted when the floating element is shown.\n */\n @Event({ composed: false, bubbles: false }) bcmShow: EventEmitter<void>;\n\n /**\n * @event bcmBeforeHide - Emitted before the floating element hides.\n */\n @Event({ composed: false, bubbles: false }) bcmBeforeHide: EventEmitter<void>;\n\n /**\n * @event bcmHide - Emitted when the floating element is hidden.\n */\n @Event({ composed: false, bubbles: false }) bcmHide: EventEmitter<void>;\n\n /**\n * @event bcmShown - Emitted after the floating element is fully shown (after animation).\n */\n @Event({ composed: false, bubbles: false }) bcmShown: EventEmitter<void>;\n\n /**\n * @event bcmHidden - Emitted after the floating element is fully hidden (after animation).\n */\n @Event({ composed: false, bubbles: false }) bcmHidden: EventEmitter<void>;\n\n // Watch for visibility prop changes\n @Watch('visible')\n handleVisibleChange(newValue: boolean) {\n if (this.disabled) return;\n\n if (newValue) {\n this.showInternal();\n } else {\n this.hideInternal();\n }\n }\n\n @Watch('disabled')\n handleDisabledChange(isDisabled: boolean) {\n if (isDisabled && this.visible) {\n this.hide();\n }\n }\n\n @Watch('placement')\n @Watch('offsetDistance')\n @Watch('showArrow')\n handlePositionPropsChange() {\n if (this.visible) {\n this.updatePosition();\n }\n }\n\n // Internal show logic\n private showInternal() {\n if (!this.floatingRef || this.disabled) return;\n\n this.bcmShow.emit();\n this.isVisible = true;\n this.floatingRef.showPopover();\n this.startAutoUpdate();\n this.updatePosition();\n this.triggerRef?.setAttribute('aria-expanded', 'true');\n\n if (this.closeOnOutsideClick && this.trigger !== 'manual') {\n this.addOutsideClickListener();\n }\n\n // Emit bcmShown after animation\n requestAnimationFrame(() => {\n this.bcmShown.emit();\n });\n }\n\n // Internal hide logic\n private hideInternal() {\n if (!this.floatingRef) return;\n\n this.bcmHide.emit();\n this.isVisible = false;\n this.floatingRef.hidePopover();\n this.stopAutoUpdate();\n this.triggerRef?.setAttribute('aria-expanded', 'false');\n this.removeOutsideClickListener();\n\n // Emit bcmHidden after animation\n setTimeout(() => {\n this.bcmHidden.emit();\n }, 150);\n }\n\n /**\n * Programmatically shows the floating element.\n * Respects the showDelay prop.\n */\n @Method()\n async show(): Promise<void> {\n if (this.visible || this.disabled) return;\n\n this.clearTimeouts();\n\n if (this.showDelay > 0) {\n this.showTimeout = window.setTimeout(() => {\n this.bcmBeforeShow.emit();\n this.visible = true;\n }, this.showDelay);\n } else {\n this.bcmBeforeShow.emit();\n this.visible = true;\n }\n }\n\n /**\n * Programmatically hides the floating element.\n * Respects the hideDelay prop.\n */\n @Method()\n async hide(): Promise<void> {\n if (!this.visible) return;\n\n this.clearTimeouts();\n\n if (this.hideDelay > 0) {\n this.hideTimeout = window.setTimeout(() => {\n this.bcmBeforeHide.emit();\n this.visible = false;\n }, this.hideDelay);\n } else {\n this.bcmBeforeHide.emit();\n this.visible = false;\n }\n }\n\n /**\n * Toggles the floating element visibility.\n */\n @Method()\n async toggle(): Promise<void> {\n if (this.visible) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n /**\n * Updates the position of the floating element.\n * Useful when the trigger element moves or resizes.\n */\n @Method()\n async updatePosition(): Promise<void> {\n await this.calculatePosition();\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 handleTriggerSlotChange = () => {\n const slot = this.host.shadowRoot?.querySelector('slot[name=\"trigger\"]') as HTMLSlotElement;\n if (!slot) return;\n\n const elements = slot.assignedElements();\n if (elements.length > 0) {\n this.removeTriggerListeners();\n this.triggerRef = elements[0] as HTMLElement;\n this.setupTriggerListeners();\n this.setupAriaAttributes();\n }\n };\n\n private setupAriaAttributes() {\n if (!this.triggerRef) return;\n\n this.triggerRef.setAttribute('aria-describedby', this.componentId);\n this.triggerRef.setAttribute('aria-expanded', String(this.visible));\n this.triggerRef.setAttribute('aria-haspopup', 'true');\n }\n\n private setupTriggerListeners() {\n if (!this.triggerRef || this.disabled) return;\n\n switch (this.trigger) {\n case 'hover':\n this.triggerRef.addEventListener('mouseenter', this.handleMouseEnter);\n this.triggerRef.addEventListener('mouseleave', this.handleMouseLeave);\n this.floatingRef?.addEventListener('mouseenter', this.handleFloatingMouseEnter);\n this.floatingRef?.addEventListener('mouseleave', this.handleFloatingMouseLeave);\n break;\n\n case 'click':\n this.triggerRef.addEventListener('click', this.handleTriggerClick);\n break;\n\n case 'focus':\n this.triggerRef.addEventListener('focus', this.handleFocus);\n this.triggerRef.addEventListener('blur', this.handleBlur);\n break;\n\n case 'manual':\n // No automatic listeners\n break;\n }\n }\n\n private removeTriggerListeners() {\n if (!this.triggerRef) return;\n\n this.triggerRef.removeEventListener('mouseenter', this.handleMouseEnter);\n this.triggerRef.removeEventListener('mouseleave', this.handleMouseLeave);\n this.triggerRef.removeEventListener('click', this.handleTriggerClick);\n this.triggerRef.removeEventListener('focus', this.handleFocus);\n this.triggerRef.removeEventListener('blur', this.handleBlur);\n\n this.floatingRef?.removeEventListener('mouseenter', this.handleFloatingMouseEnter);\n this.floatingRef?.removeEventListener('mouseleave', this.handleFloatingMouseLeave);\n }\n\n private handleMouseEnter = () => {\n this.show();\n };\n\n private handleMouseLeave = () => {\n this.hide();\n };\n\n private handleFloatingMouseEnter = () => {\n this.clearTimeouts();\n };\n\n private handleFloatingMouseLeave = () => {\n this.hide();\n };\n\n private handleTriggerClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.toggle();\n };\n\n private handleFocus = () => {\n this.show();\n };\n\n private handleBlur = () => {\n this.hide();\n };\n\n @Listen('keydown', { target: 'document' })\n handleKeyDown(event: KeyboardEvent) {\n if (!this.closeOnEscape || !this.visible) return;\n\n if (event.key === 'Escape') {\n const openLinked = Array.from(document.querySelectorAll('bcm-linked[visible]'));\n const topLinked = openLinked[openLinked.length - 1];\n\n if (topLinked === this.host) {\n event.preventDefault();\n this.hide();\n this.triggerRef?.focus();\n }\n }\n }\n\n private handleOutsideClick = (event: Event) => {\n if (!this.closeOnOutsideClick || !this.visible) return;\n\n const target = event.target as Node;\n const path = event.composedPath();\n\n const isInsideHost = this.host.contains(target) || path.includes(this.host);\n const isInsideFloating = this.floatingRef?.contains(target) || (this.floatingRef && path.includes(this.floatingRef));\n\n if (!isInsideHost && !isInsideFloating) {\n this.hide();\n }\n };\n\n private addOutsideClickListener() {\n setTimeout(() => {\n document.addEventListener('click', this.handleOutsideClick, true);\n }, 0);\n }\n\n private removeOutsideClickListener() {\n document.removeEventListener('click', this.handleOutsideClick, true);\n }\n\n private async calculatePosition() {\n if (!this.triggerRef || !this.floatingRef || !this.isVisible) return;\n\n const virtualElement = {\n getBoundingClientRect: () => this.triggerRef!.getBoundingClientRect(),\n };\n\n const middlewareList = [\n offset(this.offsetDistance),\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 if (this.showArrow && this.arrowRef) {\n middlewareList.push(arrow({ element: this.arrowRef }));\n }\n\n const { x, y, placement, middlewareData } = await computePosition(virtualElement, this.floatingRef, {\n placement: this.placement,\n middleware: middlewareList,\n strategy: 'fixed',\n });\n\n Object.assign(this.floatingRef.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n // Arrow positioning\n if (this.showArrow && this.arrowRef && middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n const staticSide = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]] as string;\n\n Object.assign(this.arrowRef.style, {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n [staticSide]: '-4px',\n });\n }\n\n this.floatingRef.setAttribute('data-placement', placement);\n }\n\n private startAutoUpdate() {\n if (!this.triggerRef || !this.floatingRef) return;\n\n this.cleanupAutoUpdate = autoUpdate(this.triggerRef, this.floatingRef, () => this.calculatePosition(), {\n ancestorScroll: true,\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n });\n }\n\n private stopAutoUpdate() {\n this.cleanupAutoUpdate?.();\n this.cleanupAutoUpdate = undefined;\n }\n\n private handleToggle = (event: ToggleEvent) => {\n if (event.newState === 'open' && !this.isVisible) {\n this.isVisible = true;\n } else if (event.newState === 'closed' && this.isVisible) {\n this.isVisible = false;\n }\n };\n\n componentDidLoad() {\n // Toggle event listener (Popover API)\n this.floatingRef?.addEventListener('toggle', this.handleToggle as EventListener);\n\n // Initial trigger setup - manually trigger slot change handler\n this.handleTriggerSlotChange();\n\n // Initial state sync\n if (this.visible) {\n this.showInternal();\n }\n }\n\n disconnectedCallback() {\n this.clearTimeouts();\n this.stopAutoUpdate();\n this.removeTriggerListeners();\n this.removeOutsideClickListener();\n\n if (this.floatingRef) {\n this.floatingRef.removeEventListener('toggle', this.handleToggle as EventListener);\n\n if (this.isVisible) {\n try {\n this.floatingRef.hidePopover();\n } catch (e) {\n // Element might already be removed\n }\n }\n }\n }\n\n private linkedClass = tv({\n slots: {\n wrapper: 'inline-block',\n floating: ['bcm-ui-element', 'fixed', 'bg-color-basic-base', 'rounded-md', 'shadow-lg', 'border', 'border-color-basic-subtle'],\n arrow: ['absolute', 'w-2', 'h-2', 'bg-color-basic-base', 'border', 'border-color-basic-subtle', 'rotate-45'],\n content: 'bg-color-basic-base',\n },\n });\n\n render() {\n const { wrapper, floating, arrow, content } = this.linkedClass();\n\n return (\n <Host>\n <div class={wrapper()}>\n {/* Trigger slot */}\n <slot name=\"trigger\" onSlotchange={this.handleTriggerSlotChange}></slot>\n\n {/* Floating element with Popover API */}\n <div\n ref={el => (this.floatingRef = el as HTMLElement)}\n id={this.componentId}\n part=\"floating\"\n class={floating()}\n // @ts-ignore - popover is a valid HTML attribute\n popover=\"manual\"\n role=\"dialog\"\n >\n {/* Arrow */}\n {this.showArrow && <div ref={el => (this.arrowRef = el as HTMLElement)} part=\"arrow\" class={arrow()} />}\n\n {/* Content */}\n <div part=\"content\" class={content()}>\n <slot></slot>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { r as registerInstance } from './index-B6Ppbs5O.js';
|
|
2
|
+
|
|
3
|
+
const BaseFormControl = class {
|
|
4
|
+
constructor(hostRef) {
|
|
5
|
+
registerInstance(this, hostRef);
|
|
6
|
+
}
|
|
7
|
+
validationMode = 'native';
|
|
8
|
+
/** Form field name */
|
|
9
|
+
name;
|
|
10
|
+
/** Required state */
|
|
11
|
+
required = false;
|
|
12
|
+
/** Disabled state */
|
|
13
|
+
disabled = false;
|
|
14
|
+
/** Optional readonly support */
|
|
15
|
+
readonly = false;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const BaseChoiceControl = class extends BaseFormControl {
|
|
19
|
+
constructor(hostRef) {
|
|
20
|
+
super();
|
|
21
|
+
registerInstance(this, hostRef);
|
|
22
|
+
}
|
|
23
|
+
/** Checked state */
|
|
24
|
+
checked = false;
|
|
25
|
+
/** Value submitted when checked */
|
|
26
|
+
value = 'on';
|
|
27
|
+
// --------------------------------------------------
|
|
28
|
+
// Shared behavior
|
|
29
|
+
// --------------------------------------------------
|
|
30
|
+
toggleChecked() {
|
|
31
|
+
if (this.disabled)
|
|
32
|
+
return;
|
|
33
|
+
this.checked = !this.checked;
|
|
34
|
+
}
|
|
35
|
+
// --------------------------------------------------
|
|
36
|
+
// Watchers
|
|
37
|
+
// --------------------------------------------------
|
|
38
|
+
onStateChange() {
|
|
39
|
+
this.updateFormValueAndValidity();
|
|
40
|
+
}
|
|
41
|
+
// --------------------------------------------------
|
|
42
|
+
// Form lifecycle
|
|
43
|
+
// --------------------------------------------------
|
|
44
|
+
formResetCallback() {
|
|
45
|
+
this.checked = false;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { BaseChoiceControl as B };
|
|
50
|
+
//# sourceMappingURL=base-choice-control-CKR8UdZ6.js.map
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=base-choice-control-CKR8UdZ6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-choice-control-CKR8UdZ6.js","sources":["src/components/_shared/form/base-form-control.ts","src/components/_shared/form/base-choice-control.ts"],"sourcesContent":["import { Prop } from '@stencil/core';\n\nexport abstract class BaseFormControl {\n\n @Prop() validationMode: 'native' | 'silent' | 'none' = 'native';\n\n /** Form field name */\n @Prop() name?: string;\n\n /** Required state */\n @Prop() required = false;\n\n /** Disabled state */\n @Prop() disabled = false;\n\n /** Optional readonly support */\n @Prop() readonly = false;\n}\n","// src/components/_shared/form/base-choice-control.ts\nimport { Prop, Watch } from '@stencil/core';\nimport { BaseFormControl } from './base-form-control';\n\nexport abstract class BaseChoiceControl extends BaseFormControl {\n /** Checked state */\n @Prop({ mutable: true }) checked = false;\n\n /** Value submitted when checked */\n @Prop() value: string = 'on';\n\n /**\n * Must be implemented by component\n * (because ElementInternals live in the component)\n */\n protected abstract updateFormValueAndValidity(): void;\n\n // --------------------------------------------------\n // Shared behavior\n // --------------------------------------------------\n\n protected toggleChecked() {\n if (this.disabled) return;\n this.checked = !this.checked;\n }\n\n // --------------------------------------------------\n // Watchers\n // --------------------------------------------------\n\n @Watch('checked')\n @Watch('required')\n @Watch('disabled')\n @Watch('value')\n protected onStateChange() {\n this.updateFormValueAndValidity();\n }\n\n // --------------------------------------------------\n // Form lifecycle\n // --------------------------------------------------\n\n formResetCallback() {\n this.checked = false;\n }\n}\n"],"names":[],"mappings":";;MAEsB,eAAe,GAAA,MAAA;;;;IAEzB,cAAc,GAAiC,QAAQ;;AAGvD,IAAA,IAAI;;IAGJ,QAAQ,GAAG,KAAK;;IAGhB,QAAQ,GAAG,KAAK;;IAGhB,QAAQ,GAAG,KAAK;;;MCZN,iBAAkB,GAAA,cAAQ,eAAe,CAAA;;;;;;IAElC,OAAO,GAAG,KAAK;;IAGhC,KAAK,GAAW,IAAI;;;;IAYlB,aAAa,GAAA;QACnB,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;;;;;IAWtB,aAAa,GAAA;QACnB,IAAI,CAAC,0BAA0B,EAAE;;;;;IAOrC,iBAAiB,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent,
|
|
1
|
+
import { r as registerInstance, c as createEvent, a as getElement, h } from './index-B6Ppbs5O.js';
|
|
2
2
|
|
|
3
3
|
const accordionGroupCss = ".block{display:block}:host{--bcm-accordion-border:var(--bcm-ui-color-border-default);--bcm-accordion-radius:6px;display:block;width:100%}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.collapse{visibility:collapse}.static{position:static}.flex{display:flex}.w-full{width:100%}.flex-col{flex-direction:column}.rounded-\\[--bcm-accordion-radius\\]{border-radius:var(--bcm-accordion-radius)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-accordion-border\\]{border-color:var(--bcm-accordion-border)}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}";
|
|
4
4
|
|
|
@@ -6,22 +6,14 @@ const BcmAccordionGroup = class {
|
|
|
6
6
|
constructor(hostRef) {
|
|
7
7
|
registerInstance(this, hostRef);
|
|
8
8
|
this.bcmAccordionGroupChange = createEvent(this, "bcmAccordionGroupChange", 1);
|
|
9
|
-
/** Controls whether multiple accordions can be expanded simultaneously */
|
|
10
|
-
this.multi = false;
|
|
11
|
-
/** Array of accordion elements within the group */
|
|
12
|
-
this.accordionItems = [];
|
|
13
|
-
/**
|
|
14
|
-
* Updates the accordion items array when slot content changes
|
|
15
|
-
*/
|
|
16
|
-
this.handleSlotChange = () => {
|
|
17
|
-
this.accordionItems = Array.from(this.host.querySelectorAll('bcm-accordion'));
|
|
18
|
-
this.setGroupBehavior();
|
|
19
|
-
// Validate accordion items
|
|
20
|
-
if (this.accordionItems.length === 0) {
|
|
21
|
-
console.warn('No accordion items found in accordion group');
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
9
|
}
|
|
10
|
+
get host() { return getElement(this); }
|
|
11
|
+
/** Controls whether multiple accordions can be expanded simultaneously */
|
|
12
|
+
multi = false;
|
|
13
|
+
/** Array of accordion elements within the group */
|
|
14
|
+
accordionItems = [];
|
|
15
|
+
/** Event emitted when any accordion's expanded state changes */
|
|
16
|
+
bcmAccordionGroupChange;
|
|
25
17
|
/**
|
|
26
18
|
* Expands all accordions in the group
|
|
27
19
|
* Only available when multi=true
|
|
@@ -53,12 +45,23 @@ const BcmAccordionGroup = class {
|
|
|
53
45
|
item.group = true;
|
|
54
46
|
});
|
|
55
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Updates the accordion items array when slot content changes
|
|
50
|
+
*/
|
|
51
|
+
handleSlotChange = () => {
|
|
52
|
+
this.accordionItems = Array.from(this.host.querySelectorAll('bcm-accordion'));
|
|
53
|
+
this.setGroupBehavior();
|
|
54
|
+
// Validate accordion items
|
|
55
|
+
if (this.accordionItems.length === 0) {
|
|
56
|
+
console.warn('No accordion items found in accordion group');
|
|
57
|
+
}
|
|
58
|
+
};
|
|
56
59
|
/**
|
|
57
60
|
* Handles state changes of individual accordions
|
|
58
61
|
*/
|
|
59
62
|
handleAccordionChange(event) {
|
|
60
63
|
this.handleSlotChange();
|
|
61
|
-
const { expanded, source } = event
|
|
64
|
+
const { expanded, source } = event?.detail;
|
|
62
65
|
if (!this.multi) {
|
|
63
66
|
this.accordionItems.forEach(item => {
|
|
64
67
|
if (item !== source) {
|
|
@@ -78,7 +81,6 @@ const BcmAccordionGroup = class {
|
|
|
78
81
|
render() {
|
|
79
82
|
return (h("div", { key: '1443f4c2187c45c1679e1543cdc7755001fb7820', class: "flex flex-col bcm-ui-element w-full border border-solid border-[--bcm-accordion-border] rounded-[--bcm-accordion-radius]", role: "group", "aria-label": "Accordion group" }, h("slot", { key: '338de4f269b615c11097ef5dd01146a5f593186f', onSlotchange: this.handleSlotChange })));
|
|
80
83
|
}
|
|
81
|
-
get host() { return getElement(this); }
|
|
82
84
|
};
|
|
83
85
|
BcmAccordionGroup.style = accordionGroupCss;
|
|
84
86
|
|