bromcom-ui-next 0.1.29 → 0.1.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bromcom-ui/bcm-accordion-group.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-accordion.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-alert.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-avatar.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-badge.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-basic-badge.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-button-group.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-button.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-checkbox.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-chip.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-divider.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-drawer.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-dropdown-item.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-dropdown.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-file-upload.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-input.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-linked.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-modal.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-pop-confirm.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-popover.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-radio-group.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-radio.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-segment.bcm-segmented-picker.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-shortcut.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-switch.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-tab.entry.esm.js.map +1 -0
- package/dist/bromcom-ui/bcm-tabs.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-text.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-textarea.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bcm-tooltip.entry.esm.js.map +1 -1
- package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
- package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
- package/dist/bromcom-ui/global/global.js +33 -30
- package/dist/bromcom-ui/p-010219cf.entry.js +2 -0
- package/dist/bromcom-ui/p-010219cf.entry.js.map +1 -0
- package/dist/bromcom-ui/p-01a4e00b.entry.js +2 -0
- package/dist/bromcom-ui/p-01a4e00b.entry.js.map +1 -0
- package/dist/bromcom-ui/p-14c63d61.entry.js +2 -0
- package/dist/bromcom-ui/p-14c63d61.entry.js.map +1 -0
- package/dist/bromcom-ui/p-20a94dec.entry.js +2 -0
- package/dist/bromcom-ui/p-20a94dec.entry.js.map +1 -0
- package/dist/bromcom-ui/p-398620c2.entry.js +2 -0
- package/dist/bromcom-ui/p-398620c2.entry.js.map +1 -0
- package/dist/bromcom-ui/p-3b898f90.entry.js +2 -0
- package/dist/bromcom-ui/p-3b898f90.entry.js.map +1 -0
- package/dist/bromcom-ui/p-43c85c84.entry.js +2 -0
- package/dist/bromcom-ui/p-43c85c84.entry.js.map +1 -0
- package/dist/bromcom-ui/p-4e6661a5.entry.js +2 -0
- package/dist/bromcom-ui/p-4e6661a5.entry.js.map +1 -0
- package/dist/bromcom-ui/p-52bb0cdc.entry.js +2 -0
- package/dist/bromcom-ui/p-52bb0cdc.entry.js.map +1 -0
- package/dist/bromcom-ui/p-61c1c1c8.entry.js +2 -0
- package/dist/bromcom-ui/p-61c1c1c8.entry.js.map +1 -0
- package/dist/bromcom-ui/p-82e4c5f2.entry.js +2 -0
- package/dist/bromcom-ui/p-82e4c5f2.entry.js.map +1 -0
- package/dist/bromcom-ui/p-86f85963.entry.js +2 -0
- package/dist/bromcom-ui/p-86f85963.entry.js.map +1 -0
- package/dist/bromcom-ui/p-9249c1d1.entry.js +2 -0
- package/dist/bromcom-ui/p-9249c1d1.entry.js.map +1 -0
- package/dist/bromcom-ui/p-B6Ppbs5O.js +3 -0
- package/dist/bromcom-ui/p-B6Ppbs5O.js.map +1 -0
- package/dist/bromcom-ui/p-BfTCfPZ1.js.map +1 -1
- package/dist/bromcom-ui/p-CEcVC0yX.js.map +1 -1
- package/dist/bromcom-ui/p-DBDSgIvP.js +2 -0
- package/dist/bromcom-ui/p-DBDSgIvP.js.map +1 -0
- package/dist/bromcom-ui/p-DaE0ZLar.js +2 -0
- package/dist/bromcom-ui/p-DaE0ZLar.js.map +1 -0
- package/dist/bromcom-ui/p-IBjzkjef.js.map +1 -1
- package/dist/bromcom-ui/p-a25d1cef.entry.js +2 -0
- package/dist/bromcom-ui/p-a25d1cef.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a4cb2e79.entry.js +2 -0
- package/dist/bromcom-ui/p-a4cb2e79.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a68925b4.entry.js +2 -0
- package/dist/bromcom-ui/p-a68925b4.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a750186c.entry.js +2 -0
- package/dist/bromcom-ui/p-a750186c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-ac768b56.entry.js +2 -0
- package/dist/bromcom-ui/p-ac768b56.entry.js.map +1 -0
- package/dist/bromcom-ui/p-b0b193e6.entry.js +2 -0
- package/dist/bromcom-ui/p-b0b193e6.entry.js.map +1 -0
- package/dist/bromcom-ui/p-bf4409ca.entry.js +2 -0
- package/dist/bromcom-ui/p-bf4409ca.entry.js.map +1 -0
- package/dist/bromcom-ui/p-c57fb29b.entry.js +2 -0
- package/dist/bromcom-ui/p-c57fb29b.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-2480e468.entry.js → p-ccc310aa.entry.js} +2 -2
- package/dist/bromcom-ui/p-ccc310aa.entry.js.map +1 -0
- package/dist/bromcom-ui/p-d4ee962d.entry.js +2 -0
- package/dist/bromcom-ui/p-d4ee962d.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e25a2f7a.entry.js +2 -0
- package/dist/bromcom-ui/p-e25a2f7a.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e5b0b2ad.entry.js +2 -0
- package/dist/bromcom-ui/p-e5b0b2ad.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e70d784d.entry.js +2 -0
- package/dist/bromcom-ui/p-e70d784d.entry.js.map +1 -0
- package/dist/bromcom-ui/p-e9fa3a22.entry.js +2 -0
- package/dist/bromcom-ui/p-e9fa3a22.entry.js.map +1 -0
- package/dist/bromcom-ui/p-ef281184.entry.js +2 -0
- package/dist/bromcom-ui/p-ef281184.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-089edfdc.entry.js → p-fb6f616c.entry.js} +2 -2
- package/dist/bromcom-ui/p-fb6f616c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-fd31c70c.entry.js +2 -0
- package/dist/bromcom-ui/p-fd31c70c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-nf_HKsGq.js +2 -0
- package/dist/bromcom-ui/{p-CUvT12BL.js.map → p-nf_HKsGq.js.map} +1 -1
- package/dist/cjs/base-choice-control-EmA4JRjR.js +54 -0
- package/dist/cjs/base-choice-control-EmA4JRjR.js.map +1 -0
- package/dist/cjs/bcm-accordion-group.cjs.entry.js +21 -21
- package/dist/cjs/bcm-accordion-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-accordion.cjs.entry.js +75 -60
- package/dist/cjs/bcm-accordion.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-alert.cjs.entry.js +21 -23
- package/dist/cjs/bcm-alert.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-avatar.cjs.entry.js +22 -14
- package/dist/cjs/bcm-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-badge.cjs.entry.js +114 -84
- package/dist/cjs/bcm-badge.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-basic-badge.cjs.entry.js +73 -61
- package/dist/cjs/bcm-basic-badge.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js +36 -26
- package/dist/cjs/bcm-button-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-button.cjs.entry.js +338 -0
- package/dist/cjs/bcm-button.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-checkbox.cjs.entry.js +284 -176
- package/dist/cjs/bcm-checkbox.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-chip.cjs.entry.js +38 -37
- package/dist/cjs/bcm-chip.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-divider.cjs.entry.js +56 -58
- package/dist/cjs/bcm-divider.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-drawer.cjs.entry.js +332 -0
- package/dist/cjs/bcm-drawer.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js +36 -35
- package/dist/cjs/bcm-dropdown-item.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-dropdown.cjs.entry.js +17 -26
- package/dist/cjs/bcm-dropdown.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-file-upload.cjs.entry.js +552 -0
- package/dist/cjs/bcm-file-upload.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-input.cjs.entry.js +250 -160
- package/dist/cjs/bcm-input.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-linked.cjs.entry.js +373 -264
- package/dist/cjs/bcm-linked.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-modal.cjs.entry.js +360 -0
- package/dist/cjs/bcm-modal.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js +337 -206
- package/dist/cjs/bcm-pop-confirm.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-popover.cjs.entry.js +416 -154
- package/dist/cjs/bcm-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-radio-group.cjs.entry.js +103 -82
- package/dist/cjs/bcm-radio-group.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-radio.cjs.entry.js +239 -108
- package/dist/cjs/bcm-radio.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-segment.bcm-segmented-picker.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-segment_2.cjs.entry.js +335 -0
- package/dist/cjs/bcm-shortcut.cjs.entry.js +5 -6
- package/dist/cjs/bcm-shortcut.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-switch.cjs.entry.js +281 -150
- package/dist/cjs/bcm-switch.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-tab.cjs.entry.js +44 -0
- package/dist/cjs/bcm-tab.entry.cjs.js.map +1 -0
- package/dist/cjs/bcm-tabs.cjs.entry.js +191 -239
- package/dist/cjs/bcm-tabs.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-text.cjs.entry.js +86 -87
- package/dist/cjs/bcm-text.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-textarea.cjs.entry.js +224 -156
- package/dist/cjs/bcm-textarea.entry.cjs.js.map +1 -1
- package/dist/cjs/bcm-tooltip.cjs.entry.js +386 -152
- package/dist/cjs/bcm-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/bromcom-ui.cjs.js +3 -5
- package/dist/cjs/bromcom-ui.cjs.js.map +1 -1
- package/dist/cjs/{floating-ui.dom-DyKmFgkP.js → floating-ui.dom-S9nP6zZt.js} +40 -23
- package/dist/cjs/floating-ui.dom-S9nP6zZt.js.map +1 -0
- package/dist/cjs/generate-id-CG_BkTJu.js.map +1 -1
- package/dist/cjs/{index-BtiU-G2W.js → index-1Qal-onT.js} +165 -398
- package/dist/cjs/index-1Qal-onT.js.map +1 -0
- package/dist/cjs/index-Bp6Dd2i1.js.map +1 -1
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/loader.cjs.js +2 -4
- package/dist/cjs/tv-ngpIbGlG.js.map +1 -1
- package/dist/cjs/{validation-messages-BjfpSEWk.js → validation-messages-DieKlSG4.js} +6 -7
- package/dist/{esm/validation-messages-CUvT12BL.js.map → cjs/validation-messages-DieKlSG4.js.map} +1 -1
- package/dist/collection/collection-manifest.json +7 -8
- package/dist/collection/components/_shared/form/base-choice-control.js +90 -0
- package/dist/collection/components/_shared/form/base-choice-control.js.map +1 -0
- package/dist/collection/components/_shared/form/base-form-control.js +115 -0
- package/dist/collection/components/_shared/form/base-form-control.js.map +1 -0
- package/dist/collection/components/accordion/accordion.component.js +80 -63
- package/dist/collection/components/accordion/accordion.component.js.map +1 -1
- package/dist/collection/components/accordion/accordion.css +1 -1
- package/dist/collection/components/accordion-group/accordion-group.component.js +23 -21
- package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -1
- package/dist/collection/components/accordion-group/types.js.map +1 -1
- package/dist/collection/components/alert/alert.component.js +24 -26
- package/dist/collection/components/alert/alert.component.js.map +1 -1
- package/dist/collection/components/alert/alert.css +1 -1
- package/dist/collection/components/avatar/avatar.component.js +34 -26
- package/dist/collection/components/avatar/avatar.component.js.map +1 -1
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/badge/badge.component.js +124 -94
- package/dist/collection/components/badge/badge.component.js.map +1 -1
- package/dist/collection/components/badge/badge.css +1 -1
- package/dist/collection/components/basic-badge/basic-badge.component.js +77 -65
- package/dist/collection/components/basic-badge/basic-badge.component.js.map +1 -1
- package/dist/collection/components/basic-badge/basic-badge.css +1 -1
- package/dist/collection/components/button/button.component.js +135 -114
- package/dist/collection/components/button/button.component.js.map +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button-group/button-group.component.js +47 -36
- package/dist/collection/components/button-group/button-group.component.js.map +1 -1
- package/dist/collection/components/button-group/button-group.css +1 -1
- package/dist/collection/components/checkbox/checkbox.component.js +362 -243
- package/dist/collection/components/checkbox/checkbox.component.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +1 -1
- package/dist/collection/components/chip/chip.component.js +42 -41
- package/dist/collection/components/chip/chip.component.js.map +1 -1
- package/dist/collection/components/chip/chip.css +1 -1
- package/dist/collection/components/divider/divider.component.js +56 -58
- package/dist/collection/components/divider/divider.component.js.map +1 -1
- package/dist/collection/components/divider/divider.css +1 -1
- package/dist/collection/components/drawer/drawer.component.js +476 -155
- package/dist/collection/components/drawer/drawer.component.js.map +1 -1
- package/dist/collection/components/drawer/drawer.css +1 -1
- package/dist/collection/components/drawer/types.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.component.js +18 -27
- package/dist/collection/components/dropdown/dropdown.component.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.component.js +41 -40
- package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -1
- package/dist/collection/components/dropdown-item/dropdown-item.css +1 -1
- package/dist/collection/components/input/input.component.js +283 -198
- package/dist/collection/components/input/input.component.js.map +1 -1
- package/dist/collection/components/linked/linked.component.js +551 -355
- package/dist/collection/components/linked/linked.component.js.map +1 -1
- package/dist/collection/components/linked/linked.css +1 -1
- package/dist/collection/components/modal/modal.component.js +276 -149
- package/dist/collection/components/modal/modal.component.js.map +1 -1
- package/dist/collection/components/modal/modal.css +1 -1
- package/dist/collection/components/pop-confirm/pop-confirm.component.js +745 -340
- package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -1
- package/dist/collection/components/pop-confirm/pop-confirm.css +1 -1
- package/dist/collection/components/popover/popover.component.js +609 -196
- package/dist/collection/components/popover/popover.component.js.map +1 -1
- package/dist/collection/components/popover/popover.css +1 -1
- package/dist/collection/components/radio/radio.component.js +294 -118
- package/dist/collection/components/radio/radio.component.js.map +1 -1
- package/dist/collection/components/radio-group/radio-group.component.js +115 -93
- package/dist/collection/components/radio-group/radio-group.component.js.map +1 -1
- package/dist/collection/components/segmented-picker/segment.component.js +228 -0
- package/dist/collection/components/segmented-picker/segment.component.js.map +1 -0
- package/dist/collection/components/segmented-picker/segment.css +1 -0
- package/dist/collection/components/segmented-picker/segmented-picker.component.js +357 -142
- package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -1
- package/dist/collection/components/segmented-picker/segmented-picker.css +1 -1
- package/dist/collection/components/shortcut/shortcut.js +7 -8
- package/dist/collection/components/shortcut/shortcut.js.map +1 -1
- package/dist/collection/components/switch/switch.component.js +357 -287
- package/dist/collection/components/switch/switch.component.js.map +1 -1
- package/dist/collection/components/switch/switch.css +1 -1
- package/dist/collection/components/tabs/bcm-tab.css +1 -0
- package/dist/collection/components/tabs/bcm-tabs.css +1 -1
- package/dist/collection/components/tabs/tab.component.js +169 -0
- package/dist/collection/components/tabs/tab.component.js.map +1 -0
- package/dist/collection/components/tabs/tabs.component.js +224 -355
- package/dist/collection/components/tabs/tabs.component.js.map +1 -1
- package/dist/collection/components/text/text.component.js +90 -91
- package/dist/collection/components/text/text.component.js.map +1 -1
- package/dist/collection/components/textarea/textarea.component.js +252 -190
- package/dist/collection/components/textarea/textarea.component.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.component.js +605 -220
- package/dist/collection/components/tooltip/tooltip.component.js.map +1 -1
- package/dist/collection/components/tooltip/tooltip.css +1 -1
- package/dist/collection/components/upload/file-upload.component.js +905 -0
- package/dist/collection/components/upload/file-upload.component.js.map +1 -0
- package/dist/collection/components/upload/file-upload.css +1 -0
- package/dist/collection/global/global.js +33 -30
- package/dist/collection/utils/i18n.js +3 -4
- package/dist/collection/utils/i18n.js.map +1 -1
- package/dist/collection/utils/slot/check-slot-content.js +1 -2
- package/dist/collection/utils/slot/check-slot-content.js.map +1 -1
- package/dist/collection/utils/validation-messages.js +1 -1
- package/dist/collection/utils/validation-messages.js.map +1 -1
- package/dist/components/bcm-accordion-group.js +24 -20
- package/dist/components/bcm-accordion-group.js.map +1 -1
- package/dist/components/bcm-accordion.js +78 -59
- package/dist/components/bcm-accordion.js.map +1 -1
- package/dist/components/bcm-alert.js +1 -112
- package/dist/components/bcm-alert.js.map +1 -1
- package/dist/components/bcm-avatar.js +26 -14
- package/dist/components/bcm-avatar.js.map +1 -1
- package/dist/components/bcm-badge.js +1 -1
- package/dist/components/bcm-basic-badge.js +76 -60
- package/dist/components/bcm-basic-badge.js.map +1 -1
- package/dist/components/bcm-button-group.js +39 -25
- package/dist/components/bcm-button-group.js.map +1 -1
- package/dist/components/bcm-button.js +1 -1
- package/dist/components/bcm-checkbox.js +300 -186
- package/dist/components/bcm-checkbox.js.map +1 -1
- package/dist/components/bcm-chip.js +41 -36
- package/dist/components/bcm-chip.js.map +1 -1
- package/dist/components/bcm-divider.js +59 -57
- package/dist/components/bcm-divider.js.map +1 -1
- package/dist/components/bcm-drawer.js +276 -138
- package/dist/components/bcm-drawer.js.map +1 -1
- package/dist/components/bcm-dropdown-item.js +40 -35
- package/dist/components/bcm-dropdown-item.js.map +1 -1
- package/dist/components/bcm-dropdown.js +22 -28
- package/dist/components/bcm-dropdown.js.map +1 -1
- package/dist/components/{bcm-tabs-content.d.ts → bcm-file-upload.d.ts} +4 -4
- package/dist/components/bcm-file-upload.js +593 -0
- package/dist/components/bcm-file-upload.js.map +1 -0
- package/dist/components/bcm-input.js +248 -160
- package/dist/components/bcm-input.js.map +1 -1
- package/dist/components/bcm-linked.js +1 -1
- package/dist/components/bcm-modal.js +196 -119
- package/dist/components/bcm-modal.js.map +1 -1
- package/dist/components/bcm-pop-confirm.js +354 -215
- package/dist/components/bcm-pop-confirm.js.map +1 -1
- package/dist/components/bcm-popover.js +431 -157
- package/dist/components/bcm-popover.js.map +1 -1
- package/dist/components/bcm-radio-group.js +106 -81
- package/dist/components/bcm-radio-group.js.map +1 -1
- package/dist/components/bcm-radio.js +245 -110
- package/dist/components/bcm-radio.js.map +1 -1
- package/dist/components/{bcm-tabs-list.d.ts → bcm-segment.d.ts} +4 -4
- package/dist/components/bcm-segment.js +110 -0
- package/dist/components/bcm-segment.js.map +1 -0
- package/dist/components/bcm-segmented-picker.js +238 -117
- package/dist/components/bcm-segmented-picker.js.map +1 -1
- package/dist/components/bcm-shortcut.js +8 -5
- package/dist/components/bcm-shortcut.js.map +1 -1
- package/dist/components/bcm-switch.js +296 -158
- package/dist/components/bcm-switch.js.map +1 -1
- package/dist/components/{bcm-tabs-trigger.d.ts → bcm-tab.d.ts} +4 -4
- package/dist/components/bcm-tab.js +71 -0
- package/dist/components/bcm-tab.js.map +1 -0
- package/dist/components/bcm-tabs.js +200 -249
- package/dist/components/bcm-tabs.js.map +1 -1
- package/dist/components/bcm-text.js +89 -86
- package/dist/components/bcm-text.js.map +1 -1
- package/dist/components/bcm-textarea.js +222 -156
- package/dist/components/bcm-textarea.js.map +1 -1
- package/dist/components/bcm-tooltip.js +402 -154
- package/dist/components/bcm-tooltip.js.map +1 -1
- package/dist/components/index.js +140 -392
- package/dist/components/index.js.map +1 -1
- package/dist/components/p-5_TgtzQU.js +119 -0
- package/dist/components/p-5_TgtzQU.js.map +1 -0
- package/dist/components/p-BfTCfPZ1.js.map +1 -1
- package/dist/components/p-CEcVC0yX.js.map +1 -1
- package/dist/components/{p-CzcTU1ty.js → p-DBDSgIvP.js} +40 -23
- package/dist/components/p-DBDSgIvP.js.map +1 -0
- package/dist/components/p-IBjzkjef.js.map +1 -1
- package/dist/components/p-RlBWOSgL.js +179 -0
- package/dist/components/p-RlBWOSgL.js.map +1 -0
- package/dist/components/p-SERXqWcS.js +51 -0
- package/dist/components/p-SERXqWcS.js.map +1 -0
- package/dist/components/{p-CUvT12BL.js → p-nf_HKsGq.js} +6 -7
- package/dist/components/p-nf_HKsGq.js.map +1 -0
- package/dist/components/{p-DHONP_n4.js → p-xQIzBLsS.js} +112 -87
- package/dist/components/p-xQIzBLsS.js.map +1 -0
- package/dist/components/p-z9ESseGb.js +492 -0
- package/dist/components/p-z9ESseGb.js.map +1 -0
- package/dist/esm/base-choice-control-CKR8UdZ6.js +52 -0
- package/dist/esm/base-choice-control-CKR8UdZ6.js.map +1 -0
- package/dist/esm/bcm-accordion-group.entry.js +21 -21
- package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
- package/dist/esm/bcm-accordion.entry.js +75 -60
- package/dist/esm/bcm-accordion.entry.js.map +1 -1
- package/dist/esm/bcm-alert.entry.js +21 -23
- package/dist/esm/bcm-alert.entry.js.map +1 -1
- package/dist/esm/bcm-avatar.entry.js +22 -14
- package/dist/esm/bcm-avatar.entry.js.map +1 -1
- package/dist/esm/bcm-badge.entry.js +114 -84
- package/dist/esm/bcm-badge.entry.js.map +1 -1
- package/dist/esm/bcm-basic-badge.entry.js +73 -61
- package/dist/esm/bcm-basic-badge.entry.js.map +1 -1
- package/dist/esm/bcm-button-group.entry.js +36 -26
- package/dist/esm/bcm-button-group.entry.js.map +1 -1
- package/dist/esm/bcm-button.entry.js +336 -0
- package/dist/esm/bcm-button.entry.js.map +1 -0
- package/dist/esm/bcm-checkbox.entry.js +284 -176
- package/dist/esm/bcm-checkbox.entry.js.map +1 -1
- package/dist/esm/bcm-chip.entry.js +38 -37
- package/dist/esm/bcm-chip.entry.js.map +1 -1
- package/dist/esm/bcm-divider.entry.js +56 -58
- package/dist/esm/bcm-divider.entry.js.map +1 -1
- package/dist/esm/bcm-drawer.entry.js +330 -0
- package/dist/esm/bcm-drawer.entry.js.map +1 -0
- package/dist/esm/bcm-dropdown-item.entry.js +36 -35
- package/dist/esm/bcm-dropdown-item.entry.js.map +1 -1
- package/dist/esm/bcm-dropdown.entry.js +17 -26
- package/dist/esm/bcm-dropdown.entry.js.map +1 -1
- package/dist/esm/bcm-file-upload.entry.js +550 -0
- package/dist/esm/bcm-file-upload.entry.js.map +1 -0
- package/dist/esm/bcm-input.entry.js +250 -160
- package/dist/esm/bcm-input.entry.js.map +1 -1
- package/dist/esm/bcm-linked.entry.js +373 -264
- package/dist/esm/bcm-linked.entry.js.map +1 -1
- package/dist/esm/bcm-modal.entry.js +358 -0
- package/dist/esm/bcm-modal.entry.js.map +1 -0
- package/dist/esm/bcm-pop-confirm.entry.js +337 -206
- package/dist/esm/bcm-pop-confirm.entry.js.map +1 -1
- package/dist/esm/bcm-popover.entry.js +416 -154
- package/dist/esm/bcm-popover.entry.js.map +1 -1
- package/dist/esm/bcm-radio-group.entry.js +103 -82
- package/dist/esm/bcm-radio-group.entry.js.map +1 -1
- package/dist/esm/bcm-radio.entry.js +239 -108
- package/dist/esm/bcm-radio.entry.js.map +1 -1
- package/dist/esm/bcm-segment.bcm-segmented-picker.entry.js.map +1 -0
- package/dist/esm/bcm-segment_2.entry.js +332 -0
- package/dist/esm/bcm-shortcut.entry.js +5 -6
- package/dist/esm/bcm-shortcut.entry.js.map +1 -1
- package/dist/esm/bcm-switch.entry.js +281 -150
- package/dist/esm/bcm-switch.entry.js.map +1 -1
- package/dist/esm/bcm-tab.entry.js +42 -0
- package/dist/esm/bcm-tab.entry.js.map +1 -0
- package/dist/esm/bcm-tabs.entry.js +191 -239
- package/dist/esm/bcm-tabs.entry.js.map +1 -1
- package/dist/esm/bcm-text.entry.js +86 -87
- package/dist/esm/bcm-text.entry.js.map +1 -1
- package/dist/esm/bcm-textarea.entry.js +224 -156
- package/dist/esm/bcm-textarea.entry.js.map +1 -1
- package/dist/esm/bcm-tooltip.entry.js +386 -152
- package/dist/esm/bcm-tooltip.entry.js.map +1 -1
- package/dist/esm/bromcom-ui.js +4 -6
- package/dist/esm/bromcom-ui.js.map +1 -1
- package/dist/esm/{floating-ui.dom-DxMLMJ3r.js → floating-ui.dom-DBDSgIvP.js} +41 -24
- package/dist/esm/floating-ui.dom-DBDSgIvP.js.map +1 -0
- package/dist/esm/generate-id-IBjzkjef.js.map +1 -1
- package/dist/esm/{index-BuuGCw0z.js → index-B6Ppbs5O.js} +165 -398
- package/dist/esm/index-B6Ppbs5O.js.map +1 -0
- package/dist/esm/index-BfTCfPZ1.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/loader.js +3 -5
- package/dist/esm/tv-CEcVC0yX.js.map +1 -1
- package/dist/esm/{validation-messages-CUvT12BL.js → validation-messages-nf_HKsGq.js} +6 -7
- package/dist/{cjs/validation-messages-BjfpSEWk.js.map → esm/validation-messages-nf_HKsGq.js.map} +1 -1
- package/dist/types/components/_shared/form/base-choice-control.d.ts +15 -0
- package/dist/types/components/_shared/form/base-form-control.d.ts +11 -0
- package/dist/types/components/accordion-group/types.d.ts +2 -2
- package/dist/types/components/checkbox/checkbox.component.d.ts +89 -71
- package/dist/types/components/drawer/drawer.component.d.ts +143 -3
- package/dist/types/components/drawer/types.d.ts +1 -1
- package/dist/types/components/dropdown/dropdown.component.d.ts +0 -3
- package/dist/types/components/input/input.component.d.ts +5 -0
- package/dist/types/components/linked/linked.component.d.ts +152 -36
- package/dist/types/components/modal/modal.component.d.ts +121 -0
- package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +263 -143
- package/dist/types/components/popover/popover.component.d.ts +94 -39
- package/dist/types/components/radio/radio.component.d.ts +21 -0
- package/dist/types/components/segmented-picker/segment.component.d.ts +42 -0
- package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +91 -24
- package/dist/types/components/switch/switch.component.d.ts +83 -43
- package/dist/types/components/tabs/tab.component.d.ts +33 -0
- package/dist/types/components/tabs/tabs.component.d.ts +51 -64
- package/dist/types/components/textarea/textarea.component.d.ts +5 -0
- package/dist/types/components/tooltip/tooltip.component.d.ts +147 -56
- package/dist/types/components/upload/file-upload.component.d.ts +107 -0
- package/dist/types/components.d.ts +2400 -742
- package/dist/types/stencil-public-runtime.d.ts +50 -3
- package/package.json +2 -2
- package/dist/bromcom-ui/bcm-button.bcm-drawer.bcm-modal.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-segmented-picker-option.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-segmented-picker.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-tabs-content.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-tabs-list.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/bcm-tabs-trigger.entry.esm.js.map +0 -1
- package/dist/bromcom-ui/p-0101b4f2.entry.js +0 -2
- package/dist/bromcom-ui/p-0101b4f2.entry.js.map +0 -1
- package/dist/bromcom-ui/p-089edfdc.entry.js.map +0 -1
- package/dist/bromcom-ui/p-08bc93c5.entry.js +0 -2
- package/dist/bromcom-ui/p-08bc93c5.entry.js.map +0 -1
- package/dist/bromcom-ui/p-09be61c3.entry.js +0 -2
- package/dist/bromcom-ui/p-09be61c3.entry.js.map +0 -1
- package/dist/bromcom-ui/p-11851391.entry.js +0 -2
- package/dist/bromcom-ui/p-11851391.entry.js.map +0 -1
- package/dist/bromcom-ui/p-11f3e129.entry.js +0 -2
- package/dist/bromcom-ui/p-11f3e129.entry.js.map +0 -1
- package/dist/bromcom-ui/p-211ca6e0.entry.js +0 -2
- package/dist/bromcom-ui/p-211ca6e0.entry.js.map +0 -1
- package/dist/bromcom-ui/p-22edf049.entry.js +0 -2
- package/dist/bromcom-ui/p-22edf049.entry.js.map +0 -1
- package/dist/bromcom-ui/p-2480e468.entry.js.map +0 -1
- package/dist/bromcom-ui/p-26d2db9e.entry.js +0 -2
- package/dist/bromcom-ui/p-26d2db9e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-2d0a6472.entry.js +0 -2
- package/dist/bromcom-ui/p-2d0a6472.entry.js.map +0 -1
- package/dist/bromcom-ui/p-360bff8a.entry.js +0 -2
- package/dist/bromcom-ui/p-360bff8a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-488d6ef4.entry.js +0 -2
- package/dist/bromcom-ui/p-488d6ef4.entry.js.map +0 -1
- package/dist/bromcom-ui/p-5e0702d1.entry.js +0 -2
- package/dist/bromcom-ui/p-5e0702d1.entry.js.map +0 -1
- package/dist/bromcom-ui/p-63228f7e.entry.js +0 -2
- package/dist/bromcom-ui/p-63228f7e.entry.js.map +0 -1
- package/dist/bromcom-ui/p-6b585adc.entry.js +0 -2
- package/dist/bromcom-ui/p-6b585adc.entry.js.map +0 -1
- package/dist/bromcom-ui/p-6d7d73d5.entry.js +0 -2
- package/dist/bromcom-ui/p-6d7d73d5.entry.js.map +0 -1
- package/dist/bromcom-ui/p-7234af90.entry.js +0 -2
- package/dist/bromcom-ui/p-7234af90.entry.js.map +0 -1
- package/dist/bromcom-ui/p-83f64814.entry.js +0 -2
- package/dist/bromcom-ui/p-83f64814.entry.js.map +0 -1
- package/dist/bromcom-ui/p-8ace5a6a.entry.js +0 -2
- package/dist/bromcom-ui/p-8ace5a6a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-8d74249a.entry.js +0 -2
- package/dist/bromcom-ui/p-8d74249a.entry.js.map +0 -1
- package/dist/bromcom-ui/p-BuuGCw0z.js +0 -3
- package/dist/bromcom-ui/p-BuuGCw0z.js.map +0 -1
- package/dist/bromcom-ui/p-CUvT12BL.js +0 -2
- package/dist/bromcom-ui/p-DxMLMJ3r.js +0 -2
- package/dist/bromcom-ui/p-DxMLMJ3r.js.map +0 -1
- package/dist/bromcom-ui/p-a88f20e0.entry.js +0 -2
- package/dist/bromcom-ui/p-a88f20e0.entry.js.map +0 -1
- package/dist/bromcom-ui/p-bad299f2.entry.js +0 -2
- package/dist/bromcom-ui/p-bad299f2.entry.js.map +0 -1
- package/dist/bromcom-ui/p-bdaf5653.entry.js +0 -2
- package/dist/bromcom-ui/p-bdaf5653.entry.js.map +0 -1
- package/dist/bromcom-ui/p-c0e7f9d6.entry.js +0 -2
- package/dist/bromcom-ui/p-c0e7f9d6.entry.js.map +0 -1
- package/dist/bromcom-ui/p-c34f0a66.entry.js +0 -2
- package/dist/bromcom-ui/p-c34f0a66.entry.js.map +0 -1
- package/dist/bromcom-ui/p-d7cea19f.entry.js +0 -2
- package/dist/bromcom-ui/p-d7cea19f.entry.js.map +0 -1
- package/dist/bromcom-ui/p-e5e0ac07.entry.js +0 -2
- package/dist/bromcom-ui/p-e5e0ac07.entry.js.map +0 -1
- package/dist/bromcom-ui/p-ee5f877f.entry.js +0 -2
- package/dist/bromcom-ui/p-ee5f877f.entry.js.map +0 -1
- package/dist/bromcom-ui/p-fbccbffc.entry.js +0 -2
- package/dist/bromcom-ui/p-fbccbffc.entry.js.map +0 -1
- package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-accordion.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-alert.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-avatar.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-basic-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-button.bcm-drawer.bcm-modal.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-button_3.cjs.entry.js +0 -794
- package/dist/cjs/bcm-button_3.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-checkbox.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-chip.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-divider.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-dropdown.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-input.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-linked.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-popover.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-radio-group.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-radio.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +0 -107
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker-option.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js +0 -144
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-segmented-picker.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-shortcut.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-switch.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-content.cjs.entry.js +0 -20
- package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-content.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs-list.cjs.entry.js +0 -84
- package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-list.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +0 -122
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tabs-trigger.entry.cjs.js.map +0 -1
- package/dist/cjs/bcm-tabs.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-text.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-textarea.cjs.entry.js.map +0 -1
- package/dist/cjs/bcm-tooltip.cjs.entry.js.map +0 -1
- package/dist/cjs/floating-ui.dom-DyKmFgkP.js.map +0 -1
- package/dist/cjs/index-BtiU-G2W.js.map +0 -1
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +0 -253
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +0 -1
- package/dist/collection/components/segmented-picker/segmented-picker-option.css +0 -1
- package/dist/collection/components/tabs/tabs-content.component.js +0 -46
- package/dist/collection/components/tabs/tabs-content.component.js.map +0 -1
- package/dist/collection/components/tabs/tabs-content.css +0 -1
- package/dist/collection/components/tabs/tabs-list.component.js +0 -133
- package/dist/collection/components/tabs/tabs-list.component.js.map +0 -1
- package/dist/collection/components/tabs/tabs-list.css +0 -1
- package/dist/collection/components/tabs/tabs-trigger.component.js +0 -267
- package/dist/collection/components/tabs/tabs-trigger.component.js.map +0 -1
- package/dist/collection/components/tabs/tabs-trigger.css +0 -1
- package/dist/components/bcm-segmented-picker-option.d.ts +0 -11
- package/dist/components/bcm-segmented-picker-option.js +0 -131
- package/dist/components/bcm-segmented-picker-option.js.map +0 -1
- package/dist/components/bcm-tabs-content.js +0 -39
- package/dist/components/bcm-tabs-content.js.map +0 -1
- package/dist/components/bcm-tabs-list.js +0 -104
- package/dist/components/bcm-tabs-list.js.map +0 -1
- package/dist/components/bcm-tabs-trigger.js +0 -146
- package/dist/components/bcm-tabs-trigger.js.map +0 -1
- package/dist/components/p-BHwftRkk.js +0 -379
- package/dist/components/p-BHwftRkk.js.map +0 -1
- package/dist/components/p-CQF7wlXf.js +0 -145
- package/dist/components/p-CQF7wlXf.js.map +0 -1
- package/dist/components/p-CUvT12BL.js.map +0 -1
- package/dist/components/p-CzcTU1ty.js.map +0 -1
- package/dist/components/p-DHONP_n4.js.map +0 -1
- package/dist/esm/bcm-button.bcm-drawer.bcm-modal.entry.js.map +0 -1
- package/dist/esm/bcm-button_3.entry.js +0 -790
- package/dist/esm/bcm-button_3.entry.js.map +0 -1
- package/dist/esm/bcm-segmented-picker-option.entry.js +0 -105
- package/dist/esm/bcm-segmented-picker-option.entry.js.map +0 -1
- package/dist/esm/bcm-segmented-picker.entry.js +0 -142
- package/dist/esm/bcm-segmented-picker.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-content.entry.js +0 -18
- package/dist/esm/bcm-tabs-content.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-list.entry.js +0 -82
- package/dist/esm/bcm-tabs-list.entry.js.map +0 -1
- package/dist/esm/bcm-tabs-trigger.entry.js +0 -120
- package/dist/esm/bcm-tabs-trigger.entry.js.map +0 -1
- package/dist/esm/floating-ui.dom-DxMLMJ3r.js.map +0 -1
- package/dist/esm/index-BuuGCw0z.js.map +0 -1
- package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +0 -30
- package/dist/types/components/tabs/tabs-content.component.d.ts +0 -13
- package/dist/types/components/tabs/tabs-list.component.d.ts +0 -20
- package/dist/types/components/tabs/tabs-trigger.component.d.ts +0 -49
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"bcm-file-upload.js","mappings":"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","names":["BcmFileUpload","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/upload/file-upload.css?tag=bcm-file-upload&encapsulation=shadow","src/components/upload/file-upload.component.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import {\n Component,\n Prop,\n State,\n h,\n Element,\n Event,\n EventEmitter,\n AttachInternals,\n ComponentInterface,\n Fragment,\n Watch,\n Host,\n} from '@stencil/core';\nimport { tv } from '@utils/tv';\n\nexport type BcmUploadStatus = 'uploading' | 'uploaded' | 'error';\n\nexport interface BcmUploadItem {\n id: string;\n file: File;\n status: BcmUploadStatus;\n progress?: number;\n}\n\nexport interface BcmUploadErrorMessages {\n /**\n * Error message shown when a file exceeds the maxSize limit.\n */\n maxSize?: string;\n\n /**\n * Error message shown when file type is not allowed by `accept`.\n */\n type?: string;\n\n /**\n * Error message shown when `maxFileCount` is exceeded.\n */\n maxFileCount?: string;\n\n /**\n * Error message used for `required` validation when no file is selected.\n */\n required?: string;\n}\n\n/**\n * @component BcmFileUpload\n * @description A fully featured drag-and-drop file uploader component.\n * Supports form-associated behavior, validation, custom size limits,\n * accepted file type filtering, multiple file selection, progress tracking,\n * upload canceling, file removal, and accessibility events (focus/blur).\n *\n * Upload progress is currently simulated locally. The `uploadUrl` prop\n * is reserved for future real HTTP upload integration and has no effect yet.\n *\n * @example Basic usage\n * <bcm-file-upload name=\"report\" label=\"Upload Report\"></bcm-file-upload>\n *\n * @example Multiple files\n * <bcm-file-upload name=\"attachments\" multiple></bcm-file-upload>\n *\n * @example Custom max size and accepted formats\n * <bcm-file-upload\n * name=\"medicalFiles\"\n * accept=\".pdf,.jpg\"\n * maxSize={5}\n * ></bcm-file-upload>\n *\n * @prop {string} name\n * The name of the form field used when the component is inside a `<form>`.\n * Supports automatic FormData generation including:\n * - single upload: name=\"file\"\n * - multiple upload: name=\"file[0], file[1], ...\"\n *\n * @prop {string} label\n * Optional label shown above the upload zone.\n *\n * @prop {string} caption\n * Optional helper text rendered below the file list. Example: “Max size 5MB”.\n *\n * @prop {boolean} multiple\n * Allows selecting and uploading multiple files at once.\n *\n * @prop {string} accept\n * Comma-separated list of allowed file extensions.\n * Example: \".pdf,.xls,.png\".\n *\n * @prop {number} maxSize\n * Maximum allowed size per file (in MB). If exceeded, an error alert appears.\n *\n * @prop {boolean} required\n * Enables form validation — at least one file must be uploaded.\n * Validity integrates with native `<form>` using ElementInternals.\n *\n * @prop {boolean} disabled\n * Makes the uploader non-interactive: no clicking, no drag-and-drop.\n *\n * @prop {\"medium\" | \"small\"} size\n * Controls spacing, typography, and visual density of the upload zone.\n *\n * @prop {string} uploadUrl\n * Reserved for future backend upload integration.\n * Currently has no effect and does not trigger any HTTP requests.\n *\n * @prop {number} maxFileCount\n * Optional limit for how many files can be selected in total.\n * Only applied when `multiple` is true.\n * If exceeded, new files are ignored and a max-file-count error is shown.\n *\n * @prop {BcmUploadErrorMessages} customErrorMessages\n * Optional override for all error messages:\n * - maxSize: file too large\n * - type: unsupported file type\n * - maxFileCount: too many files selected\n * - required: no file selected while required\n *\n *\n * @event {EventEmitter<File[]>} bcmFileChange\n * Fired whenever the component's internal file list changes.\n * Emits an array of the current File objects.\n *\n * @event {EventEmitter<BcmUploadItem>} bcmFileRemoved\n * Fired when the user removes a file from the list.\n *\n * @event {EventEmitter<BcmUploadItem>} bcmUploadCanceled\n * Fired when an upload is canceled before completion.\n *\n * @event {EventEmitter<FocusEvent>} bcmFocus\n * Fired when upload zone receives keyboard or mouse focus.\n *\n * @event {EventEmitter<FocusEvent>} bcmBlur\n * Fired when upload zone loses focus.\n *\n *\n * @csspart upload-zone\n * The root clickable drop area for file selection or drag-and-drop.\n *\n * @csspart file-list\n * The container wrapping rendered file rows.\n *\n * @csspart file-row\n * A single file entry including its name, actions, and progress bar.\n *\n * @csspart remove-btn\n * The remove action button inside uploaded file rows.\n *\n * @csspart cancel-btn\n * The cancel upload button during uploading progress.\n *\n * @csspart download-btn\n * The download button for already uploaded files.\n *\n * @csspart label\n * The external label text displayed above the component.\n *\n * @csspart caption\n * Helper or informative caption displayed below the uploaded list.\n */\n\nconst uploadClasses = tv({\n slots: {\n container: 'bcm-ui-element flex flex-col gap-2 w-full max-w-64',\n label: 'text-size-4 font-medium text-color-label',\n\n // Upload Zone\n zone: [\n 'relative rounded border border-dashed transition-all duration-200 ease-in-out',\n 'px-4 py-4 select-none',\n 'border-color-default bg-color-basic-masterpage',\n 'flex items-center justify-center',\n ],\n zoneActive: 'border-color-primary bg-color-soft-blue',\n\n iconContainer: 'flex items-center justify-center shrink-0',\n iconSizeClass: 'text-size-10',\n\n zoneTextWrapper: 'flex flex-col flex-1 min-w-0',\n\n zoneTextMain: 'text-size-4 text-color-default font-medium',\n zoneLink: 'text-color-primary hover:underline',\n zoneTextSub: 'text-size-3 text-color-caption',\n\n // File List\n list: 'flex flex-col gap-3',\n\n // File Row\n fileRow: [\n 'flex flex-col items-center gap-2 rounded border transition-colors min-w-0 px-3 py-1.5',\n 'bg-color-default border-color-default',\n ],\n fileIcon: 'flex items-center justify-center rounded bg-color-soft-blue shrink-0',\n fileNameWrapper: 'flex flex-col flex-1 min-w-0',\n fileTitle: 'text-size-4 font-medium text-color-default',\n fileName: 'text-size-4 text-color-default truncate',\n\n // Progress\n progressWrapper: 'flex items-center gap-3 w-full',\n progressBar: 'h-full bg-color-primary rounded transition-all duration-300 ease-out',\n percent: 'text-size-4 font-medium text-color-caption min-w-[3ch] text-right',\n\n // Actions\n actions: 'flex items-center gap-2',\n iconBtn: [\n 'size-4 rounded-full flex items-center justify-center transition-colors cursor-pointer appearance-none',\n 'text-color-icon-default hover:bg-color-default-hover border-none',\n ],\n\n caption: 'text-size-3 text-color-caption',\n },\n\n variants: {\n size: {\n medium: {\n zone: 'flex-col text-center gap-2',\n iconContainer: 'h-10 w-[50px]',\n zoneTextWrapper: 'items-center gap-1',\n },\n small: {\n zone: 'px-3 py-4 gap-2 flex-row text-left',\n iconContainer: 'size-8',\n iconSizeClass: 'text-size-8',\n zoneTextWrapper: 'items-start gap-1',\n label: 'text-size-3',\n caption: 'text-size-2',\n },\n },\n disabled: {\n true: 'opacity-60 cursor-not-allowed',\n false: '',\n },\n },\n compoundVariants: [\n {\n disabled: true,\n class: {\n zone: 'bg-color-disabled border-color-disabled cursor-not-allowed',\n zoneTextMain: 'text-color-disabled',\n zoneTextSub: 'text-color-disabled',\n zoneLink:\n 'text-color-disabled cursor-not-allowed no-underline hover:no-underline',\n },\n },\n {\n disabled: false,\n class: {\n zone: 'cursor-pointer',\n },\n },\n ],\n defaultVariants: {\n size: 'medium',\n disabled: false,\n },\n});\n\n@Component({\n tag: 'bcm-file-upload',\n styleUrl: 'file-upload.css',\n shadow: true,\n formAssociated: true,\n})\nexport class BcmFileUpload implements ComponentInterface {\n @Element() host!: HTMLElement;\n @AttachInternals() internals!: ElementInternals;\n\n private fileInput?: HTMLInputElement;\n private uploadTimer?: number;\n\n // Focus target for validation errors and keyboard focus\n private uploadZoneRef?: HTMLDivElement;\n\n @Prop() name: string = 'file';\n @Prop() label: string = '';\n @Prop() caption?: string = '';\n @Prop() multiple: boolean = false;\n @Prop() accept: string = '.xls,.pdf';\n @Prop({ mutable: true }) maxSize: number = 2; // MB\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() size: 'medium' | 'small' = 'medium';\n\n /**\n * Reserved for future backend upload integration.\n * Currently does not affect component behavior.\n */\n @Prop() uploadUrl?: string;\n\n /**\n * Maximum number of files allowed in total.\n * Only applied when `multiple` is true.\n */\n @Prop() maxFileCount?: number;\n\n /**\n * Allows consumers to override default error messages.\n */\n @Prop() customErrorMessages?: BcmUploadErrorMessages;\n\n @State() private files: BcmUploadItem[] = [];\n @State() private dragActive = false;\n @State() private maxSizeError = false;\n @State() private typeError = false;\n @State() private maxFileCountError = false;\n\n // Emits when file list changes\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFileChange!: EventEmitter<File[]>;\n\n // Emits when a file is removed\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFileRemoved!: EventEmitter<BcmUploadItem>;\n\n // Emits when an upload is canceled\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmUploadCanceled!: EventEmitter<BcmUploadItem>;\n\n // Emits when the upload zone receives focus\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmFocus!: EventEmitter<FocusEvent>;\n\n // Emits when the upload zone loses focus\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmBlur!: EventEmitter<FocusEvent>;\n\n private internalMaxSizeInBytes: number = this.maxSize * 1024 * 1024;\n\n componentWillLoad(): void {\n this.internalMaxSizeInBytes = this.maxSize * 1024 * 1024;\n this.updateFormValueAndValidity();\n }\n\n disconnectedCallback() {\n // Clear interval when component is removed from the DOM\n if (this.uploadTimer) {\n window.clearInterval(this.uploadTimer);\n this.uploadTimer = undefined;\n }\n }\n\n @Watch('maxSize')\n handleMaxSizeChange() {\n this.internalMaxSizeInBytes = this.maxSize * 1024 * 1024;\n }\n\n /**\n * Normalize and check a file against the `accept` attribute.\n */\n private isFileAccepted(file: File): boolean {\n if (!this.accept) return true;\n\n const extension = '.' + (file.name.split('.').pop() || '').toLowerCase();\n const accepted = this.accept\n .toLowerCase()\n .split(',')\n .map(x => x.trim())\n .filter(Boolean); // e.g. ['.pdf', '.jpg', '.png']\n\n return accepted.includes(extension);\n }\n\n /**\n * Update form value and validity state for form-associated behavior.\n */\n private updateFormValueAndValidity() {\n if (!this.internals) return;\n\n if (!this.files.length) {\n this.internals.setFormValue(null);\n\n if (this.required) {\n const msg =\n this.customErrorMessages?.required ||\n 'Please upload at least one file.';\n\n this.internals.setValidity(\n { valueMissing: true },\n msg,\n // Use upload zone if available, otherwise host as the validation anchor\n this.uploadZoneRef ?? this.host,\n );\n } else {\n this.internals.setValidity({});\n }\n\n return;\n }\n\n const formData = new FormData();\n this.files.forEach((item, index) => {\n const key = this.multiple ? `${this.name}[${index}]` : this.name;\n formData.append(key, item.file);\n });\n\n this.internals.setFormValue(formData);\n this.internals.setValidity({});\n }\n\n private emitChange() {\n this.bcmFileChange.emit(this.files.map(f => f.file));\n }\n\n /**\n * Simulate upload progress. Replace with real upload logic if needed.\n */\n private startFakeUpload() {\n if (this.uploadTimer) {\n window.clearInterval(this.uploadTimer);\n }\n\n this.uploadTimer = window.setInterval(() => {\n let anyUploading = false;\n\n this.files = this.files.map(item => {\n if (item.status !== 'uploading') return item;\n\n anyUploading = true;\n const current = item.progress ?? 0;\n const next = Math.min(current + 15, 100);\n\n if (next >= 100) {\n return { ...item, status: 'uploaded', progress: undefined };\n }\n\n return { ...item, progress: next };\n });\n\n if (!anyUploading && this.uploadTimer) {\n window.clearInterval(this.uploadTimer);\n this.uploadTimer = undefined;\n this.updateFormValueAndValidity();\n this.emitChange();\n }\n }, 300);\n }\n\n /**\n * Add files from input or drop.\n */\n private addFiles(fileList: FileList | null) {\n if (!fileList || this.disabled) return;\n\n const newItems: BcmUploadItem[] = [];\n let hasSizeError = false;\n let hasTypeError = false;\n\n Array.from(fileList).forEach(file => {\n if (!this.isFileAccepted(file)) {\n hasTypeError = true;\n return;\n }\n\n if (file.size > this.internalMaxSizeInBytes) {\n hasSizeError = true;\n return;\n }\n\n newItems.push({\n id: crypto.randomUUID(),\n file,\n status: 'uploading',\n progress: 0,\n });\n });\n\n this.maxSizeError = hasSizeError;\n this.typeError = hasTypeError;\n this.maxFileCountError = false;\n\n // If there are no valid files, just update validity and exit.\n if (!newItems.length) {\n this.updateFormValueAndValidity();\n this.emitChange();\n return;\n }\n\n let merged: BcmUploadItem[];\n\n if (this.multiple) {\n if (typeof this.maxFileCount === 'number') {\n const remaining = this.maxFileCount - this.files.length;\n\n if (remaining <= 0) {\n this.maxFileCountError = true;\n this.updateFormValueAndValidity();\n this.emitChange();\n return;\n }\n\n const acceptedNew = newItems.slice(0, Math.max(0, remaining));\n if (acceptedNew.length < newItems.length) {\n this.maxFileCountError = true;\n }\n\n merged = [...this.files, ...acceptedNew];\n } else {\n merged = [...this.files, ...newItems];\n }\n } else {\n // single file mode → only take first new item\n merged = [newItems[0]];\n }\n\n this.files = merged;\n\n this.updateFormValueAndValidity();\n this.emitChange();\n\n // Only fake upload for now\n this.startFakeUpload();\n }\n\n private removeFile(item: BcmUploadItem) {\n this.files = this.files.filter(f => f.id !== item.id);\n this.bcmFileRemoved.emit(item);\n this.updateFormValueAndValidity();\n this.emitChange();\n }\n\n private cancelUpload(item: BcmUploadItem) {\n this.files = this.files.filter(f => f.id !== item.id);\n this.bcmUploadCanceled.emit(item);\n this.updateFormValueAndValidity();\n this.emitChange();\n }\n\n private onFileInputChange = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.addFiles(input.files);\n // Reset input so the same file can be selected again\n input.value = '';\n };\n\n private downloadFile(file: File) {\n const url = URL.createObjectURL(file);\n const a = document.createElement('a');\n a.href = url;\n a.download = file.name;\n a.click();\n URL.revokeObjectURL(url);\n }\n\n private handleDrop(ev: DragEvent) {\n ev.preventDefault();\n this.dragActive = false;\n if (this.disabled) return;\n\n const files = ev.dataTransfer?.files || null;\n if (!files || files.length === 0) return;\n\n const first = files.item(0);\n if (!first || !this.isFileAccepted(first)) {\n this.typeError = true;\n return;\n }\n\n this.addFiles(files);\n }\n\n private handleDragOver(ev: DragEvent) {\n ev.preventDefault();\n if (this.disabled) return;\n this.dragActive = true;\n }\n\n private handleDragLeave(ev: DragEvent) {\n ev.preventDefault();\n this.dragActive = false;\n }\n\n private openFileDialog = () => {\n if (this.disabled) return;\n this.fileInput?.click();\n };\n\n formResetCallback() {\n this.files = [];\n this.maxSizeError = false;\n this.typeError = false;\n this.maxFileCountError = false;\n\n if (this.uploadTimer) {\n window.clearInterval(this.uploadTimer);\n this.uploadTimer = undefined;\n }\n\n this.updateFormValueAndValidity();\n this.emitChange();\n }\n\n /**\n * When the browser or user calls element.focus(),\n * move focus to the upload zone.\n */\n public focus(options?: FocusOptions) {\n this.uploadZoneRef?.focus(options);\n }\n\n private handleFocus = (event: FocusEvent) => {\n this.bcmFocus.emit(event);\n };\n\n private handleBlur = (event: FocusEvent) => {\n this.bcmBlur.emit(event);\n };\n\n private renderErrors() {\n if (!this.maxSizeError && !this.typeError && !this.maxFileCountError) {\n return null;\n }\n\n const acceptedFormats = this.accept\n .replace(/\\./g, '')\n .toUpperCase()\n .replace(/,/g, ', ');\n\n const maxSizeMsg =\n this.customErrorMessages?.maxSize ||\n 'File size exceeds the maximum allowed limit.';\n\n const typeMsg =\n this.customErrorMessages?.type ||\n `Unsupported file type. Allowed formats: ${acceptedFormats}`;\n\n const maxFileCountMsg =\n this.customErrorMessages?.maxFileCount ||\n 'You have reached the maximum number of files.';\n\n return (\n <div class=\"w-full space-y-1\">\n {this.maxSizeError && (\n <bcm-alert\n status=\"error\"\n size=\"small\"\n dismissible\n onBcmDismiss={() => (this.maxSizeError = false)}\n >\n {maxSizeMsg}\n </bcm-alert>\n )}\n\n {this.typeError && (\n <bcm-alert\n status=\"error\"\n size=\"small\"\n dismissible\n onBcmDismiss={() => (this.typeError = false)}\n >\n {typeMsg}\n </bcm-alert>\n )}\n\n {this.maxFileCountError && (\n <bcm-alert\n status=\"error\"\n size=\"small\"\n dismissible\n onBcmDismiss={() => (this.maxFileCountError = false)}\n >\n {maxFileCountMsg}\n </bcm-alert>\n )}\n </div>\n );\n }\n\n private renderUploadZone() {\n const classes = uploadClasses({ size: this.size, disabled: this.disabled });\n const {\n zone,\n zoneActive,\n iconContainer,\n iconSizeClass,\n zoneTextWrapper,\n zoneTextMain,\n zoneTextSub,\n zoneLink,\n } = classes;\n\n const zoneClasses = [zone(), this.dragActive && zoneActive()]\n .filter(Boolean)\n .join(' ');\n\n const maxMb = Math.round(this.internalMaxSizeInBytes / (1024 * 1024));\n const iconColorClass = this.dragActive\n ? 'text-color-primary'\n : 'text-color-icon-default';\n\n return (\n <div\n ref={el => (this.uploadZoneRef = el as HTMLDivElement)}\n tabindex={this.disabled ? undefined : 0}\n part=\"upload-zone\"\n class={zoneClasses}\n onClick={this.openFileDialog}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onDragOver={ev => this.handleDragOver(ev)}\n onDragLeave={ev => this.handleDragLeave(ev)}\n onDrop={ev => this.handleDrop(ev)}\n >\n <div class={iconContainer()}>\n <bcm-icon\n name=\"fa-solid fa-cloud-arrow-up\"\n class={`${iconColorClass} ${iconSizeClass()}`}\n ></bcm-icon>\n </div>\n\n <div class={zoneTextWrapper()}>\n <div class={zoneTextMain()}>\n Drag & Drop{' '}\n <span class=\"text-color-helper\">or </span>\n <a\n class={zoneLink()}\n onClick={e => {\n e.preventDefault();\n this.openFileDialog();\n }}\n >\n Choose File\n </a>\n </div>\n <div class={zoneTextSub()}>\n Max: {maxMb}MB Formats:{' '}\n {this.accept.replace(/\\./g, '').toUpperCase().replace(/,/g, ', ')}\n </div>\n </div>\n\n <input\n ref={el => (this.fileInput = el as HTMLInputElement)}\n type=\"file\"\n hidden\n accept={this.accept}\n multiple={this.multiple}\n disabled={this.disabled}\n onChange={this.onFileInputChange}\n />\n </div>\n );\n }\n\n private renderFileRow(item: BcmUploadItem) {\n const { percent, actions, iconBtn, fileRow, fileTitle } = uploadClasses({\n size: this.size,\n disabled: this.disabled,\n });\n const isUploading = item?.status === 'uploading';\n\n return (\n <div part=\"file-row\" class={fileRow()} title={item?.file?.name}>\n <div class=\"flex items-center justify-between w-full gap-2 min-w-0\">\n <div class=\"flex items-center gap-1.5 min-w-0 flex-1 flex-shrink\">\n <div class=\"flex items-center rounded bg-color-default shrink-0 text-size-3 text-color-caption\">\n <bcm-icon name=\"fa-regular fa-file\"></bcm-icon>\n </div>\n <span class={fileTitle() + ' truncate'}>{item?.file?.name}</span>\n </div>\n\n <div class={actions() + ' flex-shrink-0'}>\n {item.status === 'uploaded' && (\n <Fragment>\n <button\n type=\"button\"\n part=\"download-btn\"\n class={iconBtn()}\n onClick={() => this.downloadFile(item.file)}\n title=\"Download\"\n >\n <bcm-icon\n name=\"fa-regular fa-download\"\n class=\"text-size-4\"\n ></bcm-icon>\n </button>\n\n <button\n type=\"button\"\n part=\"remove-btn\"\n class={iconBtn()}\n onClick={() => this.removeFile(item)}\n title=\"Remove\"\n >\n <bcm-icon\n name=\"fa-regular fa-trash\"\n class=\"text-size-4\"\n ></bcm-icon>\n </button>\n </Fragment>\n )}\n\n {isUploading && (\n <button\n type=\"button\"\n part=\"cancel-btn\"\n class={\n 'text-color-default bg-transparent hover:bg-color-default-hover text-size-4 cursor-pointer flex items-center justify-center size-5 rounded-full border-none'\n }\n onClick={() => this.cancelUpload(item)}\n title=\"Cancel\"\n >\n <bcm-icon\n name=\"fa-regular fa-xmark\"\n class=\"text-size-4\"\n ></bcm-icon>\n </button>\n )}\n </div>\n </div>\n\n {isUploading && (\n <div class=\"flex items-center gap-3 w-full min-w-0\">\n <div class=\"h-1.5 flex-1 rounded-full bg-color-surface-default overflow-hidden\">\n <div\n class=\"h-full bg-color-primary rounded-full transition-all duration-300 ease-out\"\n style={{ width: `${item.progress ?? 0}%` }}\n />\n </div>\n <span class={percent()}>{item.progress ?? 0}%</span>\n </div>\n )}\n </div>\n );\n }\n\n render() {\n const { container, label, list, caption } = uploadClasses({\n size: this.size,\n disabled: this.disabled,\n });\n\n return (\n <Host tabindex=\"-1\">\n <div class={container()}>\n {this.label && (\n <label part=\"label\" class={label()}>\n {this.label}\n </label>\n )}\n\n {this.renderUploadZone()}\n\n {this.renderErrors()}\n\n {this.files.length > 0 && (\n <div part=\"file-list\" class={list()}>\n {this.files.map(item => this.renderFileRow(item))}\n </div>\n )}\n\n {this.caption && (\n <span part=\"caption\" class={caption()}>\n {this.caption}\n </span>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|