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
|
@@ -12,13 +12,13 @@ import { AvatarShape, AvatarSize, AvatarStatus } from "./components/avatar/types
|
|
|
12
12
|
import { ButtonKind, ButtonPosition, ButtonSize, ButtonStatus, ButtonType, ButtonVariant, IconPosition } from "./components/button/types";
|
|
13
13
|
import { ChipKind, ChipSize, ChipStatus } from "./components/chip/types";
|
|
14
14
|
import { DrawerPosition, DrawerSize } from "./components/drawer/types";
|
|
15
|
+
import { BcmUploadErrorMessages, BcmUploadItem } from "./components/upload/file-upload.component";
|
|
15
16
|
import { InputSize, InputStatus, InputType } from "./components/input/types";
|
|
16
17
|
import { Event } from "./stencil-public-runtime";
|
|
17
18
|
import { TriggerType } from "./components/linked/linked.component";
|
|
18
19
|
import { Placement } from "@floating-ui/dom";
|
|
19
20
|
import { ModalPlacement, ModalSize } from "./components/modal/modal.component";
|
|
20
21
|
import { PopConfirmPlacement, PopConfirmSize, PopConfirmStatus } from "./components/pop-confirm/pop-confirm.component";
|
|
21
|
-
import { SegmentedPickerSize } from "./components/segmented-picker/types";
|
|
22
22
|
import { TextSize, TextVariant } from "./components/text/text.types";
|
|
23
23
|
import { InputSize as InputSize1, InputStatus as InputStatus1, TextareaResize } from "./components/textarea/types";
|
|
24
24
|
import { TooltipPlacement, TooltipSize, TooltipTrigger } from "./components/tooltip/tooltip.component";
|
|
@@ -29,13 +29,13 @@ export { AvatarShape, AvatarSize, AvatarStatus } from "./components/avatar/types
|
|
|
29
29
|
export { ButtonKind, ButtonPosition, ButtonSize, ButtonStatus, ButtonType, ButtonVariant, IconPosition } from "./components/button/types";
|
|
30
30
|
export { ChipKind, ChipSize, ChipStatus } from "./components/chip/types";
|
|
31
31
|
export { DrawerPosition, DrawerSize } from "./components/drawer/types";
|
|
32
|
+
export { BcmUploadErrorMessages, BcmUploadItem } from "./components/upload/file-upload.component";
|
|
32
33
|
export { InputSize, InputStatus, InputType } from "./components/input/types";
|
|
33
34
|
export { Event } from "./stencil-public-runtime";
|
|
34
35
|
export { TriggerType } from "./components/linked/linked.component";
|
|
35
36
|
export { Placement } from "@floating-ui/dom";
|
|
36
37
|
export { ModalPlacement, ModalSize } from "./components/modal/modal.component";
|
|
37
38
|
export { PopConfirmPlacement, PopConfirmSize, PopConfirmStatus } from "./components/pop-confirm/pop-confirm.component";
|
|
38
|
-
export { SegmentedPickerSize } from "./components/segmented-picker/types";
|
|
39
39
|
export { TextSize, TextVariant } from "./components/text/text.types";
|
|
40
40
|
export { InputSize as InputSize1, InputStatus as InputStatus1, TextareaResize } from "./components/textarea/types";
|
|
41
41
|
export { TooltipPlacement, TooltipSize, TooltipTrigger } from "./components/tooltip/tooltip.component";
|
|
@@ -504,58 +504,122 @@ export namespace Components {
|
|
|
504
504
|
"status"?: ButtonStatus;
|
|
505
505
|
}
|
|
506
506
|
/**
|
|
507
|
-
* @
|
|
508
|
-
*
|
|
507
|
+
* @component BcmCheckbox
|
|
508
|
+
* @description A form-associated checkbox component representing a boolean choice.
|
|
509
|
+
* Integrates with native HTML forms via ElementInternals while supporting
|
|
510
|
+
* **three validation strategies** via `validation-mode`:
|
|
511
|
+
* - **`native`**
|
|
512
|
+
* - Participates in native browser constraint validation.
|
|
513
|
+
* - Sets the underlying input's `required`.
|
|
514
|
+
* - Browser may show native validation bubbles when submit/reportValidity happens.
|
|
515
|
+
* - **`silent`**
|
|
516
|
+
* - Does **not** set native `required` (prevents browser bubble).
|
|
517
|
+
* - Computes "missing required" internally and exposes it via `error` + `caption`.
|
|
518
|
+
* - UI errors are **gated**: shown only after `touched` or a form submit attempt.
|
|
519
|
+
* - **`none`**
|
|
520
|
+
* - Value-only mode: submits value but never becomes invalid.
|
|
521
|
+
* ## UI error gating (silent mode)
|
|
522
|
+
* - `touched` becomes true after first user interaction
|
|
523
|
+
* - `submitAttempted` becomes true when the parent form emits `submit`
|
|
524
|
+
* ## Value behavior
|
|
525
|
+
* - When checked → submits `value` (default: `"on"`).
|
|
526
|
+
* - When unchecked → submits no value (`null`).
|
|
527
|
+
* - When disabled → no submission and no validity participation.
|
|
528
|
+
* ## Shadow Parts
|
|
529
|
+
* - `checkbox` → root container
|
|
530
|
+
* - `control` → visual checkbox box
|
|
531
|
+
* - `icon` → icon container (check or minus)
|
|
532
|
+
* - `label` → label text
|
|
533
|
+
* - `caption` → helper/error text (silent mode UI)
|
|
534
|
+
* - `input` → hidden native input
|
|
535
|
+
* @example Basic usage
|
|
536
|
+
* <bcm-checkbox name="terms" required>
|
|
537
|
+
* I agree to the terms and conditions
|
|
538
|
+
* </bcm-checkbox>
|
|
539
|
+
* @example Silent validation (no native bubble)
|
|
540
|
+
* <form>
|
|
541
|
+
* <bcm-checkbox name="newsletter" required validation-mode="silent">
|
|
542
|
+
* Subscribe to newsletter
|
|
543
|
+
* </bcm-checkbox>
|
|
544
|
+
* <button type="submit">Submit</button>
|
|
545
|
+
* </form>
|
|
546
|
+
* @example Value-only mode
|
|
547
|
+
* <bcm-checkbox name="analytics" validation-mode="none">
|
|
548
|
+
* Allow analytics
|
|
549
|
+
* </bcm-checkbox>
|
|
509
550
|
*/
|
|
510
551
|
interface BcmCheckbox {
|
|
511
552
|
/**
|
|
512
|
-
* Unique ID for the component. Automatically generated if not specified.
|
|
553
|
+
* Unique ID for the component. Automatically generated if not specified. Used to bind the visible label to the internal input.
|
|
513
554
|
* @default generateId('bcm-checkbox')
|
|
514
555
|
*/
|
|
515
556
|
"_id"?: string;
|
|
516
557
|
/**
|
|
517
|
-
*
|
|
558
|
+
* Helper / error caption (silent mode UI)
|
|
559
|
+
*/
|
|
560
|
+
"caption"?: string;
|
|
561
|
+
/**
|
|
562
|
+
* Checked state
|
|
518
563
|
* @default false
|
|
519
564
|
*/
|
|
520
565
|
"checked": boolean;
|
|
521
566
|
/**
|
|
522
|
-
*
|
|
567
|
+
* Disabled state
|
|
523
568
|
* @default false
|
|
524
569
|
*/
|
|
525
570
|
"disabled": boolean;
|
|
526
571
|
/**
|
|
527
|
-
*
|
|
572
|
+
* Visual error state. - In `silent` mode this can be managed internally. - In other modes you can set it externally as well.
|
|
528
573
|
* @default false
|
|
529
574
|
*/
|
|
530
575
|
"error": boolean;
|
|
531
576
|
/**
|
|
532
|
-
*
|
|
577
|
+
* Makes checkbox occupy full width (if your styles support it).
|
|
533
578
|
* @default false
|
|
534
579
|
*/
|
|
535
580
|
"fullWidth": boolean;
|
|
536
581
|
/**
|
|
537
|
-
*
|
|
582
|
+
* Indeterminate (mixed) state. Useful when a group selection is partially selected.
|
|
538
583
|
* @default false
|
|
539
584
|
*/
|
|
540
585
|
"indeterminate": boolean;
|
|
541
586
|
/**
|
|
542
|
-
*
|
|
587
|
+
* Visible label text (optional). You can also use the default slot.
|
|
543
588
|
*/
|
|
544
589
|
"label"?: string;
|
|
545
590
|
/**
|
|
546
|
-
*
|
|
591
|
+
* Label position relative to the checkbox control.
|
|
547
592
|
* @default 'right'
|
|
548
593
|
*/
|
|
549
594
|
"labelPosition": 'left' | 'right';
|
|
550
595
|
/**
|
|
551
|
-
*
|
|
596
|
+
* Form field name
|
|
552
597
|
*/
|
|
553
|
-
"name"
|
|
598
|
+
"name"?: string;
|
|
599
|
+
/**
|
|
600
|
+
* Optional readonly support
|
|
601
|
+
* @default false
|
|
602
|
+
*/
|
|
603
|
+
"readonly": boolean;
|
|
604
|
+
/**
|
|
605
|
+
* Required state
|
|
606
|
+
* @default false
|
|
607
|
+
*/
|
|
608
|
+
"required": boolean;
|
|
554
609
|
/**
|
|
555
|
-
* Size variant
|
|
610
|
+
* Size variant (affects control + typography).
|
|
556
611
|
* @default 'medium'
|
|
557
612
|
*/
|
|
558
613
|
"size": 'small' | 'medium' | 'large';
|
|
614
|
+
/**
|
|
615
|
+
* @default 'native'
|
|
616
|
+
*/
|
|
617
|
+
"validationMode": 'native' | 'silent' | 'none';
|
|
618
|
+
/**
|
|
619
|
+
* Value submitted when checked
|
|
620
|
+
* @default 'on'
|
|
621
|
+
*/
|
|
622
|
+
"value": string;
|
|
559
623
|
}
|
|
560
624
|
/**
|
|
561
625
|
* @component BcmChip
|
|
@@ -763,6 +827,56 @@ export namespace Components {
|
|
|
763
827
|
"selected": boolean;
|
|
764
828
|
"text": string;
|
|
765
829
|
}
|
|
830
|
+
interface BcmFileUpload {
|
|
831
|
+
/**
|
|
832
|
+
* @default '.xls,.pdf'
|
|
833
|
+
*/
|
|
834
|
+
"accept": string;
|
|
835
|
+
/**
|
|
836
|
+
* @default ''
|
|
837
|
+
*/
|
|
838
|
+
"caption"?: string;
|
|
839
|
+
/**
|
|
840
|
+
* Allows consumers to override default error messages.
|
|
841
|
+
*/
|
|
842
|
+
"customErrorMessages"?: BcmUploadErrorMessages;
|
|
843
|
+
/**
|
|
844
|
+
* @default false
|
|
845
|
+
*/
|
|
846
|
+
"disabled": boolean;
|
|
847
|
+
/**
|
|
848
|
+
* @default ''
|
|
849
|
+
*/
|
|
850
|
+
"label": string;
|
|
851
|
+
/**
|
|
852
|
+
* Maximum number of files allowed in total. Only applied when `multiple` is true.
|
|
853
|
+
*/
|
|
854
|
+
"maxFileCount"?: number;
|
|
855
|
+
/**
|
|
856
|
+
* @default 2
|
|
857
|
+
*/
|
|
858
|
+
"maxSize": number;
|
|
859
|
+
/**
|
|
860
|
+
* @default false
|
|
861
|
+
*/
|
|
862
|
+
"multiple": boolean;
|
|
863
|
+
/**
|
|
864
|
+
* @default 'file'
|
|
865
|
+
*/
|
|
866
|
+
"name": string;
|
|
867
|
+
/**
|
|
868
|
+
* @default false
|
|
869
|
+
*/
|
|
870
|
+
"required": boolean;
|
|
871
|
+
/**
|
|
872
|
+
* @default 'medium'
|
|
873
|
+
*/
|
|
874
|
+
"size": 'medium' | 'small';
|
|
875
|
+
/**
|
|
876
|
+
* Reserved for future backend upload integration. Currently does not affect component behavior.
|
|
877
|
+
*/
|
|
878
|
+
"uploadUrl"?: string;
|
|
879
|
+
}
|
|
766
880
|
interface BcmInput {
|
|
767
881
|
/**
|
|
768
882
|
* Input id
|
|
@@ -1406,6 +1520,10 @@ export namespace Components {
|
|
|
1406
1520
|
"trigger": 'click' | 'hover' | 'hover focus';
|
|
1407
1521
|
}
|
|
1408
1522
|
interface BcmRadio {
|
|
1523
|
+
/**
|
|
1524
|
+
* @default generateId('bcm-radio')
|
|
1525
|
+
*/
|
|
1526
|
+
"_id"?: string;
|
|
1409
1527
|
/**
|
|
1410
1528
|
* Whether the radio button is selected.
|
|
1411
1529
|
* @prop
|
|
@@ -1448,6 +1566,11 @@ export namespace Components {
|
|
|
1448
1566
|
* @defaultValue false
|
|
1449
1567
|
*/
|
|
1450
1568
|
"readonly": boolean;
|
|
1569
|
+
/**
|
|
1570
|
+
* Whether at least one radio in this group is required. (HTML)
|
|
1571
|
+
* @default false
|
|
1572
|
+
*/
|
|
1573
|
+
"required": boolean;
|
|
1451
1574
|
/**
|
|
1452
1575
|
* Defines the size of the radio button: 'small' | 'medium' | 'large'.
|
|
1453
1576
|
* @prop
|
|
@@ -1527,49 +1650,83 @@ export namespace Components {
|
|
|
1527
1650
|
*/
|
|
1528
1651
|
"value": string;
|
|
1529
1652
|
}
|
|
1530
|
-
|
|
1653
|
+
/**
|
|
1654
|
+
* Individual segment option component
|
|
1655
|
+
*/
|
|
1656
|
+
interface BcmSegment {
|
|
1657
|
+
/**
|
|
1658
|
+
* Index of currently active segment (inherited from parent)
|
|
1659
|
+
* @default 0
|
|
1660
|
+
*/
|
|
1661
|
+
"activeIndex": number;
|
|
1531
1662
|
/**
|
|
1532
1663
|
* Disabled state
|
|
1533
1664
|
* @default false
|
|
1534
1665
|
*/
|
|
1535
1666
|
"disabled": boolean;
|
|
1536
1667
|
/**
|
|
1537
|
-
*
|
|
1668
|
+
* Index of this segment (inherited from parent)
|
|
1669
|
+
* @default 0
|
|
1670
|
+
*/
|
|
1671
|
+
"index": number;
|
|
1672
|
+
/**
|
|
1673
|
+
* Selected state (controlled by parent)
|
|
1538
1674
|
* @default false
|
|
1539
1675
|
*/
|
|
1540
|
-
"
|
|
1676
|
+
"selected": boolean;
|
|
1541
1677
|
/**
|
|
1542
|
-
*
|
|
1678
|
+
* Size variant (inherited from parent)
|
|
1543
1679
|
* @default 'medium'
|
|
1544
1680
|
*/
|
|
1545
|
-
"size":
|
|
1681
|
+
"size": 'small' | 'medium' | 'large';
|
|
1546
1682
|
/**
|
|
1547
|
-
*
|
|
1683
|
+
* Unique identifier for this segment
|
|
1548
1684
|
*/
|
|
1549
|
-
"value"
|
|
1685
|
+
"value": string;
|
|
1550
1686
|
}
|
|
1551
|
-
|
|
1687
|
+
/**
|
|
1688
|
+
* Modern Segmented Picker component with CSS Grid-based indicator
|
|
1689
|
+
*/
|
|
1690
|
+
interface BcmSegmentedPicker {
|
|
1552
1691
|
/**
|
|
1553
|
-
*
|
|
1692
|
+
* Disabled state
|
|
1554
1693
|
* @default false
|
|
1555
1694
|
*/
|
|
1556
1695
|
"disabled": boolean;
|
|
1557
|
-
"getWidth": () => Promise<number>;
|
|
1558
1696
|
/**
|
|
1559
|
-
*
|
|
1697
|
+
* Full width flag
|
|
1698
|
+
* @default false
|
|
1560
1699
|
*/
|
|
1561
|
-
"
|
|
1700
|
+
"fullWidth": boolean;
|
|
1562
1701
|
/**
|
|
1563
|
-
*
|
|
1702
|
+
* Public method to get active segment value
|
|
1703
|
+
*/
|
|
1704
|
+
"getValue": () => Promise<string>;
|
|
1705
|
+
/**
|
|
1706
|
+
* Name attribute for form association
|
|
1707
|
+
*/
|
|
1708
|
+
"name": string;
|
|
1709
|
+
/**
|
|
1710
|
+
* Whether this field is required in a form
|
|
1564
1711
|
* @default false
|
|
1565
1712
|
*/
|
|
1566
|
-
"
|
|
1713
|
+
"required": boolean;
|
|
1714
|
+
/**
|
|
1715
|
+
* Public method to programmatically set active segment
|
|
1716
|
+
*/
|
|
1717
|
+
"setValue": (value: string) => Promise<void>;
|
|
1567
1718
|
/**
|
|
1568
|
-
*
|
|
1719
|
+
* Enable shadow on container
|
|
1720
|
+
* @default false
|
|
1569
1721
|
*/
|
|
1570
|
-
"
|
|
1722
|
+
"shadow": boolean;
|
|
1571
1723
|
/**
|
|
1572
|
-
*
|
|
1724
|
+
* Size variant
|
|
1725
|
+
* @default 'medium'
|
|
1726
|
+
*/
|
|
1727
|
+
"size": 'small' | 'medium' | 'large';
|
|
1728
|
+
/**
|
|
1729
|
+
* Selected segment value
|
|
1573
1730
|
*/
|
|
1574
1731
|
"value": string;
|
|
1575
1732
|
}
|
|
@@ -1582,50 +1739,79 @@ export namespace Components {
|
|
|
1582
1739
|
}
|
|
1583
1740
|
/**
|
|
1584
1741
|
* @component BcmSwitch
|
|
1585
|
-
* @description A
|
|
1586
|
-
*
|
|
1742
|
+
* @description A form-associated toggle switch component representing a boolean choice.
|
|
1743
|
+
* It behaves like a checkbox and integrates with native HTML forms via ElementInternals.
|
|
1744
|
+
* This component supports **three validation strategies** via `validation-mode`:
|
|
1745
|
+
* - **`native`**:
|
|
1746
|
+
* - Uses native browser constraint validation.
|
|
1747
|
+
* - Sets the underlying input's `required` attribute.
|
|
1748
|
+
* - Browser may show the native validation bubble when the form calls `reportValidity()` / submit validation runs.
|
|
1749
|
+
* - **`silent`**:
|
|
1750
|
+
* - Does **not** rely on native `required` (prevents the browser bubble).
|
|
1751
|
+
* - Computes the "missing required" state internally and exposes it via `error` + `caption`.
|
|
1752
|
+
* - UI errors are **gated**: they appear only after the control is touched or after a submit attempt.
|
|
1753
|
+
* - **`none`**:
|
|
1754
|
+
* - Value-only mode (headless): participates in form value submission but never becomes invalid.
|
|
1755
|
+
* ## UI error gating (silent mode)
|
|
1756
|
+
* To avoid showing errors on initial render, the component tracks:
|
|
1757
|
+
* - `touched`: set after the first user interaction
|
|
1758
|
+
* - `submitAttempted`: set when the parent form emits `submit`
|
|
1759
|
+
* Only when `touched || submitAttempted` the component will show `error/caption` in `silent` mode.
|
|
1760
|
+
* ## Value behavior
|
|
1761
|
+
* - When checked, the component submits its `value` (default: `"on"`).
|
|
1762
|
+
* - When unchecked, no value is submitted.
|
|
1763
|
+
* - When disabled, the component does not participate in submission or validity.
|
|
1587
1764
|
* @example Basic usage
|
|
1588
|
-
* <bcm-switch label="
|
|
1589
|
-
* @example
|
|
1765
|
+
* <bcm-switch name="newsletter" label="Receive newsletter?" />
|
|
1766
|
+
* @example Required with silent validation (no native bubble)
|
|
1767
|
+
* <form>
|
|
1590
1768
|
* <bcm-switch
|
|
1769
|
+
* name="terms"
|
|
1591
1770
|
* label="Accept terms"
|
|
1592
|
-
*
|
|
1593
|
-
*
|
|
1594
|
-
* </bcm-switch>
|
|
1595
|
-
* @example Disabled state
|
|
1596
|
-
* <bcm-switch
|
|
1597
|
-
* label="Advanced features"
|
|
1598
|
-
* disabled={true}>
|
|
1599
|
-
* </bcm-switch>
|
|
1600
|
-
* @example With custom size and label position
|
|
1601
|
-
* <bcm-switch
|
|
1602
|
-
* label="Dark mode"
|
|
1603
|
-
* size="large"
|
|
1604
|
-
* labelPosition="left">
|
|
1771
|
+
* required
|
|
1772
|
+
* validation-mode="silent">
|
|
1605
1773
|
* </bcm-switch>
|
|
1774
|
+
* <button type="submit">Submit</button>
|
|
1775
|
+
* </form>
|
|
1776
|
+
* @example Native validation mode (may show native bubble)
|
|
1777
|
+
* <bcm-switch name="terms" label="Accept terms" required validation-mode="native" />
|
|
1778
|
+
* @example Value-only mode (no validation)
|
|
1779
|
+
* <bcm-switch name="analytics" label="Allow analytics" validation-mode="none" />
|
|
1780
|
+
* @csspart base - Root container
|
|
1781
|
+
* @csspart switch-wrapper - Wrapper containing label + track
|
|
1782
|
+
* @csspart input - Hidden native input
|
|
1783
|
+
* @csspart label - Text label
|
|
1784
|
+
* @csspart dot-container - Switch track
|
|
1785
|
+
* @csspart dot - Switch knob
|
|
1786
|
+
* @csspart caption - Helper/error text
|
|
1606
1787
|
*/
|
|
1607
1788
|
interface BcmSwitch {
|
|
1608
1789
|
/**
|
|
1609
|
-
*
|
|
1790
|
+
* Unique id (optional). Generated by default.
|
|
1791
|
+
* @default generateId('bcm-switch')
|
|
1792
|
+
*/
|
|
1793
|
+
"_id"?: string;
|
|
1794
|
+
/**
|
|
1795
|
+
* Helper / error text shown under the switch
|
|
1610
1796
|
*/
|
|
1611
1797
|
"caption"?: string;
|
|
1612
1798
|
/**
|
|
1613
|
-
*
|
|
1799
|
+
* Checked state
|
|
1614
1800
|
* @default false
|
|
1615
1801
|
*/
|
|
1616
1802
|
"checked": boolean;
|
|
1617
1803
|
/**
|
|
1618
|
-
*
|
|
1804
|
+
* Disabled state
|
|
1619
1805
|
* @default false
|
|
1620
1806
|
*/
|
|
1621
1807
|
"disabled": boolean;
|
|
1622
1808
|
/**
|
|
1623
|
-
*
|
|
1809
|
+
* Visual error state (manual/external). In silent mode this can be auto-managed.
|
|
1624
1810
|
* @default false
|
|
1625
1811
|
*/
|
|
1626
1812
|
"error": boolean;
|
|
1627
1813
|
/**
|
|
1628
|
-
*
|
|
1814
|
+
* Visible label text
|
|
1629
1815
|
*/
|
|
1630
1816
|
"label": string;
|
|
1631
1817
|
/**
|
|
@@ -1634,128 +1820,93 @@ export namespace Components {
|
|
|
1634
1820
|
*/
|
|
1635
1821
|
"labelPosition": 'left' | 'right';
|
|
1636
1822
|
/**
|
|
1637
|
-
*
|
|
1823
|
+
* Form field name
|
|
1638
1824
|
*/
|
|
1639
|
-
"name"
|
|
1825
|
+
"name"?: string;
|
|
1640
1826
|
/**
|
|
1641
|
-
*
|
|
1827
|
+
* Optional readonly support
|
|
1642
1828
|
* @default false
|
|
1643
1829
|
*/
|
|
1644
1830
|
"readonly": boolean;
|
|
1645
1831
|
/**
|
|
1646
|
-
*
|
|
1832
|
+
* Required state
|
|
1647
1833
|
* @default false
|
|
1648
1834
|
*/
|
|
1649
1835
|
"required": boolean;
|
|
1650
1836
|
/**
|
|
1651
|
-
* Size variant
|
|
1837
|
+
* Size variant
|
|
1652
1838
|
* @default 'medium'
|
|
1653
1839
|
*/
|
|
1654
1840
|
"size": 'small' | 'medium' | 'large';
|
|
1655
1841
|
/**
|
|
1656
|
-
*
|
|
1842
|
+
* @default 'native'
|
|
1843
|
+
*/
|
|
1844
|
+
"validationMode": 'native' | 'silent' | 'none';
|
|
1845
|
+
/**
|
|
1846
|
+
* Value submitted when checked
|
|
1847
|
+
* @default 'on'
|
|
1657
1848
|
*/
|
|
1658
1849
|
"value": string;
|
|
1659
1850
|
}
|
|
1660
1851
|
/**
|
|
1661
|
-
*
|
|
1852
|
+
* Individual tab component - self-contained with label and content panel
|
|
1662
1853
|
*/
|
|
1663
|
-
interface
|
|
1664
|
-
/**
|
|
1665
|
-
* Default active tab value
|
|
1666
|
-
*/
|
|
1667
|
-
"defaultValue": string;
|
|
1668
|
-
/**
|
|
1669
|
-
* Disables all tabs
|
|
1670
|
-
*/
|
|
1671
|
-
"disableAllTabs": () => Promise<void>;
|
|
1672
|
-
"disableTab": (value: string) => Promise<void>;
|
|
1673
|
-
/**
|
|
1674
|
-
* Enables all tabs
|
|
1675
|
-
*/
|
|
1676
|
-
"enableAllTabs": () => Promise<void>;
|
|
1677
|
-
"enableTab": (value: string) => Promise<void>;
|
|
1678
|
-
/**
|
|
1679
|
-
* Returns the active tab value
|
|
1680
|
-
*/
|
|
1681
|
-
"getActiveTab": () => Promise<string>;
|
|
1854
|
+
interface BcmTab {
|
|
1682
1855
|
/**
|
|
1683
|
-
*
|
|
1856
|
+
* Active state (controlled by parent)
|
|
1857
|
+
* @default false
|
|
1684
1858
|
*/
|
|
1685
|
-
"
|
|
1859
|
+
"active": boolean;
|
|
1686
1860
|
/**
|
|
1687
|
-
*
|
|
1688
|
-
* @default
|
|
1861
|
+
* Disabled state
|
|
1862
|
+
* @default false
|
|
1689
1863
|
*/
|
|
1690
|
-
"
|
|
1864
|
+
"disabled": boolean;
|
|
1691
1865
|
/**
|
|
1692
|
-
*
|
|
1693
|
-
* @default true
|
|
1866
|
+
* Label text to display in tab button
|
|
1694
1867
|
*/
|
|
1695
|
-
"
|
|
1868
|
+
"label": string;
|
|
1696
1869
|
/**
|
|
1697
|
-
*
|
|
1698
|
-
* @default '
|
|
1870
|
+
* Size variant (inherited from parent)
|
|
1871
|
+
* @default 'md'
|
|
1699
1872
|
*/
|
|
1700
|
-
"
|
|
1701
|
-
}
|
|
1702
|
-
/**
|
|
1703
|
-
* @description Tab content panel component that displays when its corresponding tab is selected
|
|
1704
|
-
*/
|
|
1705
|
-
interface BcmTabsContent {
|
|
1873
|
+
"size": 'sm' | 'md' | 'lg';
|
|
1706
1874
|
/**
|
|
1707
|
-
* Unique identifier
|
|
1875
|
+
* Unique identifier for this tab
|
|
1708
1876
|
*/
|
|
1709
1877
|
"value": string;
|
|
1710
1878
|
}
|
|
1711
1879
|
/**
|
|
1712
|
-
*
|
|
1880
|
+
* Modern Tabs component with CSS-first approach
|
|
1713
1881
|
*/
|
|
1714
|
-
interface
|
|
1882
|
+
interface BcmTabs {
|
|
1715
1883
|
/**
|
|
1716
|
-
*
|
|
1717
|
-
* @default true
|
|
1884
|
+
* Public method to get active tab value
|
|
1718
1885
|
*/
|
|
1719
|
-
"
|
|
1886
|
+
"getActiveTab": () => Promise<string>;
|
|
1720
1887
|
/**
|
|
1721
|
-
*
|
|
1722
|
-
* @default 'full-width'
|
|
1888
|
+
* Public method to programmatically set active tab
|
|
1723
1889
|
*/
|
|
1724
|
-
"
|
|
1725
|
-
}
|
|
1726
|
-
/**
|
|
1727
|
-
* @description Tab trigger component that functions as a clickable tab button
|
|
1728
|
-
*/
|
|
1729
|
-
interface BcmTabsTrigger {
|
|
1890
|
+
"setActiveTab": (value: string) => Promise<void>;
|
|
1730
1891
|
/**
|
|
1731
|
-
*
|
|
1892
|
+
* Enable shadow on main container
|
|
1732
1893
|
* @default false
|
|
1733
1894
|
*/
|
|
1734
|
-
"
|
|
1895
|
+
"shadow": boolean;
|
|
1735
1896
|
/**
|
|
1736
|
-
*
|
|
1737
|
-
* @default
|
|
1897
|
+
* Tab size variant
|
|
1898
|
+
* @default 'md'
|
|
1738
1899
|
*/
|
|
1739
|
-
"
|
|
1900
|
+
"size": 'sm' | 'md' | 'lg';
|
|
1740
1901
|
/**
|
|
1741
|
-
*
|
|
1742
|
-
* @default 'medium'
|
|
1743
|
-
*/
|
|
1744
|
-
"size": 'small' | 'medium' | 'large';
|
|
1745
|
-
/**
|
|
1746
|
-
* Whether to enable smooth animations for transitions
|
|
1747
|
-
* @default true
|
|
1748
|
-
*/
|
|
1749
|
-
"smooth": boolean;
|
|
1750
|
-
/**
|
|
1751
|
-
* Unique identifier value for the tab
|
|
1902
|
+
* Active tab value
|
|
1752
1903
|
*/
|
|
1753
1904
|
"value": string;
|
|
1754
1905
|
/**
|
|
1755
|
-
*
|
|
1756
|
-
* @default '
|
|
1906
|
+
* Visual variant
|
|
1907
|
+
* @default 'line'
|
|
1757
1908
|
*/
|
|
1758
|
-
"variant": '
|
|
1909
|
+
"variant": 'line' | 'enclosed';
|
|
1759
1910
|
}
|
|
1760
1911
|
interface BcmText {
|
|
1761
1912
|
/**
|
|
@@ -2042,6 +2193,10 @@ export interface BcmDropdownItemCustomEvent<T> extends CustomEvent<T> {
|
|
|
2042
2193
|
detail: T;
|
|
2043
2194
|
target: HTMLBcmDropdownItemElement;
|
|
2044
2195
|
}
|
|
2196
|
+
export interface BcmFileUploadCustomEvent<T> extends CustomEvent<T> {
|
|
2197
|
+
detail: T;
|
|
2198
|
+
target: HTMLBcmFileUploadElement;
|
|
2199
|
+
}
|
|
2045
2200
|
export interface BcmInputCustomEvent<T> extends CustomEvent<T> {
|
|
2046
2201
|
detail: T;
|
|
2047
2202
|
target: HTMLBcmInputElement;
|
|
@@ -2070,25 +2225,25 @@ export interface BcmRadioGroupCustomEvent<T> extends CustomEvent<T> {
|
|
|
2070
2225
|
detail: T;
|
|
2071
2226
|
target: HTMLBcmRadioGroupElement;
|
|
2072
2227
|
}
|
|
2073
|
-
export interface
|
|
2228
|
+
export interface BcmSegmentCustomEvent<T> extends CustomEvent<T> {
|
|
2074
2229
|
detail: T;
|
|
2075
|
-
target:
|
|
2230
|
+
target: HTMLBcmSegmentElement;
|
|
2076
2231
|
}
|
|
2077
|
-
export interface
|
|
2232
|
+
export interface BcmSegmentedPickerCustomEvent<T> extends CustomEvent<T> {
|
|
2078
2233
|
detail: T;
|
|
2079
|
-
target:
|
|
2234
|
+
target: HTMLBcmSegmentedPickerElement;
|
|
2080
2235
|
}
|
|
2081
2236
|
export interface BcmSwitchCustomEvent<T> extends CustomEvent<T> {
|
|
2082
2237
|
detail: T;
|
|
2083
2238
|
target: HTMLBcmSwitchElement;
|
|
2084
2239
|
}
|
|
2085
|
-
export interface
|
|
2240
|
+
export interface BcmTabCustomEvent<T> extends CustomEvent<T> {
|
|
2086
2241
|
detail: T;
|
|
2087
|
-
target:
|
|
2242
|
+
target: HTMLBcmTabElement;
|
|
2088
2243
|
}
|
|
2089
|
-
export interface
|
|
2244
|
+
export interface BcmTabsCustomEvent<T> extends CustomEvent<T> {
|
|
2090
2245
|
detail: T;
|
|
2091
|
-
target:
|
|
2246
|
+
target: HTMLBcmTabsElement;
|
|
2092
2247
|
}
|
|
2093
2248
|
export interface BcmTextareaCustomEvent<T> extends CustomEvent<T> {
|
|
2094
2249
|
detail: T;
|
|
@@ -2317,11 +2472,52 @@ declare global {
|
|
|
2317
2472
|
new (): HTMLBcmButtonGroupElement;
|
|
2318
2473
|
};
|
|
2319
2474
|
interface HTMLBcmCheckboxElementEventMap {
|
|
2320
|
-
"bcmCheckboxChange": { element:
|
|
2475
|
+
"bcmCheckboxChange": { element: HTMLInputElement; checked: boolean };
|
|
2321
2476
|
}
|
|
2322
2477
|
/**
|
|
2323
|
-
* @
|
|
2324
|
-
*
|
|
2478
|
+
* @component BcmCheckbox
|
|
2479
|
+
* @description A form-associated checkbox component representing a boolean choice.
|
|
2480
|
+
* Integrates with native HTML forms via ElementInternals while supporting
|
|
2481
|
+
* **three validation strategies** via `validation-mode`:
|
|
2482
|
+
* - **`native`**
|
|
2483
|
+
* - Participates in native browser constraint validation.
|
|
2484
|
+
* - Sets the underlying input's `required`.
|
|
2485
|
+
* - Browser may show native validation bubbles when submit/reportValidity happens.
|
|
2486
|
+
* - **`silent`**
|
|
2487
|
+
* - Does **not** set native `required` (prevents browser bubble).
|
|
2488
|
+
* - Computes "missing required" internally and exposes it via `error` + `caption`.
|
|
2489
|
+
* - UI errors are **gated**: shown only after `touched` or a form submit attempt.
|
|
2490
|
+
* - **`none`**
|
|
2491
|
+
* - Value-only mode: submits value but never becomes invalid.
|
|
2492
|
+
* ## UI error gating (silent mode)
|
|
2493
|
+
* - `touched` becomes true after first user interaction
|
|
2494
|
+
* - `submitAttempted` becomes true when the parent form emits `submit`
|
|
2495
|
+
* ## Value behavior
|
|
2496
|
+
* - When checked → submits `value` (default: `"on"`).
|
|
2497
|
+
* - When unchecked → submits no value (`null`).
|
|
2498
|
+
* - When disabled → no submission and no validity participation.
|
|
2499
|
+
* ## Shadow Parts
|
|
2500
|
+
* - `checkbox` → root container
|
|
2501
|
+
* - `control` → visual checkbox box
|
|
2502
|
+
* - `icon` → icon container (check or minus)
|
|
2503
|
+
* - `label` → label text
|
|
2504
|
+
* - `caption` → helper/error text (silent mode UI)
|
|
2505
|
+
* - `input` → hidden native input
|
|
2506
|
+
* @example Basic usage
|
|
2507
|
+
* <bcm-checkbox name="terms" required>
|
|
2508
|
+
* I agree to the terms and conditions
|
|
2509
|
+
* </bcm-checkbox>
|
|
2510
|
+
* @example Silent validation (no native bubble)
|
|
2511
|
+
* <form>
|
|
2512
|
+
* <bcm-checkbox name="newsletter" required validation-mode="silent">
|
|
2513
|
+
* Subscribe to newsletter
|
|
2514
|
+
* </bcm-checkbox>
|
|
2515
|
+
* <button type="submit">Submit</button>
|
|
2516
|
+
* </form>
|
|
2517
|
+
* @example Value-only mode
|
|
2518
|
+
* <bcm-checkbox name="analytics" validation-mode="none">
|
|
2519
|
+
* Allow analytics
|
|
2520
|
+
* </bcm-checkbox>
|
|
2325
2521
|
*/
|
|
2326
2522
|
interface HTMLBcmCheckboxElement extends Components.BcmCheckbox, HTMLStencilElement {
|
|
2327
2523
|
addEventListener<K extends keyof HTMLBcmCheckboxElementEventMap>(type: K, listener: (this: HTMLBcmCheckboxElement, ev: BcmCheckboxCustomEvent<HTMLBcmCheckboxElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -2473,6 +2669,27 @@ declare global {
|
|
|
2473
2669
|
prototype: HTMLBcmDropdownItemElement;
|
|
2474
2670
|
new (): HTMLBcmDropdownItemElement;
|
|
2475
2671
|
};
|
|
2672
|
+
interface HTMLBcmFileUploadElementEventMap {
|
|
2673
|
+
"bcmFileChange": File[];
|
|
2674
|
+
"bcmFileRemoved": BcmUploadItem;
|
|
2675
|
+
"bcmUploadCanceled": BcmUploadItem;
|
|
2676
|
+
"bcmFocus": FocusEvent;
|
|
2677
|
+
"bcmBlur": FocusEvent;
|
|
2678
|
+
}
|
|
2679
|
+
interface HTMLBcmFileUploadElement extends Components.BcmFileUpload, HTMLStencilElement {
|
|
2680
|
+
addEventListener<K extends keyof HTMLBcmFileUploadElementEventMap>(type: K, listener: (this: HTMLBcmFileUploadElement, ev: BcmFileUploadCustomEvent<HTMLBcmFileUploadElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2681
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2682
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2683
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2684
|
+
removeEventListener<K extends keyof HTMLBcmFileUploadElementEventMap>(type: K, listener: (this: HTMLBcmFileUploadElement, ev: BcmFileUploadCustomEvent<HTMLBcmFileUploadElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2685
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2686
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2687
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2688
|
+
}
|
|
2689
|
+
var HTMLBcmFileUploadElement: {
|
|
2690
|
+
prototype: HTMLBcmFileUploadElement;
|
|
2691
|
+
new (): HTMLBcmFileUploadElement;
|
|
2692
|
+
};
|
|
2476
2693
|
interface HTMLBcmInputElementEventMap {
|
|
2477
2694
|
"bcmInput": InputEvent;
|
|
2478
2695
|
"bcmChange": Event;
|
|
@@ -2846,39 +3063,45 @@ declare global {
|
|
|
2846
3063
|
prototype: HTMLBcmRadioGroupElement;
|
|
2847
3064
|
new (): HTMLBcmRadioGroupElement;
|
|
2848
3065
|
};
|
|
2849
|
-
interface
|
|
2850
|
-
"
|
|
3066
|
+
interface HTMLBcmSegmentElementEventMap {
|
|
3067
|
+
"bcmSegmentClick": string;
|
|
2851
3068
|
}
|
|
2852
|
-
|
|
2853
|
-
|
|
3069
|
+
/**
|
|
3070
|
+
* Individual segment option component
|
|
3071
|
+
*/
|
|
3072
|
+
interface HTMLBcmSegmentElement extends Components.BcmSegment, HTMLStencilElement {
|
|
3073
|
+
addEventListener<K extends keyof HTMLBcmSegmentElementEventMap>(type: K, listener: (this: HTMLBcmSegmentElement, ev: BcmSegmentCustomEvent<HTMLBcmSegmentElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2854
3074
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2855
3075
|
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2856
3076
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2857
|
-
removeEventListener<K extends keyof
|
|
3077
|
+
removeEventListener<K extends keyof HTMLBcmSegmentElementEventMap>(type: K, listener: (this: HTMLBcmSegmentElement, ev: BcmSegmentCustomEvent<HTMLBcmSegmentElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2858
3078
|
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2859
3079
|
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2860
3080
|
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2861
3081
|
}
|
|
2862
|
-
var
|
|
2863
|
-
prototype:
|
|
2864
|
-
new ():
|
|
3082
|
+
var HTMLBcmSegmentElement: {
|
|
3083
|
+
prototype: HTMLBcmSegmentElement;
|
|
3084
|
+
new (): HTMLBcmSegmentElement;
|
|
2865
3085
|
};
|
|
2866
|
-
interface
|
|
2867
|
-
"
|
|
3086
|
+
interface HTMLBcmSegmentedPickerElementEventMap {
|
|
3087
|
+
"bcmSegmentChange": { value: string; previousValue: string };
|
|
2868
3088
|
}
|
|
2869
|
-
|
|
2870
|
-
|
|
3089
|
+
/**
|
|
3090
|
+
* Modern Segmented Picker component with CSS Grid-based indicator
|
|
3091
|
+
*/
|
|
3092
|
+
interface HTMLBcmSegmentedPickerElement extends Components.BcmSegmentedPicker, HTMLStencilElement {
|
|
3093
|
+
addEventListener<K extends keyof HTMLBcmSegmentedPickerElementEventMap>(type: K, listener: (this: HTMLBcmSegmentedPickerElement, ev: BcmSegmentedPickerCustomEvent<HTMLBcmSegmentedPickerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2871
3094
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2872
3095
|
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2873
3096
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2874
|
-
removeEventListener<K extends keyof
|
|
3097
|
+
removeEventListener<K extends keyof HTMLBcmSegmentedPickerElementEventMap>(type: K, listener: (this: HTMLBcmSegmentedPickerElement, ev: BcmSegmentedPickerCustomEvent<HTMLBcmSegmentedPickerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2875
3098
|
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2876
3099
|
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2877
3100
|
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2878
3101
|
}
|
|
2879
|
-
var
|
|
2880
|
-
prototype:
|
|
2881
|
-
new ():
|
|
3102
|
+
var HTMLBcmSegmentedPickerElement: {
|
|
3103
|
+
prototype: HTMLBcmSegmentedPickerElement;
|
|
3104
|
+
new (): HTMLBcmSegmentedPickerElement;
|
|
2882
3105
|
};
|
|
2883
3106
|
interface HTMLBcmShortcutElement extends Components.BcmShortcut, HTMLStencilElement {
|
|
2884
3107
|
}
|
|
@@ -2891,27 +3114,51 @@ declare global {
|
|
|
2891
3114
|
}
|
|
2892
3115
|
/**
|
|
2893
3116
|
* @component BcmSwitch
|
|
2894
|
-
* @description A
|
|
2895
|
-
*
|
|
3117
|
+
* @description A form-associated toggle switch component representing a boolean choice.
|
|
3118
|
+
* It behaves like a checkbox and integrates with native HTML forms via ElementInternals.
|
|
3119
|
+
* This component supports **three validation strategies** via `validation-mode`:
|
|
3120
|
+
* - **`native`**:
|
|
3121
|
+
* - Uses native browser constraint validation.
|
|
3122
|
+
* - Sets the underlying input's `required` attribute.
|
|
3123
|
+
* - Browser may show the native validation bubble when the form calls `reportValidity()` / submit validation runs.
|
|
3124
|
+
* - **`silent`**:
|
|
3125
|
+
* - Does **not** rely on native `required` (prevents the browser bubble).
|
|
3126
|
+
* - Computes the "missing required" state internally and exposes it via `error` + `caption`.
|
|
3127
|
+
* - UI errors are **gated**: they appear only after the control is touched or after a submit attempt.
|
|
3128
|
+
* - **`none`**:
|
|
3129
|
+
* - Value-only mode (headless): participates in form value submission but never becomes invalid.
|
|
3130
|
+
* ## UI error gating (silent mode)
|
|
3131
|
+
* To avoid showing errors on initial render, the component tracks:
|
|
3132
|
+
* - `touched`: set after the first user interaction
|
|
3133
|
+
* - `submitAttempted`: set when the parent form emits `submit`
|
|
3134
|
+
* Only when `touched || submitAttempted` the component will show `error/caption` in `silent` mode.
|
|
3135
|
+
* ## Value behavior
|
|
3136
|
+
* - When checked, the component submits its `value` (default: `"on"`).
|
|
3137
|
+
* - When unchecked, no value is submitted.
|
|
3138
|
+
* - When disabled, the component does not participate in submission or validity.
|
|
2896
3139
|
* @example Basic usage
|
|
2897
|
-
* <bcm-switch label="
|
|
2898
|
-
* @example
|
|
3140
|
+
* <bcm-switch name="newsletter" label="Receive newsletter?" />
|
|
3141
|
+
* @example Required with silent validation (no native bubble)
|
|
3142
|
+
* <form>
|
|
2899
3143
|
* <bcm-switch
|
|
3144
|
+
* name="terms"
|
|
2900
3145
|
* label="Accept terms"
|
|
2901
|
-
*
|
|
2902
|
-
*
|
|
2903
|
-
* </bcm-switch>
|
|
2904
|
-
* @example Disabled state
|
|
2905
|
-
* <bcm-switch
|
|
2906
|
-
* label="Advanced features"
|
|
2907
|
-
* disabled={true}>
|
|
2908
|
-
* </bcm-switch>
|
|
2909
|
-
* @example With custom size and label position
|
|
2910
|
-
* <bcm-switch
|
|
2911
|
-
* label="Dark mode"
|
|
2912
|
-
* size="large"
|
|
2913
|
-
* labelPosition="left">
|
|
3146
|
+
* required
|
|
3147
|
+
* validation-mode="silent">
|
|
2914
3148
|
* </bcm-switch>
|
|
3149
|
+
* <button type="submit">Submit</button>
|
|
3150
|
+
* </form>
|
|
3151
|
+
* @example Native validation mode (may show native bubble)
|
|
3152
|
+
* <bcm-switch name="terms" label="Accept terms" required validation-mode="native" />
|
|
3153
|
+
* @example Value-only mode (no validation)
|
|
3154
|
+
* <bcm-switch name="analytics" label="Allow analytics" validation-mode="none" />
|
|
3155
|
+
* @csspart base - Root container
|
|
3156
|
+
* @csspart switch-wrapper - Wrapper containing label + track
|
|
3157
|
+
* @csspart input - Hidden native input
|
|
3158
|
+
* @csspart label - Text label
|
|
3159
|
+
* @csspart dot-container - Switch track
|
|
3160
|
+
* @csspart dot - Switch knob
|
|
3161
|
+
* @csspart caption - Helper/error text
|
|
2915
3162
|
*/
|
|
2916
3163
|
interface HTMLBcmSwitchElement extends Components.BcmSwitch, HTMLStencilElement {
|
|
2917
3164
|
addEventListener<K extends keyof HTMLBcmSwitchElementEventMap>(type: K, listener: (this: HTMLBcmSwitchElement, ev: BcmSwitchCustomEvent<HTMLBcmSwitchElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -2927,67 +3174,48 @@ declare global {
|
|
|
2927
3174
|
prototype: HTMLBcmSwitchElement;
|
|
2928
3175
|
new (): HTMLBcmSwitchElement;
|
|
2929
3176
|
};
|
|
2930
|
-
interface
|
|
2931
|
-
"
|
|
2932
|
-
activeTab: string;
|
|
2933
|
-
element: HTMLBcmTabsTriggerElement;
|
|
2934
|
-
previousTab?: string;
|
|
2935
|
-
};
|
|
3177
|
+
interface HTMLBcmTabElementEventMap {
|
|
3178
|
+
"bcmTabClick": string;
|
|
2936
3179
|
}
|
|
2937
3180
|
/**
|
|
2938
|
-
*
|
|
3181
|
+
* Individual tab component - self-contained with label and content panel
|
|
2939
3182
|
*/
|
|
2940
|
-
interface
|
|
2941
|
-
addEventListener<K extends keyof
|
|
3183
|
+
interface HTMLBcmTabElement extends Components.BcmTab, HTMLStencilElement {
|
|
3184
|
+
addEventListener<K extends keyof HTMLBcmTabElementEventMap>(type: K, listener: (this: HTMLBcmTabElement, ev: BcmTabCustomEvent<HTMLBcmTabElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2942
3185
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2943
3186
|
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2944
3187
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2945
|
-
removeEventListener<K extends keyof
|
|
3188
|
+
removeEventListener<K extends keyof HTMLBcmTabElementEventMap>(type: K, listener: (this: HTMLBcmTabElement, ev: BcmTabCustomEvent<HTMLBcmTabElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2946
3189
|
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2947
3190
|
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2948
3191
|
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2949
3192
|
}
|
|
2950
|
-
var
|
|
2951
|
-
prototype:
|
|
2952
|
-
new ():
|
|
2953
|
-
};
|
|
2954
|
-
/**
|
|
2955
|
-
* @description Tab content panel component that displays when its corresponding tab is selected
|
|
2956
|
-
*/
|
|
2957
|
-
interface HTMLBcmTabsContentElement extends Components.BcmTabsContent, HTMLStencilElement {
|
|
2958
|
-
}
|
|
2959
|
-
var HTMLBcmTabsContentElement: {
|
|
2960
|
-
prototype: HTMLBcmTabsContentElement;
|
|
2961
|
-
new (): HTMLBcmTabsContentElement;
|
|
2962
|
-
};
|
|
2963
|
-
/**
|
|
2964
|
-
* @description Container component for tab triggers that includes the sliding indicator (inkbar)
|
|
2965
|
-
*/
|
|
2966
|
-
interface HTMLBcmTabsListElement extends Components.BcmTabsList, HTMLStencilElement {
|
|
2967
|
-
}
|
|
2968
|
-
var HTMLBcmTabsListElement: {
|
|
2969
|
-
prototype: HTMLBcmTabsListElement;
|
|
2970
|
-
new (): HTMLBcmTabsListElement;
|
|
3193
|
+
var HTMLBcmTabElement: {
|
|
3194
|
+
prototype: HTMLBcmTabElement;
|
|
3195
|
+
new (): HTMLBcmTabElement;
|
|
2971
3196
|
};
|
|
2972
|
-
interface
|
|
2973
|
-
"
|
|
3197
|
+
interface HTMLBcmTabsElementEventMap {
|
|
3198
|
+
"bcmTabChange": {
|
|
3199
|
+
value: string;
|
|
3200
|
+
previousValue: string;
|
|
3201
|
+
};
|
|
2974
3202
|
}
|
|
2975
3203
|
/**
|
|
2976
|
-
*
|
|
3204
|
+
* Modern Tabs component with CSS-first approach
|
|
2977
3205
|
*/
|
|
2978
|
-
interface
|
|
2979
|
-
addEventListener<K extends keyof
|
|
3206
|
+
interface HTMLBcmTabsElement extends Components.BcmTabs, HTMLStencilElement {
|
|
3207
|
+
addEventListener<K extends keyof HTMLBcmTabsElementEventMap>(type: K, listener: (this: HTMLBcmTabsElement, ev: BcmTabsCustomEvent<HTMLBcmTabsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2980
3208
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2981
3209
|
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2982
3210
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2983
|
-
removeEventListener<K extends keyof
|
|
3211
|
+
removeEventListener<K extends keyof HTMLBcmTabsElementEventMap>(type: K, listener: (this: HTMLBcmTabsElement, ev: BcmTabsCustomEvent<HTMLBcmTabsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2984
3212
|
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2985
3213
|
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2986
3214
|
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2987
3215
|
}
|
|
2988
|
-
var
|
|
2989
|
-
prototype:
|
|
2990
|
-
new ():
|
|
3216
|
+
var HTMLBcmTabsElement: {
|
|
3217
|
+
prototype: HTMLBcmTabsElement;
|
|
3218
|
+
new (): HTMLBcmTabsElement;
|
|
2991
3219
|
};
|
|
2992
3220
|
interface HTMLBcmTextElement extends Components.BcmText, HTMLStencilElement {
|
|
2993
3221
|
}
|
|
@@ -3085,6 +3313,7 @@ declare global {
|
|
|
3085
3313
|
"bcm-drawer": HTMLBcmDrawerElement;
|
|
3086
3314
|
"bcm-dropdown": HTMLBcmDropdownElement;
|
|
3087
3315
|
"bcm-dropdown-item": HTMLBcmDropdownItemElement;
|
|
3316
|
+
"bcm-file-upload": HTMLBcmFileUploadElement;
|
|
3088
3317
|
"bcm-input": HTMLBcmInputElement;
|
|
3089
3318
|
"bcm-linked": HTMLBcmLinkedElement;
|
|
3090
3319
|
"bcm-modal": HTMLBcmModalElement;
|
|
@@ -3092,14 +3321,12 @@ declare global {
|
|
|
3092
3321
|
"bcm-popover": HTMLBcmPopoverElement;
|
|
3093
3322
|
"bcm-radio": HTMLBcmRadioElement;
|
|
3094
3323
|
"bcm-radio-group": HTMLBcmRadioGroupElement;
|
|
3324
|
+
"bcm-segment": HTMLBcmSegmentElement;
|
|
3095
3325
|
"bcm-segmented-picker": HTMLBcmSegmentedPickerElement;
|
|
3096
|
-
"bcm-segmented-picker-option": HTMLBcmSegmentedPickerOptionElement;
|
|
3097
3326
|
"bcm-shortcut": HTMLBcmShortcutElement;
|
|
3098
3327
|
"bcm-switch": HTMLBcmSwitchElement;
|
|
3328
|
+
"bcm-tab": HTMLBcmTabElement;
|
|
3099
3329
|
"bcm-tabs": HTMLBcmTabsElement;
|
|
3100
|
-
"bcm-tabs-content": HTMLBcmTabsContentElement;
|
|
3101
|
-
"bcm-tabs-list": HTMLBcmTabsListElement;
|
|
3102
|
-
"bcm-tabs-trigger": HTMLBcmTabsTriggerElement;
|
|
3103
3330
|
"bcm-text": HTMLBcmTextElement;
|
|
3104
3331
|
"bcm-textarea": HTMLBcmTextareaElement;
|
|
3105
3332
|
"bcm-tooltip": HTMLBcmTooltipElement;
|
|
@@ -3553,62 +3780,126 @@ declare namespace LocalJSX {
|
|
|
3553
3780
|
"status"?: ButtonStatus;
|
|
3554
3781
|
}
|
|
3555
3782
|
/**
|
|
3556
|
-
* @
|
|
3557
|
-
*
|
|
3783
|
+
* @component BcmCheckbox
|
|
3784
|
+
* @description A form-associated checkbox component representing a boolean choice.
|
|
3785
|
+
* Integrates with native HTML forms via ElementInternals while supporting
|
|
3786
|
+
* **three validation strategies** via `validation-mode`:
|
|
3787
|
+
* - **`native`**
|
|
3788
|
+
* - Participates in native browser constraint validation.
|
|
3789
|
+
* - Sets the underlying input's `required`.
|
|
3790
|
+
* - Browser may show native validation bubbles when submit/reportValidity happens.
|
|
3791
|
+
* - **`silent`**
|
|
3792
|
+
* - Does **not** set native `required` (prevents browser bubble).
|
|
3793
|
+
* - Computes "missing required" internally and exposes it via `error` + `caption`.
|
|
3794
|
+
* - UI errors are **gated**: shown only after `touched` or a form submit attempt.
|
|
3795
|
+
* - **`none`**
|
|
3796
|
+
* - Value-only mode: submits value but never becomes invalid.
|
|
3797
|
+
* ## UI error gating (silent mode)
|
|
3798
|
+
* - `touched` becomes true after first user interaction
|
|
3799
|
+
* - `submitAttempted` becomes true when the parent form emits `submit`
|
|
3800
|
+
* ## Value behavior
|
|
3801
|
+
* - When checked → submits `value` (default: `"on"`).
|
|
3802
|
+
* - When unchecked → submits no value (`null`).
|
|
3803
|
+
* - When disabled → no submission and no validity participation.
|
|
3804
|
+
* ## Shadow Parts
|
|
3805
|
+
* - `checkbox` → root container
|
|
3806
|
+
* - `control` → visual checkbox box
|
|
3807
|
+
* - `icon` → icon container (check or minus)
|
|
3808
|
+
* - `label` → label text
|
|
3809
|
+
* - `caption` → helper/error text (silent mode UI)
|
|
3810
|
+
* - `input` → hidden native input
|
|
3811
|
+
* @example Basic usage
|
|
3812
|
+
* <bcm-checkbox name="terms" required>
|
|
3813
|
+
* I agree to the terms and conditions
|
|
3814
|
+
* </bcm-checkbox>
|
|
3815
|
+
* @example Silent validation (no native bubble)
|
|
3816
|
+
* <form>
|
|
3817
|
+
* <bcm-checkbox name="newsletter" required validation-mode="silent">
|
|
3818
|
+
* Subscribe to newsletter
|
|
3819
|
+
* </bcm-checkbox>
|
|
3820
|
+
* <button type="submit">Submit</button>
|
|
3821
|
+
* </form>
|
|
3822
|
+
* @example Value-only mode
|
|
3823
|
+
* <bcm-checkbox name="analytics" validation-mode="none">
|
|
3824
|
+
* Allow analytics
|
|
3825
|
+
* </bcm-checkbox>
|
|
3558
3826
|
*/
|
|
3559
3827
|
interface BcmCheckbox {
|
|
3560
3828
|
/**
|
|
3561
|
-
* Unique ID for the component. Automatically generated if not specified.
|
|
3829
|
+
* Unique ID for the component. Automatically generated if not specified. Used to bind the visible label to the internal input.
|
|
3562
3830
|
* @default generateId('bcm-checkbox')
|
|
3563
3831
|
*/
|
|
3564
3832
|
"_id"?: string;
|
|
3565
3833
|
/**
|
|
3566
|
-
*
|
|
3834
|
+
* Helper / error caption (silent mode UI)
|
|
3835
|
+
*/
|
|
3836
|
+
"caption"?: string;
|
|
3837
|
+
/**
|
|
3838
|
+
* Checked state
|
|
3567
3839
|
* @default false
|
|
3568
3840
|
*/
|
|
3569
3841
|
"checked"?: boolean;
|
|
3570
3842
|
/**
|
|
3571
|
-
*
|
|
3843
|
+
* Disabled state
|
|
3572
3844
|
* @default false
|
|
3573
3845
|
*/
|
|
3574
3846
|
"disabled"?: boolean;
|
|
3575
3847
|
/**
|
|
3576
|
-
*
|
|
3848
|
+
* Visual error state. - In `silent` mode this can be managed internally. - In other modes you can set it externally as well.
|
|
3577
3849
|
* @default false
|
|
3578
3850
|
*/
|
|
3579
3851
|
"error"?: boolean;
|
|
3580
3852
|
/**
|
|
3581
|
-
*
|
|
3853
|
+
* Makes checkbox occupy full width (if your styles support it).
|
|
3582
3854
|
* @default false
|
|
3583
3855
|
*/
|
|
3584
3856
|
"fullWidth"?: boolean;
|
|
3585
3857
|
/**
|
|
3586
|
-
*
|
|
3858
|
+
* Indeterminate (mixed) state. Useful when a group selection is partially selected.
|
|
3587
3859
|
* @default false
|
|
3588
3860
|
*/
|
|
3589
3861
|
"indeterminate"?: boolean;
|
|
3590
3862
|
/**
|
|
3591
|
-
*
|
|
3863
|
+
* Visible label text (optional). You can also use the default slot.
|
|
3592
3864
|
*/
|
|
3593
3865
|
"label"?: string;
|
|
3594
3866
|
/**
|
|
3595
|
-
*
|
|
3867
|
+
* Label position relative to the checkbox control.
|
|
3596
3868
|
* @default 'right'
|
|
3597
3869
|
*/
|
|
3598
3870
|
"labelPosition"?: 'left' | 'right';
|
|
3599
3871
|
/**
|
|
3600
|
-
*
|
|
3872
|
+
* Form field name
|
|
3601
3873
|
*/
|
|
3602
3874
|
"name"?: string;
|
|
3603
3875
|
/**
|
|
3604
|
-
*
|
|
3876
|
+
* Fired whenever the checked state changes.
|
|
3877
|
+
*/
|
|
3878
|
+
"onBcmCheckboxChange"?: (event: BcmCheckboxCustomEvent<{ element: HTMLInputElement; checked: boolean }>) => void;
|
|
3879
|
+
/**
|
|
3880
|
+
* Optional readonly support
|
|
3881
|
+
* @default false
|
|
3882
|
+
*/
|
|
3883
|
+
"readonly"?: boolean;
|
|
3884
|
+
/**
|
|
3885
|
+
* Required state
|
|
3886
|
+
* @default false
|
|
3605
3887
|
*/
|
|
3606
|
-
"
|
|
3888
|
+
"required"?: boolean;
|
|
3607
3889
|
/**
|
|
3608
|
-
* Size variant
|
|
3890
|
+
* Size variant (affects control + typography).
|
|
3609
3891
|
* @default 'medium'
|
|
3610
3892
|
*/
|
|
3611
3893
|
"size"?: 'small' | 'medium' | 'large';
|
|
3894
|
+
/**
|
|
3895
|
+
* @default 'native'
|
|
3896
|
+
*/
|
|
3897
|
+
"validationMode"?: 'native' | 'silent' | 'none';
|
|
3898
|
+
/**
|
|
3899
|
+
* Value submitted when checked
|
|
3900
|
+
* @default 'on'
|
|
3901
|
+
*/
|
|
3902
|
+
"value"?: string;
|
|
3612
3903
|
}
|
|
3613
3904
|
/**
|
|
3614
3905
|
* @component BcmChip
|
|
@@ -3823,6 +4114,61 @@ declare namespace LocalJSX {
|
|
|
3823
4114
|
"selected"?: boolean;
|
|
3824
4115
|
"text"?: string;
|
|
3825
4116
|
}
|
|
4117
|
+
interface BcmFileUpload {
|
|
4118
|
+
/**
|
|
4119
|
+
* @default '.xls,.pdf'
|
|
4120
|
+
*/
|
|
4121
|
+
"accept"?: string;
|
|
4122
|
+
/**
|
|
4123
|
+
* @default ''
|
|
4124
|
+
*/
|
|
4125
|
+
"caption"?: string;
|
|
4126
|
+
/**
|
|
4127
|
+
* Allows consumers to override default error messages.
|
|
4128
|
+
*/
|
|
4129
|
+
"customErrorMessages"?: BcmUploadErrorMessages;
|
|
4130
|
+
/**
|
|
4131
|
+
* @default false
|
|
4132
|
+
*/
|
|
4133
|
+
"disabled"?: boolean;
|
|
4134
|
+
/**
|
|
4135
|
+
* @default ''
|
|
4136
|
+
*/
|
|
4137
|
+
"label"?: string;
|
|
4138
|
+
/**
|
|
4139
|
+
* Maximum number of files allowed in total. Only applied when `multiple` is true.
|
|
4140
|
+
*/
|
|
4141
|
+
"maxFileCount"?: number;
|
|
4142
|
+
/**
|
|
4143
|
+
* @default 2
|
|
4144
|
+
*/
|
|
4145
|
+
"maxSize"?: number;
|
|
4146
|
+
/**
|
|
4147
|
+
* @default false
|
|
4148
|
+
*/
|
|
4149
|
+
"multiple"?: boolean;
|
|
4150
|
+
/**
|
|
4151
|
+
* @default 'file'
|
|
4152
|
+
*/
|
|
4153
|
+
"name"?: string;
|
|
4154
|
+
"onBcmBlur"?: (event: BcmFileUploadCustomEvent<FocusEvent>) => void;
|
|
4155
|
+
"onBcmFileChange"?: (event: BcmFileUploadCustomEvent<File[]>) => void;
|
|
4156
|
+
"onBcmFileRemoved"?: (event: BcmFileUploadCustomEvent<BcmUploadItem>) => void;
|
|
4157
|
+
"onBcmFocus"?: (event: BcmFileUploadCustomEvent<FocusEvent>) => void;
|
|
4158
|
+
"onBcmUploadCanceled"?: (event: BcmFileUploadCustomEvent<BcmUploadItem>) => void;
|
|
4159
|
+
/**
|
|
4160
|
+
* @default false
|
|
4161
|
+
*/
|
|
4162
|
+
"required"?: boolean;
|
|
4163
|
+
/**
|
|
4164
|
+
* @default 'medium'
|
|
4165
|
+
*/
|
|
4166
|
+
"size"?: 'medium' | 'small';
|
|
4167
|
+
/**
|
|
4168
|
+
* Reserved for future backend upload integration. Currently does not affect component behavior.
|
|
4169
|
+
*/
|
|
4170
|
+
"uploadUrl"?: string;
|
|
4171
|
+
}
|
|
3826
4172
|
interface BcmInput {
|
|
3827
4173
|
/**
|
|
3828
4174
|
* Input id
|
|
@@ -4490,6 +4836,10 @@ declare namespace LocalJSX {
|
|
|
4490
4836
|
"trigger"?: 'click' | 'hover' | 'hover focus';
|
|
4491
4837
|
}
|
|
4492
4838
|
interface BcmRadio {
|
|
4839
|
+
/**
|
|
4840
|
+
* @default generateId('bcm-radio')
|
|
4841
|
+
*/
|
|
4842
|
+
"_id"?: string;
|
|
4493
4843
|
/**
|
|
4494
4844
|
* Whether the radio button is selected.
|
|
4495
4845
|
* @prop
|
|
@@ -4535,6 +4885,11 @@ declare namespace LocalJSX {
|
|
|
4535
4885
|
* @defaultValue false
|
|
4536
4886
|
*/
|
|
4537
4887
|
"readonly"?: boolean;
|
|
4888
|
+
/**
|
|
4889
|
+
* Whether at least one radio in this group is required. (HTML)
|
|
4890
|
+
* @default false
|
|
4891
|
+
*/
|
|
4892
|
+
"required"?: boolean;
|
|
4538
4893
|
/**
|
|
4539
4894
|
* Defines the size of the radio button: 'small' | 'medium' | 'large'.
|
|
4540
4895
|
* @prop
|
|
@@ -4605,58 +4960,85 @@ declare namespace LocalJSX {
|
|
|
4605
4960
|
*/
|
|
4606
4961
|
"value"?: string;
|
|
4607
4962
|
}
|
|
4608
|
-
|
|
4963
|
+
/**
|
|
4964
|
+
* Individual segment option component
|
|
4965
|
+
*/
|
|
4966
|
+
interface BcmSegment {
|
|
4967
|
+
/**
|
|
4968
|
+
* Index of currently active segment (inherited from parent)
|
|
4969
|
+
* @default 0
|
|
4970
|
+
*/
|
|
4971
|
+
"activeIndex"?: number;
|
|
4609
4972
|
/**
|
|
4610
4973
|
* Disabled state
|
|
4611
4974
|
* @default false
|
|
4612
4975
|
*/
|
|
4613
4976
|
"disabled"?: boolean;
|
|
4614
4977
|
/**
|
|
4615
|
-
*
|
|
4616
|
-
* @default
|
|
4978
|
+
* Index of this segment (inherited from parent)
|
|
4979
|
+
* @default 0
|
|
4617
4980
|
*/
|
|
4618
|
-
"
|
|
4981
|
+
"index"?: number;
|
|
4982
|
+
/**
|
|
4983
|
+
* Internal event emitted when segment is clicked
|
|
4984
|
+
*/
|
|
4985
|
+
"onBcmSegmentClick"?: (event: BcmSegmentCustomEvent<string>) => void;
|
|
4619
4986
|
/**
|
|
4620
|
-
*
|
|
4987
|
+
* Selected state (controlled by parent)
|
|
4988
|
+
* @default false
|
|
4621
4989
|
*/
|
|
4622
|
-
"
|
|
4990
|
+
"selected"?: boolean;
|
|
4623
4991
|
/**
|
|
4624
|
-
*
|
|
4992
|
+
* Size variant (inherited from parent)
|
|
4625
4993
|
* @default 'medium'
|
|
4626
4994
|
*/
|
|
4627
|
-
"size"?:
|
|
4995
|
+
"size"?: 'small' | 'medium' | 'large';
|
|
4628
4996
|
/**
|
|
4629
|
-
*
|
|
4997
|
+
* Unique identifier for this segment
|
|
4630
4998
|
*/
|
|
4631
|
-
"value"
|
|
4999
|
+
"value": string;
|
|
4632
5000
|
}
|
|
4633
|
-
|
|
5001
|
+
/**
|
|
5002
|
+
* Modern Segmented Picker component with CSS Grid-based indicator
|
|
5003
|
+
*/
|
|
5004
|
+
interface BcmSegmentedPicker {
|
|
4634
5005
|
/**
|
|
4635
|
-
*
|
|
5006
|
+
* Disabled state
|
|
4636
5007
|
* @default false
|
|
4637
5008
|
*/
|
|
4638
5009
|
"disabled"?: boolean;
|
|
4639
5010
|
/**
|
|
4640
|
-
*
|
|
5011
|
+
* Full width flag
|
|
5012
|
+
* @default false
|
|
4641
5013
|
*/
|
|
4642
|
-
"
|
|
5014
|
+
"fullWidth"?: boolean;
|
|
4643
5015
|
/**
|
|
4644
|
-
*
|
|
5016
|
+
* Name attribute for form association
|
|
4645
5017
|
*/
|
|
4646
|
-
"
|
|
5018
|
+
"name"?: string;
|
|
5019
|
+
/**
|
|
5020
|
+
* Emits when selected segment changes
|
|
5021
|
+
*/
|
|
5022
|
+
"onBcmSegmentChange"?: (event: BcmSegmentedPickerCustomEvent<{ value: string; previousValue: string }>) => void;
|
|
4647
5023
|
/**
|
|
4648
|
-
* Whether this
|
|
5024
|
+
* Whether this field is required in a form
|
|
4649
5025
|
* @default false
|
|
4650
5026
|
*/
|
|
4651
|
-
"
|
|
5027
|
+
"required"?: boolean;
|
|
5028
|
+
/**
|
|
5029
|
+
* Enable shadow on container
|
|
5030
|
+
* @default false
|
|
5031
|
+
*/
|
|
5032
|
+
"shadow"?: boolean;
|
|
4652
5033
|
/**
|
|
4653
|
-
*
|
|
5034
|
+
* Size variant
|
|
5035
|
+
* @default 'medium'
|
|
4654
5036
|
*/
|
|
4655
|
-
"size"?:
|
|
5037
|
+
"size"?: 'small' | 'medium' | 'large';
|
|
4656
5038
|
/**
|
|
4657
|
-
*
|
|
5039
|
+
* Selected segment value
|
|
4658
5040
|
*/
|
|
4659
|
-
"value"
|
|
5041
|
+
"value"?: string;
|
|
4660
5042
|
}
|
|
4661
5043
|
interface BcmShortcut {
|
|
4662
5044
|
"hotkey"?: string;
|
|
@@ -4667,178 +5049,181 @@ declare namespace LocalJSX {
|
|
|
4667
5049
|
}
|
|
4668
5050
|
/**
|
|
4669
5051
|
* @component BcmSwitch
|
|
4670
|
-
* @description A
|
|
4671
|
-
*
|
|
5052
|
+
* @description A form-associated toggle switch component representing a boolean choice.
|
|
5053
|
+
* It behaves like a checkbox and integrates with native HTML forms via ElementInternals.
|
|
5054
|
+
* This component supports **three validation strategies** via `validation-mode`:
|
|
5055
|
+
* - **`native`**:
|
|
5056
|
+
* - Uses native browser constraint validation.
|
|
5057
|
+
* - Sets the underlying input's `required` attribute.
|
|
5058
|
+
* - Browser may show the native validation bubble when the form calls `reportValidity()` / submit validation runs.
|
|
5059
|
+
* - **`silent`**:
|
|
5060
|
+
* - Does **not** rely on native `required` (prevents the browser bubble).
|
|
5061
|
+
* - Computes the "missing required" state internally and exposes it via `error` + `caption`.
|
|
5062
|
+
* - UI errors are **gated**: they appear only after the control is touched or after a submit attempt.
|
|
5063
|
+
* - **`none`**:
|
|
5064
|
+
* - Value-only mode (headless): participates in form value submission but never becomes invalid.
|
|
5065
|
+
* ## UI error gating (silent mode)
|
|
5066
|
+
* To avoid showing errors on initial render, the component tracks:
|
|
5067
|
+
* - `touched`: set after the first user interaction
|
|
5068
|
+
* - `submitAttempted`: set when the parent form emits `submit`
|
|
5069
|
+
* Only when `touched || submitAttempted` the component will show `error/caption` in `silent` mode.
|
|
5070
|
+
* ## Value behavior
|
|
5071
|
+
* - When checked, the component submits its `value` (default: `"on"`).
|
|
5072
|
+
* - When unchecked, no value is submitted.
|
|
5073
|
+
* - When disabled, the component does not participate in submission or validity.
|
|
4672
5074
|
* @example Basic usage
|
|
4673
|
-
* <bcm-switch label="
|
|
4674
|
-
* @example
|
|
5075
|
+
* <bcm-switch name="newsletter" label="Receive newsletter?" />
|
|
5076
|
+
* @example Required with silent validation (no native bubble)
|
|
5077
|
+
* <form>
|
|
4675
5078
|
* <bcm-switch
|
|
5079
|
+
* name="terms"
|
|
4676
5080
|
* label="Accept terms"
|
|
4677
|
-
*
|
|
4678
|
-
*
|
|
4679
|
-
* </bcm-switch>
|
|
4680
|
-
* @example Disabled state
|
|
4681
|
-
* <bcm-switch
|
|
4682
|
-
* label="Advanced features"
|
|
4683
|
-
* disabled={true}>
|
|
4684
|
-
* </bcm-switch>
|
|
4685
|
-
* @example With custom size and label position
|
|
4686
|
-
* <bcm-switch
|
|
4687
|
-
* label="Dark mode"
|
|
4688
|
-
* size="large"
|
|
4689
|
-
* labelPosition="left">
|
|
5081
|
+
* required
|
|
5082
|
+
* validation-mode="silent">
|
|
4690
5083
|
* </bcm-switch>
|
|
5084
|
+
* <button type="submit">Submit</button>
|
|
5085
|
+
* </form>
|
|
5086
|
+
* @example Native validation mode (may show native bubble)
|
|
5087
|
+
* <bcm-switch name="terms" label="Accept terms" required validation-mode="native" />
|
|
5088
|
+
* @example Value-only mode (no validation)
|
|
5089
|
+
* <bcm-switch name="analytics" label="Allow analytics" validation-mode="none" />
|
|
5090
|
+
* @csspart base - Root container
|
|
5091
|
+
* @csspart switch-wrapper - Wrapper containing label + track
|
|
5092
|
+
* @csspart input - Hidden native input
|
|
5093
|
+
* @csspart label - Text label
|
|
5094
|
+
* @csspart dot-container - Switch track
|
|
5095
|
+
* @csspart dot - Switch knob
|
|
5096
|
+
* @csspart caption - Helper/error text
|
|
4691
5097
|
*/
|
|
4692
5098
|
interface BcmSwitch {
|
|
4693
5099
|
/**
|
|
4694
|
-
*
|
|
5100
|
+
* Unique id (optional). Generated by default.
|
|
5101
|
+
* @default generateId('bcm-switch')
|
|
5102
|
+
*/
|
|
5103
|
+
"_id"?: string;
|
|
5104
|
+
/**
|
|
5105
|
+
* Helper / error text shown under the switch
|
|
4695
5106
|
*/
|
|
4696
5107
|
"caption"?: string;
|
|
4697
5108
|
/**
|
|
4698
|
-
*
|
|
5109
|
+
* Checked state
|
|
4699
5110
|
* @default false
|
|
4700
5111
|
*/
|
|
4701
5112
|
"checked"?: boolean;
|
|
4702
5113
|
/**
|
|
4703
|
-
*
|
|
5114
|
+
* Disabled state
|
|
4704
5115
|
* @default false
|
|
4705
5116
|
*/
|
|
4706
5117
|
"disabled"?: boolean;
|
|
4707
5118
|
/**
|
|
4708
|
-
*
|
|
5119
|
+
* Visual error state (manual/external). In silent mode this can be auto-managed.
|
|
4709
5120
|
* @default false
|
|
4710
5121
|
*/
|
|
4711
5122
|
"error"?: boolean;
|
|
4712
5123
|
/**
|
|
4713
|
-
*
|
|
5124
|
+
* Visible label text
|
|
4714
5125
|
*/
|
|
4715
|
-
"label"
|
|
5126
|
+
"label": string;
|
|
4716
5127
|
/**
|
|
4717
5128
|
* Position of the label relative to the switch
|
|
4718
5129
|
* @default 'right'
|
|
4719
5130
|
*/
|
|
4720
5131
|
"labelPosition"?: 'left' | 'right';
|
|
4721
5132
|
/**
|
|
4722
|
-
*
|
|
5133
|
+
* Form field name
|
|
4723
5134
|
*/
|
|
4724
5135
|
"name"?: string;
|
|
4725
5136
|
/**
|
|
4726
|
-
* Emitted when the switch
|
|
5137
|
+
* Emitted when the switch toggles
|
|
4727
5138
|
*/
|
|
4728
5139
|
"onBcmSwitchChange"?: (event: BcmSwitchCustomEvent<boolean>) => void;
|
|
4729
5140
|
/**
|
|
4730
|
-
*
|
|
5141
|
+
* Optional readonly support
|
|
4731
5142
|
* @default false
|
|
4732
5143
|
*/
|
|
4733
5144
|
"readonly"?: boolean;
|
|
4734
5145
|
/**
|
|
4735
|
-
*
|
|
5146
|
+
* Required state
|
|
4736
5147
|
* @default false
|
|
4737
5148
|
*/
|
|
4738
5149
|
"required"?: boolean;
|
|
4739
5150
|
/**
|
|
4740
|
-
* Size variant
|
|
5151
|
+
* Size variant
|
|
4741
5152
|
* @default 'medium'
|
|
4742
5153
|
*/
|
|
4743
5154
|
"size"?: 'small' | 'medium' | 'large';
|
|
4744
5155
|
/**
|
|
4745
|
-
*
|
|
5156
|
+
* @default 'native'
|
|
5157
|
+
*/
|
|
5158
|
+
"validationMode"?: 'native' | 'silent' | 'none';
|
|
5159
|
+
/**
|
|
5160
|
+
* Value submitted when checked
|
|
5161
|
+
* @default 'on'
|
|
4746
5162
|
*/
|
|
4747
5163
|
"value"?: string;
|
|
4748
5164
|
}
|
|
4749
5165
|
/**
|
|
4750
|
-
*
|
|
5166
|
+
* Individual tab component - self-contained with label and content panel
|
|
4751
5167
|
*/
|
|
4752
|
-
interface
|
|
4753
|
-
/**
|
|
4754
|
-
* Default active tab value
|
|
4755
|
-
*/
|
|
4756
|
-
"defaultValue"?: string;
|
|
5168
|
+
interface BcmTab {
|
|
4757
5169
|
/**
|
|
4758
|
-
*
|
|
4759
|
-
|
|
4760
|
-
"onBcmTabChange"?: (event: BcmTabsCustomEvent<{
|
|
4761
|
-
activeTab: string;
|
|
4762
|
-
element: HTMLBcmTabsTriggerElement;
|
|
4763
|
-
previousTab?: string;
|
|
4764
|
-
}>) => void;
|
|
4765
|
-
/**
|
|
4766
|
-
* Tab size
|
|
4767
|
-
* @default 'medium'
|
|
5170
|
+
* Active state (controlled by parent)
|
|
5171
|
+
* @default false
|
|
4768
5172
|
*/
|
|
4769
|
-
"
|
|
5173
|
+
"active"?: boolean;
|
|
4770
5174
|
/**
|
|
4771
|
-
*
|
|
4772
|
-
* @default
|
|
5175
|
+
* Disabled state
|
|
5176
|
+
* @default false
|
|
4773
5177
|
*/
|
|
4774
|
-
"
|
|
5178
|
+
"disabled"?: boolean;
|
|
4775
5179
|
/**
|
|
4776
|
-
*
|
|
4777
|
-
* @default 'full-width'
|
|
5180
|
+
* Label text to display in tab button
|
|
4778
5181
|
*/
|
|
4779
|
-
"
|
|
4780
|
-
}
|
|
4781
|
-
/**
|
|
4782
|
-
* @description Tab content panel component that displays when its corresponding tab is selected
|
|
4783
|
-
*/
|
|
4784
|
-
interface BcmTabsContent {
|
|
5182
|
+
"label": string;
|
|
4785
5183
|
/**
|
|
4786
|
-
*
|
|
5184
|
+
* Internal event emitted when tab button is clicked
|
|
4787
5185
|
*/
|
|
4788
|
-
"
|
|
4789
|
-
}
|
|
4790
|
-
/**
|
|
4791
|
-
* @description Container component for tab triggers that includes the sliding indicator (inkbar)
|
|
4792
|
-
*/
|
|
4793
|
-
interface BcmTabsList {
|
|
5186
|
+
"onBcmTabClick"?: (event: BcmTabCustomEvent<string>) => void;
|
|
4794
5187
|
/**
|
|
4795
|
-
*
|
|
4796
|
-
* @default
|
|
5188
|
+
* Size variant (inherited from parent)
|
|
5189
|
+
* @default 'md'
|
|
4797
5190
|
*/
|
|
4798
|
-
"
|
|
5191
|
+
"size"?: 'sm' | 'md' | 'lg';
|
|
4799
5192
|
/**
|
|
4800
|
-
*
|
|
4801
|
-
* @default 'full-width'
|
|
5193
|
+
* Unique identifier for this tab
|
|
4802
5194
|
*/
|
|
4803
|
-
"
|
|
5195
|
+
"value": string;
|
|
4804
5196
|
}
|
|
4805
5197
|
/**
|
|
4806
|
-
*
|
|
5198
|
+
* Modern Tabs component with CSS-first approach
|
|
4807
5199
|
*/
|
|
4808
|
-
interface
|
|
5200
|
+
interface BcmTabs {
|
|
4809
5201
|
/**
|
|
4810
|
-
*
|
|
4811
|
-
* @default false
|
|
5202
|
+
* Emits when active tab changes
|
|
4812
5203
|
*/
|
|
4813
|
-
"
|
|
5204
|
+
"onBcmTabChange"?: (event: BcmTabsCustomEvent<{
|
|
5205
|
+
value: string;
|
|
5206
|
+
previousValue: string;
|
|
5207
|
+
}>) => void;
|
|
4814
5208
|
/**
|
|
4815
|
-
*
|
|
5209
|
+
* Enable shadow on main container
|
|
4816
5210
|
* @default false
|
|
4817
5211
|
*/
|
|
4818
|
-
"
|
|
4819
|
-
/**
|
|
4820
|
-
* Event emitted when this tab is selected
|
|
4821
|
-
*/
|
|
4822
|
-
"onBcmTabSelected"?: (event: BcmTabsTriggerCustomEvent<string>) => void;
|
|
4823
|
-
/**
|
|
4824
|
-
* Size of the tab
|
|
4825
|
-
* @default 'medium'
|
|
4826
|
-
*/
|
|
4827
|
-
"size"?: 'small' | 'medium' | 'large';
|
|
5212
|
+
"shadow"?: boolean;
|
|
4828
5213
|
/**
|
|
4829
|
-
*
|
|
4830
|
-
* @default
|
|
5214
|
+
* Tab size variant
|
|
5215
|
+
* @default 'md'
|
|
4831
5216
|
*/
|
|
4832
|
-
"
|
|
5217
|
+
"size"?: 'sm' | 'md' | 'lg';
|
|
4833
5218
|
/**
|
|
4834
|
-
*
|
|
5219
|
+
* Active tab value
|
|
4835
5220
|
*/
|
|
4836
5221
|
"value"?: string;
|
|
4837
5222
|
/**
|
|
4838
|
-
*
|
|
4839
|
-
* @default '
|
|
5223
|
+
* Visual variant
|
|
5224
|
+
* @default 'line'
|
|
4840
5225
|
*/
|
|
4841
|
-
"variant"?: '
|
|
5226
|
+
"variant"?: 'line' | 'enclosed';
|
|
4842
5227
|
}
|
|
4843
5228
|
interface BcmText {
|
|
4844
5229
|
/**
|
|
@@ -5094,6 +5479,7 @@ declare namespace LocalJSX {
|
|
|
5094
5479
|
"bcm-drawer": BcmDrawer;
|
|
5095
5480
|
"bcm-dropdown": BcmDropdown;
|
|
5096
5481
|
"bcm-dropdown-item": BcmDropdownItem;
|
|
5482
|
+
"bcm-file-upload": BcmFileUpload;
|
|
5097
5483
|
"bcm-input": BcmInput;
|
|
5098
5484
|
"bcm-linked": BcmLinked;
|
|
5099
5485
|
"bcm-modal": BcmModal;
|
|
@@ -5101,14 +5487,12 @@ declare namespace LocalJSX {
|
|
|
5101
5487
|
"bcm-popover": BcmPopover;
|
|
5102
5488
|
"bcm-radio": BcmRadio;
|
|
5103
5489
|
"bcm-radio-group": BcmRadioGroup;
|
|
5490
|
+
"bcm-segment": BcmSegment;
|
|
5104
5491
|
"bcm-segmented-picker": BcmSegmentedPicker;
|
|
5105
|
-
"bcm-segmented-picker-option": BcmSegmentedPickerOption;
|
|
5106
5492
|
"bcm-shortcut": BcmShortcut;
|
|
5107
5493
|
"bcm-switch": BcmSwitch;
|
|
5494
|
+
"bcm-tab": BcmTab;
|
|
5108
5495
|
"bcm-tabs": BcmTabs;
|
|
5109
|
-
"bcm-tabs-content": BcmTabsContent;
|
|
5110
|
-
"bcm-tabs-list": BcmTabsList;
|
|
5111
|
-
"bcm-tabs-trigger": BcmTabsTrigger;
|
|
5112
5496
|
"bcm-text": BcmText;
|
|
5113
5497
|
"bcm-textarea": BcmTextarea;
|
|
5114
5498
|
"bcm-tooltip": BcmTooltip;
|
|
@@ -5254,8 +5638,49 @@ declare module "@stencil/core" {
|
|
|
5254
5638
|
"bcm-button": LocalJSX.BcmButton & JSXBase.HTMLAttributes<HTMLBcmButtonElement>;
|
|
5255
5639
|
"bcm-button-group": LocalJSX.BcmButtonGroup & JSXBase.HTMLAttributes<HTMLBcmButtonGroupElement>;
|
|
5256
5640
|
/**
|
|
5257
|
-
* @
|
|
5258
|
-
*
|
|
5641
|
+
* @component BcmCheckbox
|
|
5642
|
+
* @description A form-associated checkbox component representing a boolean choice.
|
|
5643
|
+
* Integrates with native HTML forms via ElementInternals while supporting
|
|
5644
|
+
* **three validation strategies** via `validation-mode`:
|
|
5645
|
+
* - **`native`**
|
|
5646
|
+
* - Participates in native browser constraint validation.
|
|
5647
|
+
* - Sets the underlying input's `required`.
|
|
5648
|
+
* - Browser may show native validation bubbles when submit/reportValidity happens.
|
|
5649
|
+
* - **`silent`**
|
|
5650
|
+
* - Does **not** set native `required` (prevents browser bubble).
|
|
5651
|
+
* - Computes "missing required" internally and exposes it via `error` + `caption`.
|
|
5652
|
+
* - UI errors are **gated**: shown only after `touched` or a form submit attempt.
|
|
5653
|
+
* - **`none`**
|
|
5654
|
+
* - Value-only mode: submits value but never becomes invalid.
|
|
5655
|
+
* ## UI error gating (silent mode)
|
|
5656
|
+
* - `touched` becomes true after first user interaction
|
|
5657
|
+
* - `submitAttempted` becomes true when the parent form emits `submit`
|
|
5658
|
+
* ## Value behavior
|
|
5659
|
+
* - When checked → submits `value` (default: `"on"`).
|
|
5660
|
+
* - When unchecked → submits no value (`null`).
|
|
5661
|
+
* - When disabled → no submission and no validity participation.
|
|
5662
|
+
* ## Shadow Parts
|
|
5663
|
+
* - `checkbox` → root container
|
|
5664
|
+
* - `control` → visual checkbox box
|
|
5665
|
+
* - `icon` → icon container (check or minus)
|
|
5666
|
+
* - `label` → label text
|
|
5667
|
+
* - `caption` → helper/error text (silent mode UI)
|
|
5668
|
+
* - `input` → hidden native input
|
|
5669
|
+
* @example Basic usage
|
|
5670
|
+
* <bcm-checkbox name="terms" required>
|
|
5671
|
+
* I agree to the terms and conditions
|
|
5672
|
+
* </bcm-checkbox>
|
|
5673
|
+
* @example Silent validation (no native bubble)
|
|
5674
|
+
* <form>
|
|
5675
|
+
* <bcm-checkbox name="newsletter" required validation-mode="silent">
|
|
5676
|
+
* Subscribe to newsletter
|
|
5677
|
+
* </bcm-checkbox>
|
|
5678
|
+
* <button type="submit">Submit</button>
|
|
5679
|
+
* </form>
|
|
5680
|
+
* @example Value-only mode
|
|
5681
|
+
* <bcm-checkbox name="analytics" validation-mode="none">
|
|
5682
|
+
* Allow analytics
|
|
5683
|
+
* </bcm-checkbox>
|
|
5259
5684
|
*/
|
|
5260
5685
|
"bcm-checkbox": LocalJSX.BcmCheckbox & JSXBase.HTMLAttributes<HTMLBcmCheckboxElement>;
|
|
5261
5686
|
/**
|
|
@@ -5322,6 +5747,7 @@ declare module "@stencil/core" {
|
|
|
5322
5747
|
"bcm-drawer": LocalJSX.BcmDrawer & JSXBase.HTMLAttributes<HTMLBcmDrawerElement>;
|
|
5323
5748
|
"bcm-dropdown": LocalJSX.BcmDropdown & JSXBase.HTMLAttributes<HTMLBcmDropdownElement>;
|
|
5324
5749
|
"bcm-dropdown-item": LocalJSX.BcmDropdownItem & JSXBase.HTMLAttributes<HTMLBcmDropdownItemElement>;
|
|
5750
|
+
"bcm-file-upload": LocalJSX.BcmFileUpload & JSXBase.HTMLAttributes<HTMLBcmFileUploadElement>;
|
|
5325
5751
|
"bcm-input": LocalJSX.BcmInput & JSXBase.HTMLAttributes<HTMLBcmInputElement>;
|
|
5326
5752
|
/**
|
|
5327
5753
|
* @component BcmLinked
|
|
@@ -5560,50 +5986,72 @@ declare module "@stencil/core" {
|
|
|
5560
5986
|
"bcm-popover": LocalJSX.BcmPopover & JSXBase.HTMLAttributes<HTMLBcmPopoverElement>;
|
|
5561
5987
|
"bcm-radio": LocalJSX.BcmRadio & JSXBase.HTMLAttributes<HTMLBcmRadioElement>;
|
|
5562
5988
|
"bcm-radio-group": LocalJSX.BcmRadioGroup & JSXBase.HTMLAttributes<HTMLBcmRadioGroupElement>;
|
|
5989
|
+
/**
|
|
5990
|
+
* Individual segment option component
|
|
5991
|
+
*/
|
|
5992
|
+
"bcm-segment": LocalJSX.BcmSegment & JSXBase.HTMLAttributes<HTMLBcmSegmentElement>;
|
|
5993
|
+
/**
|
|
5994
|
+
* Modern Segmented Picker component with CSS Grid-based indicator
|
|
5995
|
+
*/
|
|
5563
5996
|
"bcm-segmented-picker": LocalJSX.BcmSegmentedPicker & JSXBase.HTMLAttributes<HTMLBcmSegmentedPickerElement>;
|
|
5564
|
-
"bcm-segmented-picker-option": LocalJSX.BcmSegmentedPickerOption & JSXBase.HTMLAttributes<HTMLBcmSegmentedPickerOptionElement>;
|
|
5565
5997
|
"bcm-shortcut": LocalJSX.BcmShortcut & JSXBase.HTMLAttributes<HTMLBcmShortcutElement>;
|
|
5566
5998
|
/**
|
|
5567
5999
|
* @component BcmSwitch
|
|
5568
|
-
* @description A
|
|
5569
|
-
*
|
|
6000
|
+
* @description A form-associated toggle switch component representing a boolean choice.
|
|
6001
|
+
* It behaves like a checkbox and integrates with native HTML forms via ElementInternals.
|
|
6002
|
+
* This component supports **three validation strategies** via `validation-mode`:
|
|
6003
|
+
* - **`native`**:
|
|
6004
|
+
* - Uses native browser constraint validation.
|
|
6005
|
+
* - Sets the underlying input's `required` attribute.
|
|
6006
|
+
* - Browser may show the native validation bubble when the form calls `reportValidity()` / submit validation runs.
|
|
6007
|
+
* - **`silent`**:
|
|
6008
|
+
* - Does **not** rely on native `required` (prevents the browser bubble).
|
|
6009
|
+
* - Computes the "missing required" state internally and exposes it via `error` + `caption`.
|
|
6010
|
+
* - UI errors are **gated**: they appear only after the control is touched or after a submit attempt.
|
|
6011
|
+
* - **`none`**:
|
|
6012
|
+
* - Value-only mode (headless): participates in form value submission but never becomes invalid.
|
|
6013
|
+
* ## UI error gating (silent mode)
|
|
6014
|
+
* To avoid showing errors on initial render, the component tracks:
|
|
6015
|
+
* - `touched`: set after the first user interaction
|
|
6016
|
+
* - `submitAttempted`: set when the parent form emits `submit`
|
|
6017
|
+
* Only when `touched || submitAttempted` the component will show `error/caption` in `silent` mode.
|
|
6018
|
+
* ## Value behavior
|
|
6019
|
+
* - When checked, the component submits its `value` (default: `"on"`).
|
|
6020
|
+
* - When unchecked, no value is submitted.
|
|
6021
|
+
* - When disabled, the component does not participate in submission or validity.
|
|
5570
6022
|
* @example Basic usage
|
|
5571
|
-
* <bcm-switch label="
|
|
5572
|
-
* @example
|
|
6023
|
+
* <bcm-switch name="newsletter" label="Receive newsletter?" />
|
|
6024
|
+
* @example Required with silent validation (no native bubble)
|
|
6025
|
+
* <form>
|
|
5573
6026
|
* <bcm-switch
|
|
6027
|
+
* name="terms"
|
|
5574
6028
|
* label="Accept terms"
|
|
5575
|
-
*
|
|
5576
|
-
*
|
|
5577
|
-
* </bcm-switch>
|
|
5578
|
-
* @example Disabled state
|
|
5579
|
-
* <bcm-switch
|
|
5580
|
-
* label="Advanced features"
|
|
5581
|
-
* disabled={true}>
|
|
5582
|
-
* </bcm-switch>
|
|
5583
|
-
* @example With custom size and label position
|
|
5584
|
-
* <bcm-switch
|
|
5585
|
-
* label="Dark mode"
|
|
5586
|
-
* size="large"
|
|
5587
|
-
* labelPosition="left">
|
|
6029
|
+
* required
|
|
6030
|
+
* validation-mode="silent">
|
|
5588
6031
|
* </bcm-switch>
|
|
6032
|
+
* <button type="submit">Submit</button>
|
|
6033
|
+
* </form>
|
|
6034
|
+
* @example Native validation mode (may show native bubble)
|
|
6035
|
+
* <bcm-switch name="terms" label="Accept terms" required validation-mode="native" />
|
|
6036
|
+
* @example Value-only mode (no validation)
|
|
6037
|
+
* <bcm-switch name="analytics" label="Allow analytics" validation-mode="none" />
|
|
6038
|
+
* @csspart base - Root container
|
|
6039
|
+
* @csspart switch-wrapper - Wrapper containing label + track
|
|
6040
|
+
* @csspart input - Hidden native input
|
|
6041
|
+
* @csspart label - Text label
|
|
6042
|
+
* @csspart dot-container - Switch track
|
|
6043
|
+
* @csspart dot - Switch knob
|
|
6044
|
+
* @csspart caption - Helper/error text
|
|
5589
6045
|
*/
|
|
5590
6046
|
"bcm-switch": LocalJSX.BcmSwitch & JSXBase.HTMLAttributes<HTMLBcmSwitchElement>;
|
|
5591
6047
|
/**
|
|
5592
|
-
*
|
|
6048
|
+
* Individual tab component - self-contained with label and content panel
|
|
5593
6049
|
*/
|
|
5594
|
-
"bcm-
|
|
6050
|
+
"bcm-tab": LocalJSX.BcmTab & JSXBase.HTMLAttributes<HTMLBcmTabElement>;
|
|
5595
6051
|
/**
|
|
5596
|
-
*
|
|
6052
|
+
* Modern Tabs component with CSS-first approach
|
|
5597
6053
|
*/
|
|
5598
|
-
"bcm-tabs
|
|
5599
|
-
/**
|
|
5600
|
-
* @description Container component for tab triggers that includes the sliding indicator (inkbar)
|
|
5601
|
-
*/
|
|
5602
|
-
"bcm-tabs-list": LocalJSX.BcmTabsList & JSXBase.HTMLAttributes<HTMLBcmTabsListElement>;
|
|
5603
|
-
/**
|
|
5604
|
-
* @description Tab trigger component that functions as a clickable tab button
|
|
5605
|
-
*/
|
|
5606
|
-
"bcm-tabs-trigger": LocalJSX.BcmTabsTrigger & JSXBase.HTMLAttributes<HTMLBcmTabsTriggerElement>;
|
|
6054
|
+
"bcm-tabs": LocalJSX.BcmTabs & JSXBase.HTMLAttributes<HTMLBcmTabsElement>;
|
|
5607
6055
|
"bcm-text": LocalJSX.BcmText & JSXBase.HTMLAttributes<HTMLBcmTextElement>;
|
|
5608
6056
|
"bcm-textarea": LocalJSX.BcmTextarea & JSXBase.HTMLAttributes<HTMLBcmTextareaElement>;
|
|
5609
6057
|
/**
|