@actabldesign/bellhop-core 0.0.3
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/README.md +116 -0
- package/bellhop-core/bellhop-core.css +7 -0
- package/bellhop-core/bellhop-core.esm.js +2 -0
- package/bellhop-core/bellhop-core.esm.js.map +1 -0
- package/bellhop-core/bh-accordion-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-accordion.entry.esm.js.map +1 -0
- package/bellhop-core/bh-appbar.entry.esm.js.map +1 -0
- package/bellhop-core/bh-autocomplete-menu.bh-tag.entry.esm.js.map +1 -0
- package/bellhop-core/bh-avatar-add.entry.esm.js.map +1 -0
- package/bellhop-core/bh-avatar-stacked.entry.esm.js.map +1 -0
- package/bellhop-core/bh-avatar.entry.esm.js.map +1 -0
- package/bellhop-core/bh-badge-dot.bh-breadcrumbs.entry.esm.js.map +1 -0
- package/bellhop-core/bh-badge.entry.esm.js.map +1 -0
- package/bellhop-core/bh-bar-chart.entry.esm.js.map +1 -0
- package/bellhop-core/bh-button-icon.entry.esm.js.map +1 -0
- package/bellhop-core/bh-button.bh-loader-spinner.entry.esm.js.map +1 -0
- package/bellhop-core/bh-card-footer.entry.esm.js.map +1 -0
- package/bellhop-core/bh-card-header.entry.esm.js.map +1 -0
- package/bellhop-core/bh-card.entry.esm.js.map +1 -0
- package/bellhop-core/bh-chart-tooltip.entry.esm.js.map +1 -0
- package/bellhop-core/bh-checkbox-group-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-checkbox-group.entry.esm.js.map +1 -0
- package/bellhop-core/bh-checkbox.entry.esm.js.map +1 -0
- package/bellhop-core/bh-container-footer.entry.esm.js.map +1 -0
- package/bellhop-core/bh-container.entry.esm.js.map +1 -0
- package/bellhop-core/bh-data-grid.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-picker-content.bh-picker-menu.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-picker.bh-empty-state.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-range-picker-content.entry.esm.js.map +1 -0
- package/bellhop-core/bh-date-range-picker.entry.esm.js.map +1 -0
- package/bellhop-core/bh-dropdown-menu.entry.esm.js.map +1 -0
- package/bellhop-core/bh-dropdown.bh-logo-box.bh-nav-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-featured-icon.entry.esm.js.map +1 -0
- package/bellhop-core/bh-illustrations.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-autocomplete.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-number.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-password.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-text.entry.esm.js.map +1 -0
- package/bellhop-core/bh-input-verification.entry.esm.js.map +1 -0
- package/bellhop-core/bh-label.bh-tooltip.entry.esm.js.map +1 -0
- package/bellhop-core/bh-modal-actions.entry.esm.js.map +1 -0
- package/bellhop-core/bh-modal-header.entry.esm.js.map +1 -0
- package/bellhop-core/bh-modal.entry.esm.js.map +1 -0
- package/bellhop-core/bh-month-picker-content.entry.esm.js.map +1 -0
- package/bellhop-core/bh-month-picker.entry.esm.js.map +1 -0
- package/bellhop-core/bh-notification.entry.esm.js.map +1 -0
- package/bellhop-core/bh-page-navigation-child.entry.esm.js.map +1 -0
- package/bellhop-core/bh-page-navigation-multi-level.bh-page-navigation-single-level.entry.esm.js.map +1 -0
- package/bellhop-core/bh-page-navigation.entry.esm.js.map +1 -0
- package/bellhop-core/bh-pie-chart.entry.esm.js.map +1 -0
- package/bellhop-core/bh-popover.entry.esm.js.map +1 -0
- package/bellhop-core/bh-product-switcher.entry.esm.js.map +1 -0
- package/bellhop-core/bh-property-switcher.entry.esm.js.map +1 -0
- package/bellhop-core/bh-radio-button.entry.esm.js.map +1 -0
- package/bellhop-core/bh-sidebar.entry.esm.js.map +1 -0
- package/bellhop-core/bh-skeleton-loader.entry.esm.js.map +1 -0
- package/bellhop-core/bh-tab-item.entry.esm.js.map +1 -0
- package/bellhop-core/bh-tabs.entry.esm.js.map +1 -0
- package/bellhop-core/bh-textarea.entry.esm.js.map +1 -0
- package/bellhop-core/bh-toggle.entry.esm.js.map +1 -0
- package/bellhop-core/bh-trend-chart.entry.esm.js.map +1 -0
- package/bellhop-core/index.esm.js +2 -0
- package/bellhop-core/index.esm.js.map +1 -0
- package/bellhop-core/loader.esm.js.map +1 -0
- package/bellhop-core/p-051a25aa.entry.js +2 -0
- package/bellhop-core/p-051a25aa.entry.js.map +1 -0
- package/bellhop-core/p-0579ce8d.entry.js +2 -0
- package/bellhop-core/p-0579ce8d.entry.js.map +1 -0
- package/bellhop-core/p-05c13d72.entry.js +2 -0
- package/bellhop-core/p-05c13d72.entry.js.map +1 -0
- package/bellhop-core/p-0e013732.entry.js +2 -0
- package/bellhop-core/p-0e013732.entry.js.map +1 -0
- package/bellhop-core/p-1960c2d0.entry.js +2 -0
- package/bellhop-core/p-1960c2d0.entry.js.map +1 -0
- package/bellhop-core/p-2735c901.entry.js +2 -0
- package/bellhop-core/p-2735c901.entry.js.map +1 -0
- package/bellhop-core/p-2c80bc07.entry.js +2 -0
- package/bellhop-core/p-2c80bc07.entry.js.map +1 -0
- package/bellhop-core/p-2cc0c4cf.entry.js +2 -0
- package/bellhop-core/p-2cc0c4cf.entry.js.map +1 -0
- package/bellhop-core/p-3038cc1a.entry.js +2 -0
- package/bellhop-core/p-3038cc1a.entry.js.map +1 -0
- package/bellhop-core/p-324cad08.entry.js +2 -0
- package/bellhop-core/p-324cad08.entry.js.map +1 -0
- package/bellhop-core/p-3bf098fd.entry.js +2 -0
- package/bellhop-core/p-3bf098fd.entry.js.map +1 -0
- package/bellhop-core/p-3c739eea.entry.js +2 -0
- package/bellhop-core/p-3c739eea.entry.js.map +1 -0
- package/bellhop-core/p-4c71a0b6.entry.js +2 -0
- package/bellhop-core/p-4c71a0b6.entry.js.map +1 -0
- package/bellhop-core/p-5a220f12.entry.js +2 -0
- package/bellhop-core/p-5a220f12.entry.js.map +1 -0
- package/bellhop-core/p-5d844699.entry.js +2 -0
- package/bellhop-core/p-5d844699.entry.js.map +1 -0
- package/bellhop-core/p-5e8d2fc0.entry.js +2 -0
- package/bellhop-core/p-5e8d2fc0.entry.js.map +1 -0
- package/bellhop-core/p-71391701.entry.js +2 -0
- package/bellhop-core/p-71391701.entry.js.map +1 -0
- package/bellhop-core/p-7e67af77.entry.js +2 -0
- package/bellhop-core/p-7e67af77.entry.js.map +1 -0
- package/bellhop-core/p-7e908d03.entry.js +2 -0
- package/bellhop-core/p-7e908d03.entry.js.map +1 -0
- package/bellhop-core/p-8053e945.entry.js +2 -0
- package/bellhop-core/p-8053e945.entry.js.map +1 -0
- package/bellhop-core/p-852564d6.entry.js +2 -0
- package/bellhop-core/p-852564d6.entry.js.map +1 -0
- package/bellhop-core/p-86bbff38.entry.js +2 -0
- package/bellhop-core/p-86bbff38.entry.js.map +1 -0
- package/bellhop-core/p-87d1ed92.entry.js +2 -0
- package/bellhop-core/p-87d1ed92.entry.js.map +1 -0
- package/bellhop-core/p-94156013.entry.js +2 -0
- package/bellhop-core/p-94156013.entry.js.map +1 -0
- package/bellhop-core/p-954b9c38.entry.js +2 -0
- package/bellhop-core/p-954b9c38.entry.js.map +1 -0
- package/bellhop-core/p-9693180e.entry.js +2 -0
- package/bellhop-core/p-9693180e.entry.js.map +1 -0
- package/bellhop-core/p-98a336f7.entry.js +2 -0
- package/bellhop-core/p-98a336f7.entry.js.map +1 -0
- package/bellhop-core/p-98cc729f.entry.js +2 -0
- package/bellhop-core/p-98cc729f.entry.js.map +1 -0
- package/bellhop-core/p-9e7e64dc.entry.js +2 -0
- package/bellhop-core/p-9e7e64dc.entry.js.map +1 -0
- package/bellhop-core/p-9fe1fd2e.entry.js +2 -0
- package/bellhop-core/p-9fe1fd2e.entry.js.map +1 -0
- package/bellhop-core/p-CPgx0iFq.js +2 -0
- package/bellhop-core/p-CPgx0iFq.js.map +1 -0
- package/bellhop-core/p-DANVSPII.js +2 -0
- package/bellhop-core/p-DANVSPII.js.map +1 -0
- package/bellhop-core/p-DKeuA-TM.js +2 -0
- package/bellhop-core/p-DKeuA-TM.js.map +1 -0
- package/bellhop-core/p-DtVghh5W.js +3 -0
- package/bellhop-core/p-DtVghh5W.js.map +1 -0
- package/bellhop-core/p-a901ae33.entry.js +2 -0
- package/bellhop-core/p-a901ae33.entry.js.map +1 -0
- package/bellhop-core/p-abd6ade0.entry.js +2 -0
- package/bellhop-core/p-abd6ade0.entry.js.map +1 -0
- package/bellhop-core/p-abf68de4.entry.js +2 -0
- package/bellhop-core/p-abf68de4.entry.js.map +1 -0
- package/bellhop-core/p-ad15a4b9.entry.js +2 -0
- package/bellhop-core/p-ad15a4b9.entry.js.map +1 -0
- package/bellhop-core/p-b1affa8d.entry.js +2 -0
- package/bellhop-core/p-b1affa8d.entry.js.map +1 -0
- package/bellhop-core/p-b4104ae5.entry.js +2 -0
- package/bellhop-core/p-b4104ae5.entry.js.map +1 -0
- package/bellhop-core/p-c194883a.entry.js +2 -0
- package/bellhop-core/p-c194883a.entry.js.map +1 -0
- package/bellhop-core/p-c48ca590.entry.js +2 -0
- package/bellhop-core/p-c48ca590.entry.js.map +1 -0
- package/bellhop-core/p-c82e73aa.entry.js +2 -0
- package/bellhop-core/p-c82e73aa.entry.js.map +1 -0
- package/bellhop-core/p-d14192df.entry.js +2 -0
- package/bellhop-core/p-d14192df.entry.js.map +1 -0
- package/bellhop-core/p-d5fb8d0f.entry.js +2 -0
- package/bellhop-core/p-d5fb8d0f.entry.js.map +1 -0
- package/bellhop-core/p-d9106838.entry.js +2 -0
- package/bellhop-core/p-d9106838.entry.js.map +1 -0
- package/bellhop-core/p-d941cdba.entry.js +2 -0
- package/bellhop-core/p-d941cdba.entry.js.map +1 -0
- package/bellhop-core/p-d94b296e.entry.js +2 -0
- package/bellhop-core/p-d94b296e.entry.js.map +1 -0
- package/bellhop-core/p-df2728a1.entry.js +2 -0
- package/bellhop-core/p-df2728a1.entry.js.map +1 -0
- package/bellhop-core/p-df45027c.entry.js +2 -0
- package/bellhop-core/p-df45027c.entry.js.map +1 -0
- package/bellhop-core/p-dfe0574c.entry.js +2 -0
- package/bellhop-core/p-dfe0574c.entry.js.map +1 -0
- package/bellhop-core/p-e3c5d1e3.entry.js +2 -0
- package/bellhop-core/p-e3c5d1e3.entry.js.map +1 -0
- package/bellhop-core/p-e3d79592.entry.js +2 -0
- package/bellhop-core/p-e3d79592.entry.js.map +1 -0
- package/bellhop-core/p-e44539e9.entry.js +2 -0
- package/bellhop-core/p-e44539e9.entry.js.map +1 -0
- package/bellhop-core/p-e5b9a3de.entry.js +2 -0
- package/bellhop-core/p-e5b9a3de.entry.js.map +1 -0
- package/bellhop-core/p-e8e0739d.entry.js +2 -0
- package/bellhop-core/p-e8e0739d.entry.js.map +1 -0
- package/bellhop-core/p-ebb2492c.entry.js +2 -0
- package/bellhop-core/p-ebb2492c.entry.js.map +1 -0
- package/bellhop-core/p-ec894e11.entry.js +2 -0
- package/bellhop-core/p-ec894e11.entry.js.map +1 -0
- package/bellhop-core/p-f0cfc744.entry.js +2 -0
- package/bellhop-core/p-f0cfc744.entry.js.map +1 -0
- package/bellhop-core/p-f261bdae.entry.js +2 -0
- package/bellhop-core/p-f261bdae.entry.js.map +1 -0
- package/bellhop-core/p-f4c4c70d.entry.js +2 -0
- package/bellhop-core/p-f4c4c70d.entry.js.map +1 -0
- package/cjs/bellhop-core.cjs.js +25 -0
- package/cjs/bellhop-core.cjs.js.map +1 -0
- package/cjs/bh-accordion-item.cjs.entry.js +82 -0
- package/cjs/bh-accordion-item.entry.cjs.js.map +1 -0
- package/cjs/bh-accordion.cjs.entry.js +119 -0
- package/cjs/bh-accordion.entry.cjs.js.map +1 -0
- package/cjs/bh-appbar.cjs.entry.js +83 -0
- package/cjs/bh-appbar.entry.cjs.js.map +1 -0
- package/cjs/bh-autocomplete-menu.bh-tag.entry.cjs.js.map +1 -0
- package/cjs/bh-autocomplete-menu_2.cjs.entry.js +177 -0
- package/cjs/bh-avatar-add.cjs.entry.js +75 -0
- package/cjs/bh-avatar-add.entry.cjs.js.map +1 -0
- package/cjs/bh-avatar-stacked.cjs.entry.js +94 -0
- package/cjs/bh-avatar-stacked.entry.cjs.js.map +1 -0
- package/cjs/bh-avatar.cjs.entry.js +93 -0
- package/cjs/bh-avatar.entry.cjs.js.map +1 -0
- package/cjs/bh-badge-dot.bh-breadcrumbs.entry.cjs.js.map +1 -0
- package/cjs/bh-badge-dot_2.cjs.entry.js +134 -0
- package/cjs/bh-badge.cjs.entry.js +71 -0
- package/cjs/bh-badge.entry.cjs.js.map +1 -0
- package/cjs/bh-bar-chart.cjs.entry.js +164 -0
- package/cjs/bh-bar-chart.entry.cjs.js.map +1 -0
- package/cjs/bh-button-BKVcf-nK.js +117 -0
- package/cjs/bh-button-BKVcf-nK.js.map +1 -0
- package/cjs/bh-button-icon.cjs.entry.js +74 -0
- package/cjs/bh-button-icon.entry.cjs.js.map +1 -0
- package/cjs/bh-button.bh-loader-spinner.entry.cjs.js.map +1 -0
- package/cjs/bh-button_2.cjs.entry.js +47 -0
- package/cjs/bh-card-footer.cjs.entry.js +30 -0
- package/cjs/bh-card-footer.entry.cjs.js.map +1 -0
- package/cjs/bh-card-header.cjs.entry.js +74 -0
- package/cjs/bh-card-header.entry.cjs.js.map +1 -0
- package/cjs/bh-card.cjs.entry.js +48 -0
- package/cjs/bh-card.entry.cjs.js.map +1 -0
- package/cjs/bh-chart-tooltip.cjs.entry.js +57 -0
- package/cjs/bh-chart-tooltip.entry.cjs.js.map +1 -0
- package/cjs/bh-checkbox-group-item.cjs.entry.js +142 -0
- package/cjs/bh-checkbox-group-item.entry.cjs.js.map +1 -0
- package/cjs/bh-checkbox-group.cjs.entry.js +100 -0
- package/cjs/bh-checkbox-group.entry.cjs.js.map +1 -0
- package/cjs/bh-checkbox.cjs.entry.js +144 -0
- package/cjs/bh-checkbox.entry.cjs.js.map +1 -0
- package/cjs/bh-container-footer.cjs.entry.js +38 -0
- package/cjs/bh-container-footer.entry.cjs.js.map +1 -0
- package/cjs/bh-container.cjs.entry.js +26 -0
- package/cjs/bh-container.entry.cjs.js.map +1 -0
- package/cjs/bh-data-grid.cjs.entry.js +812 -0
- package/cjs/bh-data-grid.entry.cjs.js.map +1 -0
- package/cjs/bh-date-picker-content.bh-picker-menu.entry.cjs.js.map +1 -0
- package/cjs/bh-date-picker-content_2.cjs.entry.js +525 -0
- package/cjs/bh-date-picker.bh-empty-state.entry.cjs.js.map +1 -0
- package/cjs/bh-date-picker_2.cjs.entry.js +252 -0
- package/cjs/bh-date-range-picker-content.cjs.entry.js +151 -0
- package/cjs/bh-date-range-picker-content.entry.cjs.js.map +1 -0
- package/cjs/bh-date-range-picker.cjs.entry.js +167 -0
- package/cjs/bh-date-range-picker.entry.cjs.js.map +1 -0
- package/cjs/bh-dropdown-menu.cjs.entry.js +114 -0
- package/cjs/bh-dropdown-menu.entry.cjs.js.map +1 -0
- package/cjs/bh-dropdown.bh-logo-box.bh-nav-item.entry.cjs.js.map +1 -0
- package/cjs/bh-dropdown_3.cjs.entry.js +307 -0
- package/cjs/bh-featured-icon.cjs.entry.js +41 -0
- package/cjs/bh-featured-icon.entry.cjs.js.map +1 -0
- package/cjs/bh-illustrations.cjs.entry.js +65 -0
- package/cjs/bh-illustrations.entry.cjs.js.map +1 -0
- package/cjs/bh-input-autocomplete.cjs.entry.js +342 -0
- package/cjs/bh-input-autocomplete.entry.cjs.js.map +1 -0
- package/cjs/bh-input-number.cjs.entry.js +307 -0
- package/cjs/bh-input-number.entry.cjs.js.map +1 -0
- package/cjs/bh-input-password.cjs.entry.js +182 -0
- package/cjs/bh-input-password.entry.cjs.js.map +1 -0
- package/cjs/bh-input-text.cjs.entry.js +192 -0
- package/cjs/bh-input-text.entry.cjs.js.map +1 -0
- package/cjs/bh-input-verification.cjs.entry.js +203 -0
- package/cjs/bh-input-verification.entry.cjs.js.map +1 -0
- package/cjs/bh-label-DBqucnaO.js +110 -0
- package/cjs/bh-label-DBqucnaO.js.map +1 -0
- package/cjs/bh-label.bh-tooltip.entry.cjs.js.map +1 -0
- package/cjs/bh-label_2.cjs.entry.js +48 -0
- package/cjs/bh-modal-actions.cjs.entry.js +66 -0
- package/cjs/bh-modal-actions.entry.cjs.js.map +1 -0
- package/cjs/bh-modal-header.cjs.entry.js +76 -0
- package/cjs/bh-modal-header.entry.cjs.js.map +1 -0
- package/cjs/bh-modal.cjs.entry.js +56 -0
- package/cjs/bh-modal.entry.cjs.js.map +1 -0
- package/cjs/bh-month-picker-content.cjs.entry.js +189 -0
- package/cjs/bh-month-picker-content.entry.cjs.js.map +1 -0
- package/cjs/bh-month-picker.cjs.entry.js +152 -0
- package/cjs/bh-month-picker.entry.cjs.js.map +1 -0
- package/cjs/bh-notification.cjs.entry.js +128 -0
- package/cjs/bh-notification.entry.cjs.js.map +1 -0
- package/cjs/bh-page-navigation-child.cjs.entry.js +48 -0
- package/cjs/bh-page-navigation-child.entry.cjs.js.map +1 -0
- package/cjs/bh-page-navigation-multi-level.bh-page-navigation-single-level.entry.cjs.js.map +1 -0
- package/cjs/bh-page-navigation-multi-level_2.cjs.entry.js +146 -0
- package/cjs/bh-page-navigation.cjs.entry.js +72 -0
- package/cjs/bh-page-navigation.entry.cjs.js.map +1 -0
- package/cjs/bh-pie-chart.cjs.entry.js +157 -0
- package/cjs/bh-pie-chart.entry.cjs.js.map +1 -0
- package/cjs/bh-popover.cjs.entry.js +100 -0
- package/cjs/bh-popover.entry.cjs.js.map +1 -0
- package/cjs/bh-product-switcher.cjs.entry.js +102 -0
- package/cjs/bh-product-switcher.entry.cjs.js.map +1 -0
- package/cjs/bh-property-switcher.cjs.entry.js +231 -0
- package/cjs/bh-property-switcher.entry.cjs.js.map +1 -0
- package/cjs/bh-radio-button.cjs.entry.js +124 -0
- package/cjs/bh-radio-button.entry.cjs.js.map +1 -0
- package/cjs/bh-sidebar.cjs.entry.js +110 -0
- package/cjs/bh-sidebar.entry.cjs.js.map +1 -0
- package/cjs/bh-skeleton-loader.cjs.entry.js +34 -0
- package/cjs/bh-skeleton-loader.entry.cjs.js.map +1 -0
- package/cjs/bh-tab-item.cjs.entry.js +54 -0
- package/cjs/bh-tab-item.entry.cjs.js.map +1 -0
- package/cjs/bh-tabs.cjs.entry.js +52 -0
- package/cjs/bh-tabs.entry.cjs.js.map +1 -0
- package/cjs/bh-textarea.cjs.entry.js +161 -0
- package/cjs/bh-textarea.entry.cjs.js.map +1 -0
- package/cjs/bh-toggle.cjs.entry.js +141 -0
- package/cjs/bh-toggle.entry.cjs.js.map +1 -0
- package/cjs/bh-trend-chart.cjs.entry.js +121 -0
- package/cjs/bh-trend-chart.entry.cjs.js.map +1 -0
- package/cjs/form-9mbajZ3y.js +64 -0
- package/cjs/form-9mbajZ3y.js.map +1 -0
- package/cjs/index-tZqSQc8E.js +1951 -0
- package/cjs/index-tZqSQc8E.js.map +1 -0
- package/cjs/index.cjs.js +32 -0
- package/cjs/index.cjs.js.map +1 -0
- package/cjs/loader.cjs.js +13 -0
- package/cjs/loader.cjs.js.map +1 -0
- package/collection/collection-manifest.json +77 -0
- package/collection/components/bh-accordion/bh-accordion.css +30 -0
- package/collection/components/bh-accordion/bh-accordion.js +227 -0
- package/collection/components/bh-accordion/bh-accordion.js.map +1 -0
- package/collection/components/bh-accordion-item/bh-accordion-item.css +119 -0
- package/collection/components/bh-accordion-item/bh-accordion-item.js +207 -0
- package/collection/components/bh-accordion-item/bh-accordion-item.js.map +1 -0
- package/collection/components/bh-appbar/bh-appbar.css +80 -0
- package/collection/components/bh-appbar/bh-appbar.js +270 -0
- package/collection/components/bh-appbar/bh-appbar.js.map +1 -0
- package/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.css +142 -0
- package/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.js +301 -0
- package/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.js.map +1 -0
- package/collection/components/bh-avatar/bh-avatar.css +257 -0
- package/collection/components/bh-avatar/bh-avatar.js +266 -0
- package/collection/components/bh-avatar/bh-avatar.js.map +1 -0
- package/collection/components/bh-avatar-add/bh-avatar-add.css +145 -0
- package/collection/components/bh-avatar-add/bh-avatar-add.js +194 -0
- package/collection/components/bh-avatar-add/bh-avatar-add.js.map +1 -0
- package/collection/components/bh-avatar-stacked/bh-avatar-stacked.css +29 -0
- package/collection/components/bh-avatar-stacked/bh-avatar-stacked.js +211 -0
- package/collection/components/bh-avatar-stacked/bh-avatar-stacked.js.map +1 -0
- package/collection/components/bh-badge/bh-badge.css +348 -0
- package/collection/components/bh-badge/bh-badge.js +250 -0
- package/collection/components/bh-badge/bh-badge.js.map +1 -0
- package/collection/components/bh-badge-dot/bh-badge-dot.css +77 -0
- package/collection/components/bh-badge-dot/bh-badge-dot.js +113 -0
- package/collection/components/bh-badge-dot/bh-badge-dot.js.map +1 -0
- package/collection/components/bh-bar-chart/bh-bar-chart.css +363 -0
- package/collection/components/bh-bar-chart/bh-bar-chart.js +316 -0
- package/collection/components/bh-bar-chart/bh-bar-chart.js.map +1 -0
- package/collection/components/bh-breadcrumbs/bh-breadcrumbs.css +158 -0
- package/collection/components/bh-breadcrumbs/bh-breadcrumbs.js +231 -0
- package/collection/components/bh-breadcrumbs/bh-breadcrumbs.js.map +1 -0
- package/collection/components/bh-button/bh-button.css +467 -0
- package/collection/components/bh-button/bh-button.js +350 -0
- package/collection/components/bh-button/bh-button.js.map +1 -0
- package/collection/components/bh-button-icon/bh-button-icon.css +187 -0
- package/collection/components/bh-button-icon/bh-button-icon.js +259 -0
- package/collection/components/bh-button-icon/bh-button-icon.js.map +1 -0
- package/collection/components/bh-card/bh-card.css +57 -0
- package/collection/components/bh-card/bh-card.js +139 -0
- package/collection/components/bh-card/bh-card.js.map +1 -0
- package/collection/components/bh-card-footer/bh-card-footer.css +54 -0
- package/collection/components/bh-card-footer/bh-card-footer.js +81 -0
- package/collection/components/bh-card-footer/bh-card-footer.js.map +1 -0
- package/collection/components/bh-card-header/bh-card-header.css +68 -0
- package/collection/components/bh-card-header/bh-card-header.js +348 -0
- package/collection/components/bh-card-header/bh-card-header.js.map +1 -0
- package/collection/components/bh-chart-tooltip/bh-chart-tooltip.css +301 -0
- package/collection/components/bh-chart-tooltip/bh-chart-tooltip.js +226 -0
- package/collection/components/bh-chart-tooltip/bh-chart-tooltip.js.map +1 -0
- package/collection/components/bh-checkbox/bh-checkbox.css +179 -0
- package/collection/components/bh-checkbox/bh-checkbox.js +378 -0
- package/collection/components/bh-checkbox/bh-checkbox.js.map +1 -0
- package/collection/components/bh-checkbox-group/bh-checkbox-group.css +10 -0
- package/collection/components/bh-checkbox-group/bh-checkbox-group.js +218 -0
- package/collection/components/bh-checkbox-group/bh-checkbox-group.js.map +1 -0
- package/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.css +118 -0
- package/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.js +402 -0
- package/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.js.map +1 -0
- package/collection/components/bh-container/bh-container.css +21 -0
- package/collection/components/bh-container/bh-container.js +51 -0
- package/collection/components/bh-container/bh-container.js.map +1 -0
- package/collection/components/bh-container-footer/bh-container-footer.css +22 -0
- package/collection/components/bh-container-footer/bh-container-footer.js +106 -0
- package/collection/components/bh-container-footer/bh-container-footer.js.map +1 -0
- package/collection/components/bh-data-grid/bh-data-grid.css +602 -0
- package/collection/components/bh-data-grid/bh-data-grid.js +1488 -0
- package/collection/components/bh-data-grid/bh-data-grid.js.map +1 -0
- package/collection/components/bh-date-picker/bh-date-picker.css +251 -0
- package/collection/components/bh-date-picker/bh-date-picker.js +485 -0
- package/collection/components/bh-date-picker/bh-date-picker.js.map +1 -0
- package/collection/components/bh-date-picker-content/bh-date-picker-content.css +541 -0
- package/collection/components/bh-date-picker-content/bh-date-picker-content.js +711 -0
- package/collection/components/bh-date-picker-content/bh-date-picker-content.js.map +1 -0
- package/collection/components/bh-date-range-picker/bh-date-range-picker.css +247 -0
- package/collection/components/bh-date-range-picker/bh-date-range-picker.js +528 -0
- package/collection/components/bh-date-range-picker/bh-date-range-picker.js.map +1 -0
- package/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.css +275 -0
- package/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.js +338 -0
- package/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.js.map +1 -0
- package/collection/components/bh-dropdown/bh-dropdown.css +64 -0
- package/collection/components/bh-dropdown/bh-dropdown.js +512 -0
- package/collection/components/bh-dropdown/bh-dropdown.js.map +1 -0
- package/collection/components/bh-dropdown-menu/bh-dropdown-menu.css +227 -0
- package/collection/components/bh-dropdown-menu/bh-dropdown-menu.js +262 -0
- package/collection/components/bh-dropdown-menu/bh-dropdown-menu.js.map +1 -0
- package/collection/components/bh-empty-state/bh-empty-state.css +89 -0
- package/collection/components/bh-empty-state/bh-empty-state.js +306 -0
- package/collection/components/bh-empty-state/bh-empty-state.js.map +1 -0
- package/collection/components/bh-featured-icon/bh-featured-icon.css +198 -0
- package/collection/components/bh-featured-icon/bh-featured-icon.js +144 -0
- package/collection/components/bh-featured-icon/bh-featured-icon.js.map +1 -0
- package/collection/components/bh-illustrations/bh-illustrations.css +328 -0
- package/collection/components/bh-illustrations/bh-illustrations.js +174 -0
- package/collection/components/bh-illustrations/bh-illustrations.js.map +1 -0
- package/collection/components/bh-input-autocomplete/bh-input-autocomplete.css +301 -0
- package/collection/components/bh-input-autocomplete/bh-input-autocomplete.js +872 -0
- package/collection/components/bh-input-autocomplete/bh-input-autocomplete.js.map +1 -0
- package/collection/components/bh-input-number/bh-input-number.css +192 -0
- package/collection/components/bh-input-number/bh-input-number.js +818 -0
- package/collection/components/bh-input-number/bh-input-number.js.map +1 -0
- package/collection/components/bh-input-password/bh-input-password.css +164 -0
- package/collection/components/bh-input-password/bh-input-password.js +581 -0
- package/collection/components/bh-input-password/bh-input-password.js.map +1 -0
- package/collection/components/bh-input-text/bh-input-text.css +153 -0
- package/collection/components/bh-input-text/bh-input-text.js +696 -0
- package/collection/components/bh-input-text/bh-input-text.js.map +1 -0
- package/collection/components/bh-input-verification/bh-input-verification.css +125 -0
- package/collection/components/bh-input-verification/bh-input-verification.js +523 -0
- package/collection/components/bh-input-verification/bh-input-verification.js.map +1 -0
- package/collection/components/bh-label/bh-label.css +143 -0
- package/collection/components/bh-label/bh-label.js +302 -0
- package/collection/components/bh-label/bh-label.js.map +1 -0
- package/collection/components/bh-loader-spinner/bh-loader-spinner.css +153 -0
- package/collection/components/bh-loader-spinner/bh-loader-spinner.js +182 -0
- package/collection/components/bh-loader-spinner/bh-loader-spinner.js.map +1 -0
- package/collection/components/bh-logo-box/bh-logo-box.css +85 -0
- package/collection/components/bh-logo-box/bh-logo-box.js +184 -0
- package/collection/components/bh-logo-box/bh-logo-box.js.map +1 -0
- package/collection/components/bh-modal/bh-modal.css +87 -0
- package/collection/components/bh-modal/bh-modal.js +144 -0
- package/collection/components/bh-modal/bh-modal.js.map +1 -0
- package/collection/components/bh-modal-actions/bh-modal-actions.css +124 -0
- package/collection/components/bh-modal-actions/bh-modal-actions.js +208 -0
- package/collection/components/bh-modal-actions/bh-modal-actions.js.map +1 -0
- package/collection/components/bh-modal-header/bh-modal-header.css +106 -0
- package/collection/components/bh-modal-header/bh-modal-header.js +275 -0
- package/collection/components/bh-modal-header/bh-modal-header.js.map +1 -0
- package/collection/components/bh-month-picker/bh-month-picker.css +251 -0
- package/collection/components/bh-month-picker/bh-month-picker.js +444 -0
- package/collection/components/bh-month-picker/bh-month-picker.js.map +1 -0
- package/collection/components/bh-month-picker-content/bh-month-picker-content.css +406 -0
- package/collection/components/bh-month-picker-content/bh-month-picker-content.js +437 -0
- package/collection/components/bh-month-picker-content/bh-month-picker-content.js.map +1 -0
- package/collection/components/bh-notification/bh-notification.css +117 -0
- package/collection/components/bh-notification/bh-notification.js +324 -0
- package/collection/components/bh-notification/bh-notification.js.map +1 -0
- package/collection/components/bh-page-navigation/bh-page-navigation.css +253 -0
- package/collection/components/bh-page-navigation/bh-page-navigation.js +146 -0
- package/collection/components/bh-page-navigation/bh-page-navigation.js.map +1 -0
- package/collection/components/bh-page-navigation-child/bh-page-navigation-child.css +281 -0
- package/collection/components/bh-page-navigation-child/bh-page-navigation-child.js +148 -0
- package/collection/components/bh-page-navigation-child/bh-page-navigation-child.js.map +1 -0
- package/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.css +372 -0
- package/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.js +268 -0
- package/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.js.map +1 -0
- package/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.css +294 -0
- package/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.js +126 -0
- package/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.js.map +1 -0
- package/collection/components/bh-picker-menu/bh-picker-menu.css +284 -0
- package/collection/components/bh-picker-menu/bh-picker-menu.js +470 -0
- package/collection/components/bh-picker-menu/bh-picker-menu.js.map +1 -0
- package/collection/components/bh-pie-chart/bh-pie-chart.css +292 -0
- package/collection/components/bh-pie-chart/bh-pie-chart.js +280 -0
- package/collection/components/bh-pie-chart/bh-pie-chart.js.map +1 -0
- package/collection/components/bh-popover/bh-popover.css +310 -0
- package/collection/components/bh-popover/bh-popover.js +326 -0
- package/collection/components/bh-popover/bh-popover.js.map +1 -0
- package/collection/components/bh-product-switcher/bh-product-switcher.css +128 -0
- package/collection/components/bh-product-switcher/bh-product-switcher.js +226 -0
- package/collection/components/bh-product-switcher/bh-product-switcher.js.map +1 -0
- package/collection/components/bh-property-switcher/bh-property-switcher.css +346 -0
- package/collection/components/bh-property-switcher/bh-property-switcher.js +360 -0
- package/collection/components/bh-property-switcher/bh-property-switcher.js.map +1 -0
- package/collection/components/bh-radio-button/bh-radio-button.css +159 -0
- package/collection/components/bh-radio-button/bh-radio-button.js +292 -0
- package/collection/components/bh-radio-button/bh-radio-button.js.map +1 -0
- package/collection/components/bh-sidebar/bh-nav-item.css +114 -0
- package/collection/components/bh-sidebar/bh-nav-item.js +157 -0
- package/collection/components/bh-sidebar/bh-nav-item.js.map +1 -0
- package/collection/components/bh-sidebar/bh-sidebar.css +178 -0
- package/collection/components/bh-sidebar/bh-sidebar.js +344 -0
- package/collection/components/bh-sidebar/bh-sidebar.js.map +1 -0
- package/collection/components/bh-skeleton-loader/bh-skeleton-loader.css +50 -0
- package/collection/components/bh-skeleton-loader/bh-skeleton-loader.js +99 -0
- package/collection/components/bh-skeleton-loader/bh-skeleton-loader.js.map +1 -0
- package/collection/components/bh-tab-item/bh-tab-item.css +132 -0
- package/collection/components/bh-tab-item/bh-tab-item.js +158 -0
- package/collection/components/bh-tab-item/bh-tab-item.js.map +1 -0
- package/collection/components/bh-tabs/bh-tabs.css +71 -0
- package/collection/components/bh-tabs/bh-tabs.js +178 -0
- package/collection/components/bh-tabs/bh-tabs.js.map +1 -0
- package/collection/components/bh-tag/bh-tag.css +180 -0
- package/collection/components/bh-tag/bh-tag.js +238 -0
- package/collection/components/bh-tag/bh-tag.js.map +1 -0
- package/collection/components/bh-textarea/bh-textarea.css +115 -0
- package/collection/components/bh-textarea/bh-textarea.js +569 -0
- package/collection/components/bh-textarea/bh-textarea.js.map +1 -0
- package/collection/components/bh-toggle/bh-toggle.css +290 -0
- package/collection/components/bh-toggle/bh-toggle.js +369 -0
- package/collection/components/bh-toggle/bh-toggle.js.map +1 -0
- package/collection/components/bh-tooltip/bh-tooltip.css +88 -0
- package/collection/components/bh-tooltip/bh-tooltip.js +162 -0
- package/collection/components/bh-tooltip/bh-tooltip.js.map +1 -0
- package/collection/components/bh-trend-chart/bh-trend-chart.css +299 -0
- package/collection/components/bh-trend-chart/bh-trend-chart.js +256 -0
- package/collection/components/bh-trend-chart/bh-trend-chart.js.map +1 -0
- package/collection/index.js +22 -0
- package/collection/index.js.map +1 -0
- package/collection/utils/form.js +68 -0
- package/collection/utils/form.js.map +1 -0
- package/components/bh-accordion-item.d.ts +11 -0
- package/components/bh-accordion-item.js +111 -0
- package/components/bh-accordion-item.js.map +1 -0
- package/components/bh-accordion.d.ts +11 -0
- package/components/bh-accordion.js +147 -0
- package/components/bh-accordion.js.map +1 -0
- package/components/bh-appbar.d.ts +11 -0
- package/components/bh-appbar.js +128 -0
- package/components/bh-appbar.js.map +1 -0
- package/components/bh-autocomplete-menu.d.ts +11 -0
- package/components/bh-autocomplete-menu.js +9 -0
- package/components/bh-autocomplete-menu.js.map +1 -0
- package/components/bh-avatar-add.d.ts +11 -0
- package/components/bh-avatar-add.js +9 -0
- package/components/bh-avatar-add.js.map +1 -0
- package/components/bh-avatar-stacked.d.ts +11 -0
- package/components/bh-avatar-stacked.js +141 -0
- package/components/bh-avatar-stacked.js.map +1 -0
- package/components/bh-avatar.d.ts +11 -0
- package/components/bh-avatar.js +9 -0
- package/components/bh-avatar.js.map +1 -0
- package/components/bh-badge-dot.d.ts +11 -0
- package/components/bh-badge-dot.js +9 -0
- package/components/bh-badge-dot.js.map +1 -0
- package/components/bh-badge.d.ts +11 -0
- package/components/bh-badge.js +9 -0
- package/components/bh-badge.js.map +1 -0
- package/components/bh-bar-chart.d.ts +11 -0
- package/components/bh-bar-chart.js +205 -0
- package/components/bh-bar-chart.js.map +1 -0
- package/components/bh-breadcrumbs.d.ts +11 -0
- package/components/bh-breadcrumbs.js +9 -0
- package/components/bh-breadcrumbs.js.map +1 -0
- package/components/bh-button-icon.d.ts +11 -0
- package/components/bh-button-icon.js +9 -0
- package/components/bh-button-icon.js.map +1 -0
- package/components/bh-button.d.ts +11 -0
- package/components/bh-button.js +9 -0
- package/components/bh-button.js.map +1 -0
- package/components/bh-card-footer.d.ts +11 -0
- package/components/bh-card-footer.js +9 -0
- package/components/bh-card-footer.js.map +1 -0
- package/components/bh-card-header.d.ts +11 -0
- package/components/bh-card-header.js +9 -0
- package/components/bh-card-header.js.map +1 -0
- package/components/bh-card.d.ts +11 -0
- package/components/bh-card.js +9 -0
- package/components/bh-card.js.map +1 -0
- package/components/bh-chart-tooltip.d.ts +11 -0
- package/components/bh-chart-tooltip.js +9 -0
- package/components/bh-chart-tooltip.js.map +1 -0
- package/components/bh-checkbox-group-item.d.ts +11 -0
- package/components/bh-checkbox-group-item.js +9 -0
- package/components/bh-checkbox-group-item.js.map +1 -0
- package/components/bh-checkbox-group.d.ts +11 -0
- package/components/bh-checkbox-group.js +9 -0
- package/components/bh-checkbox-group.js.map +1 -0
- package/components/bh-checkbox.d.ts +11 -0
- package/components/bh-checkbox.js +9 -0
- package/components/bh-checkbox.js.map +1 -0
- package/components/bh-container-footer.d.ts +11 -0
- package/components/bh-container-footer.js +74 -0
- package/components/bh-container-footer.js.map +1 -0
- package/components/bh-container.d.ts +11 -0
- package/components/bh-container.js +49 -0
- package/components/bh-container.js.map +1 -0
- package/components/bh-data-grid.d.ts +11 -0
- package/components/bh-data-grid.js +9 -0
- package/components/bh-data-grid.js.map +1 -0
- package/components/bh-date-picker-content.d.ts +11 -0
- package/components/bh-date-picker-content.js +9 -0
- package/components/bh-date-picker-content.js.map +1 -0
- package/components/bh-date-picker.d.ts +11 -0
- package/components/bh-date-picker.js +9 -0
- package/components/bh-date-picker.js.map +1 -0
- package/components/bh-date-range-picker-content.d.ts +11 -0
- package/components/bh-date-range-picker-content.js +9 -0
- package/components/bh-date-range-picker-content.js.map +1 -0
- package/components/bh-date-range-picker.d.ts +11 -0
- package/components/bh-date-range-picker.js +269 -0
- package/components/bh-date-range-picker.js.map +1 -0
- package/components/bh-dropdown-menu.d.ts +11 -0
- package/components/bh-dropdown-menu.js +9 -0
- package/components/bh-dropdown-menu.js.map +1 -0
- package/components/bh-dropdown.d.ts +11 -0
- package/components/bh-dropdown.js +9 -0
- package/components/bh-dropdown.js.map +1 -0
- package/components/bh-empty-state.d.ts +11 -0
- package/components/bh-empty-state.js +9 -0
- package/components/bh-empty-state.js.map +1 -0
- package/components/bh-featured-icon.d.ts +11 -0
- package/components/bh-featured-icon.js +9 -0
- package/components/bh-featured-icon.js.map +1 -0
- package/components/bh-illustrations.d.ts +11 -0
- package/components/bh-illustrations.js +92 -0
- package/components/bh-illustrations.js.map +1 -0
- package/components/bh-input-autocomplete.d.ts +11 -0
- package/components/bh-input-autocomplete.js +433 -0
- package/components/bh-input-autocomplete.js.map +1 -0
- package/components/bh-input-number.d.ts +11 -0
- package/components/bh-input-number.js +370 -0
- package/components/bh-input-number.js.map +1 -0
- package/components/bh-input-password.d.ts +11 -0
- package/components/bh-input-password.js +229 -0
- package/components/bh-input-password.js.map +1 -0
- package/components/bh-input-text.d.ts +11 -0
- package/components/bh-input-text.js +9 -0
- package/components/bh-input-text.js.map +1 -0
- package/components/bh-input-verification.d.ts +11 -0
- package/components/bh-input-verification.js +255 -0
- package/components/bh-input-verification.js.map +1 -0
- package/components/bh-label.d.ts +11 -0
- package/components/bh-label.js +9 -0
- package/components/bh-label.js.map +1 -0
- package/components/bh-loader-spinner.d.ts +11 -0
- package/components/bh-loader-spinner.js +9 -0
- package/components/bh-loader-spinner.js.map +1 -0
- package/components/bh-logo-box.d.ts +11 -0
- package/components/bh-logo-box.js +9 -0
- package/components/bh-logo-box.js.map +1 -0
- package/components/bh-modal-actions.d.ts +11 -0
- package/components/bh-modal-actions.js +105 -0
- package/components/bh-modal-actions.js.map +1 -0
- package/components/bh-modal-header.d.ts +11 -0
- package/components/bh-modal-header.js +119 -0
- package/components/bh-modal-header.js.map +1 -0
- package/components/bh-modal.d.ts +11 -0
- package/components/bh-modal.js +9 -0
- package/components/bh-modal.js.map +1 -0
- package/components/bh-month-picker-content.d.ts +11 -0
- package/components/bh-month-picker-content.js +9 -0
- package/components/bh-month-picker-content.js.map +1 -0
- package/components/bh-month-picker.d.ts +11 -0
- package/components/bh-month-picker.js +233 -0
- package/components/bh-month-picker.js.map +1 -0
- package/components/bh-nav-item.d.ts +11 -0
- package/components/bh-nav-item.js +9 -0
- package/components/bh-nav-item.js.map +1 -0
- package/components/bh-notification.d.ts +11 -0
- package/components/bh-notification.js +175 -0
- package/components/bh-notification.js.map +1 -0
- package/components/bh-page-navigation-child.d.ts +11 -0
- package/components/bh-page-navigation-child.js +9 -0
- package/components/bh-page-navigation-child.js.map +1 -0
- package/components/bh-page-navigation-multi-level.d.ts +11 -0
- package/components/bh-page-navigation-multi-level.js +9 -0
- package/components/bh-page-navigation-multi-level.js.map +1 -0
- package/components/bh-page-navigation-single-level.d.ts +11 -0
- package/components/bh-page-navigation-single-level.js +9 -0
- package/components/bh-page-navigation-single-level.js.map +1 -0
- package/components/bh-page-navigation.d.ts +11 -0
- package/components/bh-page-navigation.js +129 -0
- package/components/bh-page-navigation.js.map +1 -0
- package/components/bh-picker-menu.d.ts +11 -0
- package/components/bh-picker-menu.js +9 -0
- package/components/bh-picker-menu.js.map +1 -0
- package/components/bh-pie-chart.d.ts +11 -0
- package/components/bh-pie-chart.js +194 -0
- package/components/bh-pie-chart.js.map +1 -0
- package/components/bh-popover.d.ts +11 -0
- package/components/bh-popover.js +131 -0
- package/components/bh-popover.js.map +1 -0
- package/components/bh-product-switcher.d.ts +11 -0
- package/components/bh-product-switcher.js +9 -0
- package/components/bh-product-switcher.js.map +1 -0
- package/components/bh-property-switcher.d.ts +11 -0
- package/components/bh-property-switcher.js +261 -0
- package/components/bh-property-switcher.js.map +1 -0
- package/components/bh-radio-button.d.ts +11 -0
- package/components/bh-radio-button.js +9 -0
- package/components/bh-radio-button.js.map +1 -0
- package/components/bh-sidebar.d.ts +11 -0
- package/components/bh-sidebar.js +195 -0
- package/components/bh-sidebar.js.map +1 -0
- package/components/bh-skeleton-loader.d.ts +11 -0
- package/components/bh-skeleton-loader.js +59 -0
- package/components/bh-skeleton-loader.js.map +1 -0
- package/components/bh-tab-item.d.ts +11 -0
- package/components/bh-tab-item.js +80 -0
- package/components/bh-tab-item.js.map +1 -0
- package/components/bh-tabs.d.ts +11 -0
- package/components/bh-tabs.js +78 -0
- package/components/bh-tabs.js.map +1 -0
- package/components/bh-tag.d.ts +11 -0
- package/components/bh-tag.js +9 -0
- package/components/bh-tag.js.map +1 -0
- package/components/bh-textarea.d.ts +11 -0
- package/components/bh-textarea.js +207 -0
- package/components/bh-textarea.js.map +1 -0
- package/components/bh-toggle.d.ts +11 -0
- package/components/bh-toggle.js +9 -0
- package/components/bh-toggle.js.map +1 -0
- package/components/bh-tooltip.d.ts +11 -0
- package/components/bh-tooltip.js +9 -0
- package/components/bh-tooltip.js.map +1 -0
- package/components/bh-trend-chart.d.ts +11 -0
- package/components/bh-trend-chart.js +149 -0
- package/components/bh-trend-chart.js.map +1 -0
- package/components/index.d.ts +33 -0
- package/components/index.js +16 -0
- package/components/index.js.map +1 -0
- package/components/p-2KjdCYlS.js +59 -0
- package/components/p-2KjdCYlS.js.map +1 -0
- package/components/p-54wXxbeh.js +213 -0
- package/components/p-54wXxbeh.js.map +1 -0
- package/components/p-9a7sQzad.js +1463 -0
- package/components/p-9a7sQzad.js.map +1 -0
- package/components/p-B3doeS-4.js +158 -0
- package/components/p-B3doeS-4.js.map +1 -0
- package/components/p-B4TBDBoW.js +71 -0
- package/components/p-B4TBDBoW.js.map +1 -0
- package/components/p-BBenNW93.js +184 -0
- package/components/p-BBenNW93.js.map +1 -0
- package/components/p-BLRNfy0t.js +84 -0
- package/components/p-BLRNfy0t.js.map +1 -0
- package/components/p-BYhYSIIs.js +941 -0
- package/components/p-BYhYSIIs.js.map +1 -0
- package/components/p-Bbo_Dwmk.js +70 -0
- package/components/p-Bbo_Dwmk.js.map +1 -0
- package/components/p-BdcGkck5.js +72 -0
- package/components/p-BdcGkck5.js.map +1 -0
- package/components/p-Bk8GbEQp.js +132 -0
- package/components/p-Bk8GbEQp.js.map +1 -0
- package/components/p-CDPKBnfQ.js +92 -0
- package/components/p-CDPKBnfQ.js.map +1 -0
- package/components/p-CDgBIIbC.js +224 -0
- package/components/p-CDgBIIbC.js.map +1 -0
- package/components/p-CErNA5c8.js +204 -0
- package/components/p-CErNA5c8.js.map +1 -0
- package/components/p-CQBqn1IO.js +67 -0
- package/components/p-CQBqn1IO.js.map +1 -0
- package/components/p-CTjPiCcp.js +51 -0
- package/components/p-CTjPiCcp.js.map +1 -0
- package/components/p-CciWcvHP.js +123 -0
- package/components/p-CciWcvHP.js.map +1 -0
- package/components/p-CiQqgc-m.js +434 -0
- package/components/p-CiQqgc-m.js.map +1 -0
- package/components/p-CsRNKalM.js +166 -0
- package/components/p-CsRNKalM.js.map +1 -0
- package/components/p-CuVsQ9St.js +123 -0
- package/components/p-CuVsQ9St.js.map +1 -0
- package/components/p-D3OkBDd3.js +100 -0
- package/components/p-D3OkBDd3.js.map +1 -0
- package/components/p-D6cM-mvE.js +64 -0
- package/components/p-D6cM-mvE.js.map +1 -0
- package/components/p-D6kh9oF2.js +70 -0
- package/components/p-D6kh9oF2.js.map +1 -0
- package/components/p-DHSWIF-h.js +214 -0
- package/components/p-DHSWIF-h.js.map +1 -0
- package/components/p-DNhCX5eS.js +153 -0
- package/components/p-DNhCX5eS.js.map +1 -0
- package/components/p-DRGkYX1u.js +78 -0
- package/components/p-DRGkYX1u.js.map +1 -0
- package/components/p-DRJW4zBc.js +58 -0
- package/components/p-DRJW4zBc.js.map +1 -0
- package/components/p-DTgHvmlL.js +149 -0
- package/components/p-DTgHvmlL.js.map +1 -0
- package/components/p-DVhHZCku.js +220 -0
- package/components/p-DVhHZCku.js.map +1 -0
- package/components/p-DWpdUpK5.js +264 -0
- package/components/p-DWpdUpK5.js.map +1 -0
- package/components/p-D_DKZMpk.js +78 -0
- package/components/p-D_DKZMpk.js.map +1 -0
- package/components/p-Dbl0HXBJ.js +241 -0
- package/components/p-Dbl0HXBJ.js.map +1 -0
- package/components/p-DecYIvq4.js +124 -0
- package/components/p-DecYIvq4.js.map +1 -0
- package/components/p-DfXkVfrE.js +129 -0
- package/components/p-DfXkVfrE.js.map +1 -0
- package/components/p-HEcFS8Jc.js +125 -0
- package/components/p-HEcFS8Jc.js.map +1 -0
- package/components/p-MIbEYjCv.js +142 -0
- package/components/p-MIbEYjCv.js.map +1 -0
- package/components/p-NXL0pYS_.js +97 -0
- package/components/p-NXL0pYS_.js.map +1 -0
- package/components/p-X9MH3dtg.js +154 -0
- package/components/p-X9MH3dtg.js.map +1 -0
- package/components/p-YJm8-pxX.js +118 -0
- package/components/p-YJm8-pxX.js.map +1 -0
- package/components/p-ghuDbZwh.js +148 -0
- package/components/p-ghuDbZwh.js.map +1 -0
- package/components/p-p8W0xKpn.js +106 -0
- package/components/p-p8W0xKpn.js.map +1 -0
- package/esm/bellhop-core.js +21 -0
- package/esm/bellhop-core.js.map +1 -0
- package/esm/bh-accordion-item.entry.js +80 -0
- package/esm/bh-accordion-item.entry.js.map +1 -0
- package/esm/bh-accordion.entry.js +117 -0
- package/esm/bh-accordion.entry.js.map +1 -0
- package/esm/bh-appbar.entry.js +81 -0
- package/esm/bh-appbar.entry.js.map +1 -0
- package/esm/bh-autocomplete-menu.bh-tag.entry.js.map +1 -0
- package/esm/bh-autocomplete-menu_2.entry.js +174 -0
- package/esm/bh-avatar-add.entry.js +73 -0
- package/esm/bh-avatar-add.entry.js.map +1 -0
- package/esm/bh-avatar-stacked.entry.js +92 -0
- package/esm/bh-avatar-stacked.entry.js.map +1 -0
- package/esm/bh-avatar.entry.js +91 -0
- package/esm/bh-avatar.entry.js.map +1 -0
- package/esm/bh-badge-dot.bh-breadcrumbs.entry.js.map +1 -0
- package/esm/bh-badge-dot_2.entry.js +131 -0
- package/esm/bh-badge.entry.js +69 -0
- package/esm/bh-badge.entry.js.map +1 -0
- package/esm/bh-bar-chart.entry.js +162 -0
- package/esm/bh-bar-chart.entry.js.map +1 -0
- package/esm/bh-button-CBZGiLVh.js +115 -0
- package/esm/bh-button-CBZGiLVh.js.map +1 -0
- package/esm/bh-button-icon.entry.js +72 -0
- package/esm/bh-button-icon.entry.js.map +1 -0
- package/esm/bh-button.bh-loader-spinner.entry.js.map +1 -0
- package/esm/bh-button_2.entry.js +44 -0
- package/esm/bh-card-footer.entry.js +28 -0
- package/esm/bh-card-footer.entry.js.map +1 -0
- package/esm/bh-card-header.entry.js +72 -0
- package/esm/bh-card-header.entry.js.map +1 -0
- package/esm/bh-card.entry.js +46 -0
- package/esm/bh-card.entry.js.map +1 -0
- package/esm/bh-chart-tooltip.entry.js +55 -0
- package/esm/bh-chart-tooltip.entry.js.map +1 -0
- package/esm/bh-checkbox-group-item.entry.js +140 -0
- package/esm/bh-checkbox-group-item.entry.js.map +1 -0
- package/esm/bh-checkbox-group.entry.js +98 -0
- package/esm/bh-checkbox-group.entry.js.map +1 -0
- package/esm/bh-checkbox.entry.js +142 -0
- package/esm/bh-checkbox.entry.js.map +1 -0
- package/esm/bh-container-footer.entry.js +36 -0
- package/esm/bh-container-footer.entry.js.map +1 -0
- package/esm/bh-container.entry.js +24 -0
- package/esm/bh-container.entry.js.map +1 -0
- package/esm/bh-data-grid.entry.js +810 -0
- package/esm/bh-data-grid.entry.js.map +1 -0
- package/esm/bh-date-picker-content.bh-picker-menu.entry.js.map +1 -0
- package/esm/bh-date-picker-content_2.entry.js +522 -0
- package/esm/bh-date-picker.bh-empty-state.entry.js.map +1 -0
- package/esm/bh-date-picker_2.entry.js +249 -0
- package/esm/bh-date-range-picker-content.entry.js +149 -0
- package/esm/bh-date-range-picker-content.entry.js.map +1 -0
- package/esm/bh-date-range-picker.entry.js +165 -0
- package/esm/bh-date-range-picker.entry.js.map +1 -0
- package/esm/bh-dropdown-menu.entry.js +112 -0
- package/esm/bh-dropdown-menu.entry.js.map +1 -0
- package/esm/bh-dropdown.bh-logo-box.bh-nav-item.entry.js.map +1 -0
- package/esm/bh-dropdown_3.entry.js +303 -0
- package/esm/bh-featured-icon.entry.js +39 -0
- package/esm/bh-featured-icon.entry.js.map +1 -0
- package/esm/bh-illustrations.entry.js +63 -0
- package/esm/bh-illustrations.entry.js.map +1 -0
- package/esm/bh-input-autocomplete.entry.js +340 -0
- package/esm/bh-input-autocomplete.entry.js.map +1 -0
- package/esm/bh-input-number.entry.js +305 -0
- package/esm/bh-input-number.entry.js.map +1 -0
- package/esm/bh-input-password.entry.js +180 -0
- package/esm/bh-input-password.entry.js.map +1 -0
- package/esm/bh-input-text.entry.js +190 -0
- package/esm/bh-input-text.entry.js.map +1 -0
- package/esm/bh-input-verification.entry.js +201 -0
- package/esm/bh-input-verification.entry.js.map +1 -0
- package/esm/bh-label-DqsVrCg_.js +108 -0
- package/esm/bh-label-DqsVrCg_.js.map +1 -0
- package/esm/bh-label.bh-tooltip.entry.js.map +1 -0
- package/esm/bh-label_2.entry.js +45 -0
- package/esm/bh-modal-actions.entry.js +64 -0
- package/esm/bh-modal-actions.entry.js.map +1 -0
- package/esm/bh-modal-header.entry.js +74 -0
- package/esm/bh-modal-header.entry.js.map +1 -0
- package/esm/bh-modal.entry.js +54 -0
- package/esm/bh-modal.entry.js.map +1 -0
- package/esm/bh-month-picker-content.entry.js +187 -0
- package/esm/bh-month-picker-content.entry.js.map +1 -0
- package/esm/bh-month-picker.entry.js +150 -0
- package/esm/bh-month-picker.entry.js.map +1 -0
- package/esm/bh-notification.entry.js +126 -0
- package/esm/bh-notification.entry.js.map +1 -0
- package/esm/bh-page-navigation-child.entry.js +46 -0
- package/esm/bh-page-navigation-child.entry.js.map +1 -0
- package/esm/bh-page-navigation-multi-level.bh-page-navigation-single-level.entry.js.map +1 -0
- package/esm/bh-page-navigation-multi-level_2.entry.js +143 -0
- package/esm/bh-page-navigation.entry.js +70 -0
- package/esm/bh-page-navigation.entry.js.map +1 -0
- package/esm/bh-pie-chart.entry.js +155 -0
- package/esm/bh-pie-chart.entry.js.map +1 -0
- package/esm/bh-popover.entry.js +98 -0
- package/esm/bh-popover.entry.js.map +1 -0
- package/esm/bh-product-switcher.entry.js +100 -0
- package/esm/bh-product-switcher.entry.js.map +1 -0
- package/esm/bh-property-switcher.entry.js +229 -0
- package/esm/bh-property-switcher.entry.js.map +1 -0
- package/esm/bh-radio-button.entry.js +122 -0
- package/esm/bh-radio-button.entry.js.map +1 -0
- package/esm/bh-sidebar.entry.js +108 -0
- package/esm/bh-sidebar.entry.js.map +1 -0
- package/esm/bh-skeleton-loader.entry.js +32 -0
- package/esm/bh-skeleton-loader.entry.js.map +1 -0
- package/esm/bh-tab-item.entry.js +52 -0
- package/esm/bh-tab-item.entry.js.map +1 -0
- package/esm/bh-tabs.entry.js +50 -0
- package/esm/bh-tabs.entry.js.map +1 -0
- package/esm/bh-textarea.entry.js +159 -0
- package/esm/bh-textarea.entry.js.map +1 -0
- package/esm/bh-toggle.entry.js +139 -0
- package/esm/bh-toggle.entry.js.map +1 -0
- package/esm/bh-trend-chart.entry.js +119 -0
- package/esm/bh-trend-chart.entry.js.map +1 -0
- package/esm/form-CPgx0iFq.js +59 -0
- package/esm/form-CPgx0iFq.js.map +1 -0
- package/esm/index-DtVghh5W.js +1922 -0
- package/esm/index-DtVghh5W.js.map +1 -0
- package/esm/index.js +15 -0
- package/esm/index.js.map +1 -0
- package/esm/loader.js +11 -0
- package/esm/loader.js.map +1 -0
- package/index.cjs.js +1 -0
- package/index.js +1 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +32 -0
- package/types/components/bh-accordion/bh-accordion.d.ts +42 -0
- package/types/components/bh-accordion-item/bh-accordion-item.d.ts +41 -0
- package/types/components/bh-appbar/bh-appbar.d.ts +54 -0
- package/types/components/bh-autocomplete-menu/bh-autocomplete-menu.d.ts +54 -0
- package/types/components/bh-avatar/bh-avatar.d.ts +43 -0
- package/types/components/bh-avatar-add/bh-avatar-add.d.ts +35 -0
- package/types/components/bh-avatar-stacked/bh-avatar-stacked.d.ts +42 -0
- package/types/components/bh-badge/bh-badge.d.ts +40 -0
- package/types/components/bh-badge-dot/bh-badge-dot.d.ts +17 -0
- package/types/components/bh-bar-chart/bh-bar-chart.d.ts +50 -0
- package/types/components/bh-breadcrumbs/bh-breadcrumbs.d.ts +40 -0
- package/types/components/bh-button/bh-button.d.ts +57 -0
- package/types/components/bh-button-icon/bh-button-icon.d.ts +44 -0
- package/types/components/bh-card/bh-card.d.ts +23 -0
- package/types/components/bh-card-footer/bh-card-footer.d.ts +12 -0
- package/types/components/bh-card-header/bh-card-header.d.ts +59 -0
- package/types/components/bh-chart-tooltip/bh-chart-tooltip.d.ts +40 -0
- package/types/components/bh-checkbox/bh-checkbox.d.ts +45 -0
- package/types/components/bh-checkbox-group/bh-checkbox-group.d.ts +34 -0
- package/types/components/bh-checkbox-group-item/bh-checkbox-group-item.d.ts +67 -0
- package/types/components/bh-container/bh-container.d.ts +7 -0
- package/types/components/bh-container-footer/bh-container-footer.d.ts +18 -0
- package/types/components/bh-data-grid/bh-data-grid.d.ts +235 -0
- package/types/components/bh-date-picker/bh-date-picker.d.ts +78 -0
- package/types/components/bh-date-picker-content/bh-date-picker-content.d.ts +112 -0
- package/types/components/bh-date-range-picker/bh-date-range-picker.d.ts +85 -0
- package/types/components/bh-date-range-picker-content/bh-date-range-picker-content.d.ts +55 -0
- package/types/components/bh-dropdown/bh-dropdown.d.ts +78 -0
- package/types/components/bh-dropdown-menu/bh-dropdown-menu.d.ts +51 -0
- package/types/components/bh-empty-state/bh-empty-state.d.ts +52 -0
- package/types/components/bh-featured-icon/bh-featured-icon.d.ts +22 -0
- package/types/components/bh-illustrations/bh-illustrations.d.ts +25 -0
- package/types/components/bh-input-autocomplete/bh-input-autocomplete.d.ts +130 -0
- package/types/components/bh-input-number/bh-input-number.d.ts +137 -0
- package/types/components/bh-input-password/bh-input-password.d.ts +111 -0
- package/types/components/bh-input-text/bh-input-text.d.ts +126 -0
- package/types/components/bh-input-verification/bh-input-verification.d.ts +79 -0
- package/types/components/bh-label/bh-label.d.ts +54 -0
- package/types/components/bh-loader-spinner/bh-loader-spinner.d.ts +19 -0
- package/types/components/bh-logo-box/bh-logo-box.d.ts +28 -0
- package/types/components/bh-modal/bh-modal.d.ts +23 -0
- package/types/components/bh-modal-actions/bh-modal-actions.d.ts +38 -0
- package/types/components/bh-modal-header/bh-modal-header.d.ts +45 -0
- package/types/components/bh-month-picker/bh-month-picker.d.ts +73 -0
- package/types/components/bh-month-picker-content/bh-month-picker-content.d.ts +77 -0
- package/types/components/bh-notification/bh-notification.d.ts +51 -0
- package/types/components/bh-page-navigation/bh-page-navigation.d.ts +45 -0
- package/types/components/bh-page-navigation-child/bh-page-navigation-child.d.ts +26 -0
- package/types/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.d.ts +60 -0
- package/types/components/bh-page-navigation-single-level/bh-page-navigation-single-level.d.ts +22 -0
- package/types/components/bh-picker-menu/bh-picker-menu.d.ts +76 -0
- package/types/components/bh-pie-chart/bh-pie-chart.d.ts +50 -0
- package/types/components/bh-popover/bh-popover.d.ts +60 -0
- package/types/components/bh-product-switcher/bh-product-switcher.d.ts +40 -0
- package/types/components/bh-property-switcher/bh-property-switcher.d.ts +63 -0
- package/types/components/bh-radio-button/bh-radio-button.d.ts +56 -0
- package/types/components/bh-sidebar/bh-nav-item.d.ts +26 -0
- package/types/components/bh-sidebar/bh-sidebar.d.ts +70 -0
- package/types/components/bh-skeleton-loader/bh-skeleton-loader.d.ts +15 -0
- package/types/components/bh-tab-item/bh-tab-item.d.ts +29 -0
- package/types/components/bh-tabs/bh-tabs.d.ts +30 -0
- package/types/components/bh-tag/bh-tag.d.ts +25 -0
- package/types/components/bh-textarea/bh-textarea.d.ts +101 -0
- package/types/components/bh-toggle/bh-toggle.d.ts +66 -0
- package/types/components/bh-tooltip/bh-tooltip.d.ts +25 -0
- package/types/components/bh-trend-chart/bh-trend-chart.d.ts +34 -0
- package/types/components.d.ts +7199 -0
- package/types/index.d.ts +12 -0
- package/types/stencil-public-runtime.d.ts +1756 -0
- package/types/utils/form.d.ts +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bh-bar-chart.entry.js","sources":["src/components/bh-bar-chart/bh-bar-chart.css?tag=bh-bar-chart&encapsulation=shadow","src/components/bh-bar-chart/bh-bar-chart.tsx"],"sourcesContent":["@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Vertical Layout */\n.vertical-container {\n display: flex;\n align-items: flex-end;\n height: 180px;\n width: 100%;\n}\n\n.vertical-container.simple {\n height: 180px;\n width: 100%;\n}\n\n.bar-column.vertical {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-end;\n height: 100%;\n flex: 1;\n gap: var(--spacing-xxs, 2px);\n margin: 0 2px;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n}\n\n.vertical-container.simple .bar-column.vertical {\n flex: 1;\n margin: 0 2px;\n}\n\n.bar-segment.vertical {\n width: 6px;\n border-radius: 2px;\n min-height: 2px;\n transition: all 0.3s ease;\n transform-origin: bottom;\n}\n\n/* Horizontal Layout */\n.horizontal-container {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: auto;\n min-height: 140px;\n gap: var(--spacing-lg, 12px);\n}\n\n.horizontal-container.simple {\n height: auto;\n min-height: 140px;\n gap: var(--spacing-lg, 12px);\n}\n\n.bar-row.horizontal {\n display: flex;\n align-items: center;\n width: 100%;\n height: 6px;\n min-height: 6px;\n max-height: 6px;\n gap: var(--spacing-xxs, 2px);\n margin: 2px 0;\n border-radius: 4px;\n transition: background-color 0.2s ease;\n padding: 2px;\n}\n\n.horizontal-container.simple .bar-row.horizontal {\n height: 6px;\n min-height: 6px;\n max-height: 6px;\n margin: 2px 0;\n padding: 2px;\n}\n\n.bar-segment.horizontal {\n height: 100%;\n min-height: 6px;\n max-height: 6px;\n border-radius: 2px;\n min-width: 2px;\n transition: all 0.3s ease;\n transform-origin: left;\n}\n\n.horizontal-container.simple .bar-segment.horizontal {\n min-width: 2px;\n height: 6px;\n min-height: 6px;\n max-height: 6px;\n}\n\n/* Hover effects */\n.bar-column,\n.bar-row {\n cursor: pointer;\n}\n\n.bar-column:hover {\n background-color: color-mix(in srgb, var(--color-neutral-100) 50%, transparent);\n}\n\n.bar-row:hover {\n background-color: color-mix(in srgb, var(--color-neutral-100) 50%, transparent);\n}\n\n.bar-column:hover .bar-segment,\n.bar-row:hover .bar-segment {\n opacity: 0.9;\n filter: brightness(1.05);\n}\n\n/* Animations */\n.bar-chart-animated .bar-segment.vertical {\n animation: barGrowVertical 0.8s cubic-bezier(0.4, 0, 0.2, 1) both;\n}\n\n.bar-chart-animated .bar-segment.horizontal {\n animation: barGrowHorizontal 0.8s cubic-bezier(0.4, 0, 0.2, 1) both;\n}\n\n@keyframes barGrowVertical {\n from {\n transform: scaleY(0);\n opacity: 0;\n }\n to {\n transform: scaleY(1);\n opacity: 1;\n }\n}\n\n@keyframes barGrowHorizontal {\n from {\n transform: scaleX(0);\n opacity: 0;\n }\n to {\n transform: scaleX(1);\n opacity: 1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .bar-chart-animated .bar-segment.vertical,\n .bar-chart-animated .bar-segment.horizontal {\n animation: none;\n opacity: 1;\n transform: none;\n }\n}\n","import { Component, Prop, State, h, Host } from '@stencil/core';\nimport type { TooltipItem } from '../bh-chart-tooltip/bh-chart-tooltip';\n\nexport type BarChartType = 'simple' | 'stacked';\nexport type BarChartOrientation = 'vertical' | 'horizontal';\n\nexport interface BarChartSeries {\n name: string;\n values: number[];\n color?: string;\n}\n\nexport interface BarChartData {\n series: BarChartSeries[];\n categories?: string[];\n}\n\ninterface BarSegment {\n value: number;\n height: number;\n width: number;\n color: string;\n seriesName?: string;\n}\n\ninterface ProcessedBar {\n segments: BarSegment[];\n totalValue: number;\n category?: string;\n}\n\nconst DEFAULT_COLORS = [\n 'var(--color-brand-600)',\n 'var(--color-orange-500)',\n 'var(--color-success-500)',\n 'var(--color-purple-600)',\n 'var(--color-accent-500)',\n 'var(--color-teal-500)',\n 'var(--color-lime-500)',\n 'var(--color-amber-500)',\n];\n\n@Component({\n tag: 'bh-bar-chart',\n styleUrl: 'bh-bar-chart.css',\n shadow: true,\n})\nexport class BhBarChart {\n /**\n * Chart data\n */\n @Prop() data: BarChartData = {\n series: [\n { name: 'Series 1', values: [30, 45, 20, 35, 50, 40, 60, 35, 25, 55, 40], color: '#94a3b8' },\n { name: 'Series 2', values: [20, 25, 40, 30, 35, 45, 25, 30, 40, 20, 50], color: '#2563eb' },\n { name: 'Series 3', values: [25, 15, 35, 20, 15, 20, 30, 25, 30, 35, 25], color: '#7c3aed' },\n ],\n };\n\n /**\n * Chart type: simple or stacked\n */\n @Prop() type: BarChartType = 'stacked';\n\n /**\n * Chart orientation: vertical or horizontal\n */\n @Prop() orientation: BarChartOrientation = 'vertical';\n\n /**\n * Whether to animate the chart\n */\n @Prop() animated: boolean = true;\n\n /**\n * Maximum height for vertical bars\n */\n @Prop() maxHeight: number = 150;\n\n /**\n * Maximum width for horizontal bars\n */\n @Prop() maxWidth: number = 200;\n\n @State() tooltipVisible: boolean = false;\n @State() tooltipX: number = 0;\n @State() tooltipY: number = 0;\n @State() tooltipHeader: string = '';\n @State() tooltipItems: TooltipItem[] = [];\n @State() tooltipTotal: string = '';\n @State() showTooltipTotal: boolean = false;\n\n private processData(): ProcessedBar[] {\n if (!this.data.series?.length || !this.data.series[0].values.length) {\n return [];\n }\n\n const bars: ProcessedBar[] = [];\n\n if (this.type === 'simple') {\n const values = this.data.series[0].values;\n const maxValue = Math.max(...values);\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i] || 0;\n const segments: BarSegment[] = [];\n\n if (value > 0) {\n const height = (value / maxValue) * this.maxHeight;\n const width = (value / maxValue) * this.maxWidth;\n segments.push({\n value,\n height,\n width,\n color: DEFAULT_COLORS[i % DEFAULT_COLORS.length],\n seriesName: this.data.categories?.[i] || `Bar ${i + 1}`,\n });\n }\n\n bars.push({\n segments,\n totalValue: value,\n category: this.data.categories?.[i],\n });\n }\n } else {\n const numBars = this.data.series[0].values.length;\n const maxTotal = Math.max(\n ...Array.from({ length: numBars }, (_, i) =>\n this.data.series.reduce((sum, series) => sum + (series.values[i] || 0), 0)\n )\n );\n\n for (let barIndex = 0; barIndex < numBars; barIndex++) {\n const segments: BarSegment[] = [];\n let totalValue = 0;\n\n for (const series of this.data.series) {\n const value = series.values[barIndex] || 0;\n totalValue += value;\n\n if (value > 0) {\n const height = (value / maxTotal) * this.maxHeight;\n const width = (value / maxTotal) * this.maxWidth;\n segments.push({\n value,\n height,\n width,\n color: series.color || '#64748b',\n seriesName: series.name,\n });\n }\n }\n\n bars.push({\n segments,\n totalValue,\n category: this.data.categories?.[barIndex],\n });\n }\n }\n\n return bars;\n }\n\n private handleColumnHover = (event: MouseEvent, bar: ProcessedBar, columnIndex: number) => {\n this.tooltipVisible = true;\n this.tooltipX = event.clientX;\n this.tooltipY = event.clientY;\n this.tooltipHeader = bar.category || `Column ${columnIndex + 1}`;\n\n const items: TooltipItem[] = [];\n bar.segments.forEach((segment) => {\n if (segment.seriesName && segment.value > 0) {\n items.push({\n color: segment.color,\n label: segment.seriesName,\n value: segment.value.toString(),\n });\n }\n });\n\n this.tooltipItems = items;\n this.tooltipTotal = bar.totalValue.toString();\n this.showTooltipTotal = items.length > 1;\n };\n\n private handleColumnMove = (event: MouseEvent) => {\n if (this.tooltipVisible) {\n this.tooltipX = event.clientX;\n this.tooltipY = event.clientY;\n }\n };\n\n private handleColumnLeave = () => {\n this.tooltipVisible = false;\n };\n\n render() {\n const processedData = this.processData();\n\n return (\n <Host>\n <div\n class={{\n 'bar-chart': true,\n [this.type]: true,\n [this.orientation]: true,\n 'bar-chart-animated': this.animated,\n }}\n >\n {this.orientation === 'vertical' ? (\n <div class=\"vertical-container\">\n {processedData.map((bar, i) => (\n <div\n key={i}\n class=\"bar-column vertical\"\n onMouseEnter={(e) => this.handleColumnHover(e, bar, i)}\n onMouseMove={this.handleColumnMove}\n onMouseLeave={this.handleColumnLeave}\n >\n {bar.segments.map((segment, segIndex) => (\n <div\n key={segIndex}\n class=\"bar-segment vertical\"\n style={{\n height: `${segment.height}px`,\n backgroundColor: segment.color,\n }}\n />\n ))}\n </div>\n ))}\n </div>\n ) : (\n <div class=\"horizontal-container\">\n {processedData.map((bar, i) => (\n <div\n key={i}\n class=\"bar-row horizontal\"\n onMouseEnter={(e) => this.handleColumnHover(e, bar, i)}\n onMouseMove={this.handleColumnMove}\n onMouseLeave={this.handleColumnLeave}\n >\n {bar.segments.map((segment, segIndex) => (\n <div\n key={segIndex}\n class=\"bar-segment horizontal\"\n style={{\n width: `${(segment.value / bar.totalValue) * 100}%`,\n backgroundColor: segment.color,\n }}\n />\n ))}\n </div>\n ))}\n </div>\n )}\n </div>\n\n <bh-chart-tooltip\n visible={this.tooltipVisible}\n x={this.tooltipX}\n y={this.tooltipY}\n header={this.tooltipHeader}\n items={this.tooltipItems}\n total={this.tooltipTotal}\n showTotal={this.showTooltipTotal}\n />\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,aAAa,GAAG,q1NAAq1N;;AC+B32N,MAAM,cAAc,GAAG;IACrB,wBAAwB;IACxB,yBAAyB;IACzB,0BAA0B;IAC1B,yBAAyB;IACzB,yBAAyB;IACzB,uBAAuB;IACvB,uBAAuB;IACvB,wBAAwB;CACzB;MAOY,UAAU,GAAA,MAAA;;;;AACrB;;AAEG;AACK,IAAA,IAAI,GAAiB;AAC3B,QAAA,MAAM,EAAE;AACN,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC5F,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC5F,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7F,SAAA;KACF;AAED;;AAEG;IACK,IAAI,GAAiB,SAAS;AAEtC;;AAEG;IACK,WAAW,GAAwB,UAAU;AAErD;;AAEG;IACK,QAAQ,GAAY,IAAI;AAEhC;;AAEG;IACK,SAAS,GAAW,GAAG;AAE/B;;AAEG;IACK,QAAQ,GAAW,GAAG;IAErB,cAAc,GAAY,KAAK;IAC/B,QAAQ,GAAW,CAAC;IACpB,QAAQ,GAAW,CAAC;IACpB,aAAa,GAAW,EAAE;IAC1B,YAAY,GAAkB,EAAE;IAChC,YAAY,GAAW,EAAE;IACzB,gBAAgB,GAAY,KAAK;IAElC,WAAW,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AACnE,YAAA,OAAO,EAAE;;QAGX,MAAM,IAAI,GAAmB,EAAE;AAE/B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;AAEpC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5B,MAAM,QAAQ,GAAiB,EAAE;AAEjC,gBAAA,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,SAAS;oBAClD,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ;oBAChD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK;wBACL,MAAM;wBACN,KAAK;wBACL,KAAK,EAAE,cAAc,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;AAChD,wBAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAA,IAAA,EAAO,CAAC,GAAG,CAAC,CAAE,CAAA;AACxD,qBAAA,CAAC;;gBAGJ,IAAI,CAAC,IAAI,CAAC;oBACR,QAAQ;AACR,oBAAA,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACpC,iBAAA,CAAC;;;aAEC;AACL,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAC3E,CACF;AAED,YAAA,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACrD,MAAM,QAAQ,GAAiB,EAAE;gBACjC,IAAI,UAAU,GAAG,CAAC;gBAElB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1C,UAAU,IAAI,KAAK;AAEnB,oBAAA,IAAI,KAAK,GAAG,CAAC,EAAE;wBACb,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,SAAS;wBAClD,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ;wBAChD,QAAQ,CAAC,IAAI,CAAC;4BACZ,KAAK;4BACL,MAAM;4BACN,KAAK;AACL,4BAAA,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;4BAChC,UAAU,EAAE,MAAM,CAAC,IAAI;AACxB,yBAAA,CAAC;;;gBAIN,IAAI,CAAC,IAAI,CAAC;oBACR,QAAQ;oBACR,UAAU;oBACV,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC3C,iBAAA,CAAC;;;AAIN,QAAA,OAAO,IAAI;;IAGL,iBAAiB,GAAG,CAAC,KAAiB,EAAE,GAAiB,EAAE,WAAmB,KAAI;AACxF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAA,OAAA,EAAU,WAAW,GAAG,CAAC,CAAA,CAAE;QAEhE,MAAM,KAAK,GAAkB,EAAE;QAC/B,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YAC/B,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE;gBAC3C,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,KAAK,EAAE,OAAO,CAAC,UAAU;AACzB,oBAAA,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;AAChC,iBAAA,CAAC;;AAEN,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC7C,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AAC1C,KAAC;AAEO,IAAA,gBAAgB,GAAG,CAAC,KAAiB,KAAI;AAC/C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO;;AAEjC,KAAC;IAEO,iBAAiB,GAAG,MAAK;AAC/B,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC7B,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE;QAExC,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;AACjB,gBAAA,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI;gBACxB,oBAAoB,EAAE,IAAI,CAAC,QAAQ;aACpC,EAAA,EAEA,IAAI,CAAC,WAAW,KAAK,UAAU,IAC9B,WAAK,KAAK,EAAC,oBAAoB,EAC5B,EAAA,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MACxB,WACE,GAAG,EAAE,CAAC,EACN,KAAK,EAAC,qBAAqB,EAC3B,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EACtD,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,YAAY,EAAE,IAAI,CAAC,iBAAiB,IAEnC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,MAClC,WACE,GAAG,EAAE,QAAQ,EACb,KAAK,EAAC,sBAAsB,EAC5B,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,MAAM,CAAI,EAAA,CAAA;gBAC7B,eAAe,EAAE,OAAO,CAAC,KAAK;aAC/B,EAAA,CACD,CACH,CAAC,CACE,CACP,CAAC,CACE,KAEN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,sBAAsB,IAC9B,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MACxB,CACE,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,CAAC,EACN,KAAK,EAAC,oBAAoB,EAC1B,YAAY,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EACtD,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAClC,YAAY,EAAE,IAAI,CAAC,iBAAiB,IAEnC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,MAClC,WACE,GAAG,EAAE,QAAQ,EACb,KAAK,EAAC,wBAAwB,EAC9B,KAAK,EAAE;AACL,gBAAA,KAAK,EAAE,CAAA,EAAG,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAG,CAAA,CAAA;gBACnD,eAAe,EAAE,OAAO,CAAC,KAAK;AAC/B,aAAA,EAAA,CACD,CACH,CAAC,CACE,CACP,CAAC,CACE,CACP,CACG,EAEN,CACE,CAAA,kBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,CAAC,EAAE,IAAI,CAAC,QAAQ,EAChB,CAAC,EAAE,IAAI,CAAC,QAAQ,EAChB,MAAM,EAAE,IAAI,CAAC,aAAa,EAC1B,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,CAAA,CACG;;;;;;;"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-DtVghh5W.js';
|
|
2
|
+
|
|
3
|
+
const bhButtonCss = ":host{display:inline-block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);font-family:var(--font-inter);font-weight:var(--weight-medium);border:1px solid transparent;cursor:pointer;text-align:center;white-space:nowrap;transition:all 0.2s ease-in-out;text-decoration:none;outline:none}.btn-xs{padding:0 var(--spacing-lg);height:24px;border-radius:var(--radius-md);font-size:var(--text-sm-size)}.btn-sm{padding:0 var(--spacing-xl);height:32px;border-radius:var(--radius-md);font-size:var(--text-sm-size)}.btn-md{padding:0 var(--spacing-xl);height:40px;border-radius:var(--radius-md);font-size:var(--text-sm-size)}.btn-lg{padding:0 var(--spacing-xl);height:48px;border-radius:var(--radius-md);gap:var(--spacing-sm);font-size:var(--text-md-size)}.btn-xs.btn-icon-leading{padding-left:var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n )}.btn-sm.btn-icon-leading{padding-left:var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-md.btn-icon-leading{padding-left:var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-lg.btn-icon-leading{padding-left:var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-xs.btn-icon-trailing{padding-right:var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n )}.btn-sm.btn-icon-trailing{padding-right:var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-md.btn-icon-trailing{padding-right:var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-lg.btn-icon-trailing{padding-right:var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n )}.btn-primary.btn-default{background-color:var(--color-brand-600);color:var(--color-white);border-color:var(--color-brand-600)}.btn-secondary.btn-default{background-color:var(--color-white);color:var(--color-neutral-600);border-color:var(--color-neutral-300)}.btn-tertiary.btn-default{background-color:transparent;color:var(--color-neutral-600);border-color:transparent}.btn-quaternary.btn-default{background-color:transparent;color:var(--color-brand-600);border-color:transparent}.btn-primary.btn-destructive{background-color:var(--color-error-600);color:var(--color-white);border-color:var(--color-error-600)}.btn-secondary.btn-destructive{background-color:var(--color-white);color:var(--color-error-600);border-color:var(--color-error-300)}.btn-tertiary.btn-destructive{background-color:transparent;color:var(--color-error-600);border-color:transparent}.btn-quaternary.btn-destructive{background-color:transparent;color:var(--color-error-600);border-color:transparent}.btn-primary.btn-success{background-color:var(--color-success-600);color:var(--color-white);border-color:var(--color-success-600)}.btn-secondary.btn-success{background-color:var(--color-white);color:var(--color-success-600);border-color:var(--color-success-300)}.btn-tertiary.btn-success{background-color:transparent;color:var(--color-success-600);border-color:transparent}.btn-quaternary.btn-success{background-color:transparent;color:var(--color-success-600);border-color:transparent}.btn-primary.btn-default:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-brand-700);border-color:var(--color-brand-700)}.btn-secondary.btn-default:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-50);color:var(--color-neutral-700);border-color:var(--color-neutral-400)}.btn-tertiary.btn-default:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-100);color:var(--color-neutral-700)}.btn-quaternary.btn-default:hover:not(:disabled):not(.btn-disabled){color:var(--color-brand-700)}.btn-primary.btn-destructive:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-error-700);border-color:var(--color-error-700)}.btn-secondary.btn-destructive:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-error-50);border-color:var(--color-error-300)}.btn-tertiary.btn-destructive:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-error-50)}.btn-quaternary.btn-destructive:hover:not(:disabled):not(.btn-disabled){color:var(--color-error-700)}.btn-primary.btn-success:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-success-700);border-color:var(--color-success-700)}.btn-secondary.btn-success:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-success-50);border-color:var(--color-success-300)}.btn-tertiary.btn-success:hover:not(:disabled):not(.btn-disabled){background-color:var(--color-success-50)}.btn-quaternary.btn-success:hover:not(:disabled):not(.btn-disabled){color:var(--color-success-700)}.btn-primary.btn-default:active:not(:disabled):not(.btn-disabled){background-color:var(--color-brand-800);border-color:var(--color-brand-800)}.btn-secondary.btn-default:active:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-100);border-color:var(--color-neutral-500)}.btn-tertiary.btn-default:active:not(:disabled):not(.btn-disabled){background-color:var(--color-neutral-100)}.btn-quaternary.btn-default:active:not(:disabled):not(.btn-disabled){color:var(--color-brand-800)}.btn-primary.btn-destructive:active:not(:disabled):not(.btn-disabled){background-color:var(--color-error-800);border-color:var(--color-error-800)}.btn-secondary.btn-destructive:active:not(:disabled):not(.btn-disabled){background-color:var(--color-error-100);border-color:var(--color-error-400)}.btn-tertiary.btn-destructive:active:not(:disabled):not(.btn-disabled){background-color:var(--color-error-100)}.btn-quaternary.btn-destructive:active:not(:disabled):not(.btn-disabled){color:var(--color-error-800)}.btn-primary.btn-success:active:not(:disabled):not(.btn-disabled){background-color:var(--color-success-800);border-color:var(--color-success-800)}.btn-secondary.btn-success:active:not(:disabled):not(.btn-disabled){background-color:var(--color-success-100);border-color:var(--color-success-400)}.btn-tertiary.btn-success:active:not(:disabled):not(.btn-disabled){background-color:var(--color-success-100)}.btn-quaternary.btn-success:active:not(:disabled):not(.btn-disabled){color:var(--color-success-800)}.btn.btn-default:focus,.btn.btn-default:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.btn.btn-destructive:focus,.btn.btn-destructive:focus-visible{outline:2px solid var(--color-error-500);outline-offset:2px}.btn.btn-success:focus,.btn.btn-success:focus-visible{outline:2px solid var(--color-success-500);outline-offset:2px}.btn:disabled,.btn-disabled{cursor:not-allowed;pointer-events:none}.btn-primary:disabled,.btn-primary.btn-disabled{background-color:var(--color-neutral-200);color:var(--color-neutral-400);border-color:var(--color-neutral-200)}.btn-secondary:disabled,.btn-secondary.btn-disabled,.btn-tertiary:disabled,.btn-tertiary.btn-disabled,.btn-quaternary:disabled,.btn-quaternary.btn-disabled{opacity:0.5}.btn-loading{cursor:wait;pointer-events:none}.btn-loading .btn-label{opacity:0.7}.btn-label{display:inline-block;line-height:inherit}.btn-quaternary .btn-label{text-decoration:underline}.btn-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn-icon-material{line-height:1;vertical-align:middle;color:inherit !important}.btn-xs .btn-icon-material{font-size:var(--text-sm-size)}.btn-sm .btn-icon-material{font-size:var(--text-md-size)}.btn-md .btn-icon-material{font-size:var(--text-lg-size)}.btn-lg .btn-icon-material{font-size:var(--text-lg-size)}.btn-icon-only{padding:0}.btn-icon-only.btn-xs{width:24px;height:24px}.btn-icon-only.btn-sm{width:32px;height:32px}.btn-icon-only.btn-md{width:40px;height:40px}.btn-icon-only.btn-lg{width:48px;height:48px}.btn-icon-only .btn-icon-material{margin:0}.btn-loading-icon{line-height:1;vertical-align:middle;color:inherit;animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.text-sm{font-size:var(--text-sm-size);line-height:var(--text-sm-line)}.text-md{font-size:var(--text-md-size);line-height:var(--text-md-line)}.icon-md{width:20px;height:20px}.icon-lg{width:24px;height:24px}";
|
|
4
|
+
|
|
5
|
+
const BhButton = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bhClick = createEvent(this, "bhClick");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The visual hierarchy of the button
|
|
12
|
+
*/
|
|
13
|
+
hierarchy = 'primary';
|
|
14
|
+
/**
|
|
15
|
+
* The kind/semantic meaning of the button
|
|
16
|
+
*/
|
|
17
|
+
kind = 'default';
|
|
18
|
+
/**
|
|
19
|
+
* Icon position relative to the label
|
|
20
|
+
*/
|
|
21
|
+
icon = 'none';
|
|
22
|
+
/**
|
|
23
|
+
* The size of the button
|
|
24
|
+
*/
|
|
25
|
+
size = 'md';
|
|
26
|
+
/**
|
|
27
|
+
* Fallback text label (used only if no slot content is provided)
|
|
28
|
+
*/
|
|
29
|
+
label;
|
|
30
|
+
/**
|
|
31
|
+
* Material Symbols icon name (e.g., 'add', 'edit', 'delete')
|
|
32
|
+
*/
|
|
33
|
+
iconName;
|
|
34
|
+
/**
|
|
35
|
+
* Whether the button is disabled
|
|
36
|
+
*/
|
|
37
|
+
disabled = false;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the button is in a loading state
|
|
40
|
+
*/
|
|
41
|
+
loading = false;
|
|
42
|
+
/**
|
|
43
|
+
* The type of button for form submission
|
|
44
|
+
* - 'button': No form submission (default)
|
|
45
|
+
* - 'submit': Submits the form
|
|
46
|
+
* - 'reset': Resets the form
|
|
47
|
+
*/
|
|
48
|
+
type = 'button';
|
|
49
|
+
/**
|
|
50
|
+
* Emitted when the button is clicked
|
|
51
|
+
*/
|
|
52
|
+
bhClick;
|
|
53
|
+
handleClick = (event) => {
|
|
54
|
+
if (!this.disabled && !this.loading) {
|
|
55
|
+
this.bhClick.emit(event);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
getIconSizeClass() {
|
|
59
|
+
switch (this.size) {
|
|
60
|
+
case 'sm':
|
|
61
|
+
case 'md':
|
|
62
|
+
return 'icon-md';
|
|
63
|
+
case 'lg':
|
|
64
|
+
return 'icon-lg';
|
|
65
|
+
default:
|
|
66
|
+
return 'icon-md';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
getTextSizeClass() {
|
|
70
|
+
switch (this.size) {
|
|
71
|
+
case 'sm':
|
|
72
|
+
case 'md':
|
|
73
|
+
return 'text-sm';
|
|
74
|
+
case 'lg':
|
|
75
|
+
return 'text-md';
|
|
76
|
+
default:
|
|
77
|
+
return 'text-sm';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
getLoaderSize() {
|
|
81
|
+
switch (this.size) {
|
|
82
|
+
case 'xs':
|
|
83
|
+
case 'sm':
|
|
84
|
+
return 'sm';
|
|
85
|
+
default:
|
|
86
|
+
return 'sm';
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
getLoaderVariant() {
|
|
90
|
+
// Primary buttons (all kinds) have dark background, so use white spinner
|
|
91
|
+
return this.hierarchy === 'primary' ? 'white' : 'default';
|
|
92
|
+
}
|
|
93
|
+
render() {
|
|
94
|
+
const showLabel = this.icon !== 'only';
|
|
95
|
+
const showLeadingIcon = this.icon === 'leading' && (this.iconName || this.loading);
|
|
96
|
+
const showTrailingIcon = this.icon === 'trailing' && this.iconName && !this.loading;
|
|
97
|
+
const showOnlyIcon = this.icon === 'only' && (this.iconName || this.loading);
|
|
98
|
+
const buttonClasses = {
|
|
99
|
+
btn: true,
|
|
100
|
+
[`btn-${this.hierarchy}`]: true,
|
|
101
|
+
[`btn-${this.kind}`]: true,
|
|
102
|
+
[`btn-${this.size}`]: true,
|
|
103
|
+
[`btn-icon-${this.icon}`]: true,
|
|
104
|
+
'btn-disabled': this.disabled,
|
|
105
|
+
'btn-loading': this.loading,
|
|
106
|
+
};
|
|
107
|
+
return (h("button", { key: 'f2f54633cb42a7fea15c38aa8bc24be085320dc9', type: this.type, class: buttonClasses, disabled: this.disabled, onClick: this.handleClick, part: "button" }, showLeadingIcon && (h("span", { key: '682a4704e4f874b4f3d051aab4738829cbd47778', class: `btn-icon ${this.getIconSizeClass()}` }, this.loading ? (h("bh-loader-spinner", { size: this.getLoaderSize(), variant: this.getLoaderVariant() })) : (h("span", { class: "btn-icon-material material-symbols-outlined" }, this.iconName)))), showOnlyIcon && (h("span", { key: '767e0ee41843e2ef8b3a45ec82f15602848ad751', class: `btn-icon ${this.getIconSizeClass()}` }, this.loading ? (h("bh-loader-spinner", { size: this.getLoaderSize(), variant: this.getLoaderVariant() })) : (h("span", { class: "btn-icon-material material-symbols-outlined" }, this.iconName)))), showLabel && (h("span", { key: 'bb2ddbcf7eb35dd5af688a6fc6d61d07f67d90ba', class: `btn-label ${this.getTextSizeClass()}` }, h("slot", { key: '010690eeab4cea1205d2ebca5cc2e1bfc95048c7' }, this.label))), showTrailingIcon && (h("span", { key: '9de8df1ab10e9035affbd766fea95896762e2bca', class: `btn-icon ${this.getIconSizeClass()}` }, h("span", { key: 'b50370274c0513a7885eae4bf40235c3e7e245aa', class: "btn-icon-material material-symbols-outlined" }, this.iconName)))));
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
BhButton.style = bhButtonCss;
|
|
111
|
+
|
|
112
|
+
export { BhButton as B };
|
|
113
|
+
//# sourceMappingURL=bh-button-CBZGiLVh.js.map
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=bh-button-CBZGiLVh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bh-button-CBZGiLVh.js","sources":["src/components/bh-button/bh-button.css?tag=bh-button&encapsulation=shadow","src/components/bh-button/bh-button.tsx"],"sourcesContent":["/* ==========================================================================\n BH-BUTTON COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n/* Base Button */\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-xs);\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n border: 1px solid transparent;\n cursor: pointer;\n text-align: center;\n white-space: nowrap;\n transition: all 0.2s ease-in-out;\n text-decoration: none;\n outline: none;\n}\n\n/* Button Sizes */\n.btn-xs {\n padding: 0 var(--spacing-lg);\n height: 24px;\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n}\n\n.btn-sm {\n padding: 0 var(--spacing-xl);\n height: 32px;\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n}\n\n.btn-md {\n padding: 0 var(--spacing-xl);\n height: 40px;\n border-radius: var(--radius-md);\n font-size: var(--text-sm-size);\n}\n\n.btn-lg {\n padding: 0 var(--spacing-xl);\n height: 48px;\n border-radius: var(--radius-md);\n gap: var(--spacing-sm);\n font-size: var(--text-md-size);\n}\n\n/* Icon Padding Compensation */\n.btn-xs.btn-icon-leading {\n padding-left: var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n );\n}\n\n.btn-sm.btn-icon-leading {\n padding-left: var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-md.btn-icon-leading {\n padding-left: var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-lg.btn-icon-leading {\n padding-left: var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-xs.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-xs-btn,\n calc(var(--spacing-lg) - var(--spacing-xs))\n );\n}\n\n.btn-sm.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-sm-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-md.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-md-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n.btn-lg.btn-icon-trailing {\n padding-right: var(\n --icon-compensation-lg-btn,\n calc(var(--spacing-xl) - var(--spacing-xs))\n );\n}\n\n/* Button Hierarchies - Default Kind */\n.btn-primary.btn-default {\n background-color: var(--color-brand-600);\n color: var(--color-white);\n border-color: var(--color-brand-600);\n}\n\n.btn-secondary.btn-default {\n background-color: var(--color-white);\n color: var(--color-neutral-600);\n border-color: var(--color-neutral-300);\n}\n\n.btn-tertiary.btn-default {\n background-color: transparent;\n color: var(--color-neutral-600);\n border-color: transparent;\n}\n\n.btn-quaternary.btn-default {\n background-color: transparent;\n color: var(--color-brand-600);\n border-color: transparent;\n}\n\n/* Button Hierarchies - Destructive Kind */\n.btn-primary.btn-destructive {\n background-color: var(--color-error-600);\n color: var(--color-white);\n border-color: var(--color-error-600);\n}\n\n.btn-secondary.btn-destructive {\n background-color: var(--color-white);\n color: var(--color-error-600);\n border-color: var(--color-error-300);\n}\n\n.btn-tertiary.btn-destructive {\n background-color: transparent;\n color: var(--color-error-600);\n border-color: transparent;\n}\n\n.btn-quaternary.btn-destructive {\n background-color: transparent;\n color: var(--color-error-600);\n border-color: transparent;\n}\n\n/* Button Hierarchies - Success Kind */\n.btn-primary.btn-success {\n background-color: var(--color-success-600);\n color: var(--color-white);\n border-color: var(--color-success-600);\n}\n\n.btn-secondary.btn-success {\n background-color: var(--color-white);\n color: var(--color-success-600);\n border-color: var(--color-success-300);\n}\n\n.btn-tertiary.btn-success {\n background-color: transparent;\n color: var(--color-success-600);\n border-color: transparent;\n}\n\n.btn-quaternary.btn-success {\n background-color: transparent;\n color: var(--color-success-600);\n border-color: transparent;\n}\n\n/* Hover States - Default Kind */\n.btn-primary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-brand-700);\n border-color: var(--color-brand-700);\n}\n\n.btn-secondary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-50);\n color: var(--color-neutral-700);\n border-color: var(--color-neutral-400);\n}\n\n.btn-tertiary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-100);\n color: var(--color-neutral-700);\n}\n\n.btn-quaternary.btn-default:hover:not(:disabled):not(.btn-disabled) {\n color: var(--color-brand-700);\n}\n\n/* Hover States - Destructive Kind */\n.btn-primary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-700);\n border-color: var(--color-error-700);\n}\n\n.btn-secondary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-50);\n border-color: var(--color-error-300);\n}\n\n.btn-tertiary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-50);\n}\n\n.btn-quaternary.btn-destructive:hover:not(:disabled):not(.btn-disabled) {\n color: var(--color-error-700);\n}\n\n/* Hover States - Success Kind */\n.btn-primary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-700);\n border-color: var(--color-success-700);\n}\n\n.btn-secondary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-50);\n border-color: var(--color-success-300);\n}\n\n.btn-tertiary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-50);\n}\n\n.btn-quaternary.btn-success:hover:not(:disabled):not(.btn-disabled) {\n color: var(--color-success-700);\n}\n\n/* Active States - Default Kind */\n.btn-primary.btn-default:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-brand-800);\n border-color: var(--color-brand-800);\n}\n\n.btn-secondary.btn-default:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-100);\n border-color: var(--color-neutral-500);\n}\n\n.btn-tertiary.btn-default:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-neutral-100);\n}\n\n.btn-quaternary.btn-default:active:not(:disabled):not(.btn-disabled) {\n color: var(--color-brand-800);\n}\n\n/* Active States - Destructive Kind */\n.btn-primary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-800);\n border-color: var(--color-error-800);\n}\n\n.btn-secondary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-100);\n border-color: var(--color-error-400);\n}\n\n.btn-tertiary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-error-100);\n}\n\n.btn-quaternary.btn-destructive:active:not(:disabled):not(.btn-disabled) {\n color: var(--color-error-800);\n}\n\n/* Active States - Success Kind */\n.btn-primary.btn-success:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-800);\n border-color: var(--color-success-800);\n}\n\n.btn-secondary.btn-success:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-100);\n border-color: var(--color-success-400);\n}\n\n.btn-tertiary.btn-success:active:not(:disabled):not(.btn-disabled) {\n background-color: var(--color-success-100);\n}\n\n.btn-quaternary.btn-success:active:not(:disabled):not(.btn-disabled) {\n color: var(--color-success-800);\n}\n\n/* Focus State - Default Kind */\n.btn.btn-default:focus,\n.btn.btn-default:focus-visible {\n outline: 2px solid var(--color-brand-500);\n outline-offset: 2px;\n}\n\n/* Focus State - Destructive Kind */\n.btn.btn-destructive:focus,\n.btn.btn-destructive:focus-visible {\n outline: 2px solid var(--color-error-500);\n outline-offset: 2px;\n}\n\n/* Focus State - Success Kind */\n.btn.btn-success:focus,\n.btn.btn-success:focus-visible {\n outline: 2px solid var(--color-success-500);\n outline-offset: 2px;\n}\n\n/* Disabled States */\n.btn:disabled,\n.btn-disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.btn-primary:disabled,\n.btn-primary.btn-disabled {\n background-color: var(--color-neutral-200);\n color: var(--color-neutral-400);\n border-color: var(--color-neutral-200);\n}\n\n.btn-secondary:disabled,\n.btn-secondary.btn-disabled,\n.btn-tertiary:disabled,\n.btn-tertiary.btn-disabled,\n.btn-quaternary:disabled,\n.btn-quaternary.btn-disabled {\n opacity: 0.5;\n}\n\n/* Loading State */\n.btn-loading {\n cursor: wait;\n pointer-events: none;\n}\n\n.btn-loading .btn-label {\n opacity: 0.7;\n}\n\n/* ==========================================================================\n BUTTON CONTENT ELEMENTS\n ========================================================================== */\n\n.btn-label {\n display: inline-block;\n line-height: inherit;\n}\n\n.btn-quaternary .btn-label {\n text-decoration: underline;\n}\n\n/* Icons */\n.btn-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.btn-icon-material {\n line-height: 1;\n vertical-align: middle;\n color: inherit !important;\n}\n\n.btn-xs .btn-icon-material {\n font-size: var(--text-sm-size);\n}\n\n.btn-sm .btn-icon-material {\n font-size: var(--text-md-size);\n}\n\n.btn-md .btn-icon-material {\n font-size: var(--text-lg-size);\n}\n\n.btn-lg .btn-icon-material {\n font-size: var(--text-lg-size);\n}\n\n/* Icon-Only Buttons */\n.btn-icon-only {\n padding: 0;\n}\n\n.btn-icon-only.btn-xs {\n width: 24px;\n height: 24px;\n}\n\n.btn-icon-only.btn-sm {\n width: 32px;\n height: 32px;\n}\n\n.btn-icon-only.btn-md {\n width: 40px;\n height: 40px;\n}\n\n.btn-icon-only.btn-lg {\n width: 48px;\n height: 48px;\n}\n\n.btn-icon-only .btn-icon-material {\n margin: 0;\n}\n\n/* Loading Spinner */\n.btn-loading-icon {\n line-height: 1;\n vertical-align: middle;\n color: inherit;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Text size utilities */\n.text-sm {\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n}\n\n.text-md {\n font-size: var(--text-md-size);\n line-height: var(--text-md-line);\n}\n\n/* Icon size utilities */\n.icon-md {\n width: 20px;\n height: 20px;\n}\n\n.icon-lg {\n width: 24px;\n height: 24px;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type ButtonHierarchy =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'quaternary';\nexport type ButtonIconPosition = 'none' | 'leading' | 'trailing' | 'only';\nexport type ButtonSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ButtonKind = 'default' | 'destructive' | 'success';\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\n@Component({\n tag: 'bh-button',\n styleUrl: 'bh-button.css',\n shadow: true,\n})\nexport class BhButton {\n /**\n * The visual hierarchy of the button\n */\n @Prop() hierarchy: ButtonHierarchy = 'primary';\n\n /**\n * The kind/semantic meaning of the button\n */\n @Prop() kind: ButtonKind = 'default';\n\n /**\n * Icon position relative to the label\n */\n @Prop() icon: ButtonIconPosition = 'none';\n\n /**\n * The size of the button\n */\n @Prop() size: ButtonSize = 'md';\n\n /**\n * Fallback text label (used only if no slot content is provided)\n */\n @Prop() label?: string;\n\n /**\n * Material Symbols icon name (e.g., 'add', 'edit', 'delete')\n */\n @Prop() iconName?: string;\n\n /**\n * Whether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the button is in a loading state\n */\n @Prop() loading: boolean = false;\n\n /**\n * The type of button for form submission\n * - 'button': No form submission (default)\n * - 'submit': Submits the form\n * - 'reset': Resets the form\n */\n @Prop() type: ButtonType = 'button';\n\n /**\n * Emitted when the button is clicked\n */\n @Event() bhClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.disabled && !this.loading) {\n this.bhClick.emit(event);\n }\n };\n\n private getIconSizeClass(): string {\n switch (this.size) {\n case 'sm':\n case 'md':\n return 'icon-md';\n case 'lg':\n return 'icon-lg';\n default:\n return 'icon-md';\n }\n }\n\n private getTextSizeClass(): string {\n switch (this.size) {\n case 'sm':\n case 'md':\n return 'text-sm';\n case 'lg':\n return 'text-md';\n default:\n return 'text-sm';\n }\n }\n\n private getLoaderSize(): 'sm' | 'md' {\n switch (this.size) {\n case 'xs':\n case 'sm':\n return 'sm';\n default:\n return 'sm';\n }\n }\n\n private getLoaderVariant(): 'default' | 'white' {\n // Primary buttons (all kinds) have dark background, so use white spinner\n return this.hierarchy === 'primary' ? 'white' : 'default';\n }\n\n render() {\n const showLabel = this.icon !== 'only';\n const showLeadingIcon =\n this.icon === 'leading' && (this.iconName || this.loading);\n const showTrailingIcon =\n this.icon === 'trailing' && this.iconName && !this.loading;\n const showOnlyIcon =\n this.icon === 'only' && (this.iconName || this.loading);\n\n const buttonClasses = {\n btn: true,\n [`btn-${this.hierarchy}`]: true,\n [`btn-${this.kind}`]: true,\n [`btn-${this.size}`]: true,\n [`btn-icon-${this.icon}`]: true,\n 'btn-disabled': this.disabled,\n 'btn-loading': this.loading,\n };\n\n return (\n <button\n type={this.type}\n class={buttonClasses}\n disabled={this.disabled}\n onClick={this.handleClick}\n part=\"button\"\n >\n {showLeadingIcon && (\n <span class={`btn-icon ${this.getIconSizeClass()}`}>\n {this.loading ? (\n <bh-loader-spinner\n size={this.getLoaderSize()}\n variant={this.getLoaderVariant()}\n ></bh-loader-spinner>\n ) : (\n <span class=\"btn-icon-material material-symbols-outlined\">\n {this.iconName}\n </span>\n )}\n </span>\n )}\n\n {showOnlyIcon && (\n <span class={`btn-icon ${this.getIconSizeClass()}`}>\n {this.loading ? (\n <bh-loader-spinner\n size={this.getLoaderSize()}\n variant={this.getLoaderVariant()}\n ></bh-loader-spinner>\n ) : (\n <span class=\"btn-icon-material material-symbols-outlined\">\n {this.iconName}\n </span>\n )}\n </span>\n )}\n\n {showLabel && (\n <span class={`btn-label ${this.getTextSizeClass()}`}>\n <slot>{this.label}</slot>\n </span>\n )}\n\n {showTrailingIcon && (\n <span class={`btn-icon ${this.getIconSizeClass()}`}>\n <span class=\"btn-icon-material material-symbols-outlined\">\n {this.iconName}\n </span>\n </span>\n )}\n </button>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-DtVghh5W.js';
|
|
2
|
+
|
|
3
|
+
const bhButtonIconCss = ":host{display:inline-block;font-family:var(--font-inter, 'Inter', -apple-system, BlinkMacSystemFont, sans-serif)}.button-icon{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all 0.2s ease-in-out;font-family:inherit;outline:none;padding:0}.button-icon:focus-visible{box-shadow:0 0 0 2px var(--color-white, #FFFFFF), 0 0 0 4px var(--color-brand-500, #7F56D9)}.button-icon-xs{width:24px;height:24px}.button-icon-xs .icon{font-size:16px}.button-icon-sm{width:32px;height:32px}.button-icon-sm .icon{font-size:18px}.button-icon-md{width:40px;height:40px}.button-icon-md .icon{font-size:20px}.button-icon-lg{width:48px;height:48px}.button-icon-lg .icon{font-size:24px}.button-icon-primary{background:var(--color-brand-600, #6941C6);color:var(--color-white, #FFFFFF)}.button-icon-primary:hover:not(.button-icon-disabled){background:var(--color-brand-700, #5235A8)}.button-icon-primary:active:not(.button-icon-disabled){background:var(--color-brand-800, #42298F)}.button-icon-secondary{background:var(--color-white, #FFFFFF);color:var(--color-neutral-700, #344054);border:1px solid var(--color-neutral-300, #D0D5DD)}.button-icon-secondary:hover:not(.button-icon-disabled){background:var(--color-neutral-50, #F9FAFB);border-color:var(--color-neutral-400, #98A2B3)}.button-icon-secondary:active:not(.button-icon-disabled){background:var(--color-neutral-100, #F2F4F7)}.button-icon-tertiary{background:transparent;color:var(--color-brand-600, #6941C6)}.button-icon-tertiary:hover:not(.button-icon-disabled){background:var(--color-brand-50, #F9F5FF)}.button-icon-tertiary:active:not(.button-icon-disabled){background:var(--color-brand-100, #F4EBFF)}.button-icon-quaternary{background:transparent;color:var(--color-neutral-500, #667085)}.button-icon-quaternary:hover:not(.button-icon-disabled){background:var(--color-neutral-100, #F2F4F7);color:var(--color-neutral-700, #344054)}.button-icon-quaternary:active:not(.button-icon-disabled){background:var(--color-neutral-200, #EAECF0)}.button-icon-disabled{opacity:0.5;cursor:not-allowed}.button-icon-loading{cursor:wait}.loading-spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin 0.8s linear infinite}.button-icon-sm .loading-spinner{width:14px;height:14px}.button-icon-xs .loading-spinner{width:12px;height:12px}.button-icon-lg .loading-spinner{width:20px;height:20px}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon{display:flex;align-items:center;justify-content:center}.material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased;font-variation-settings:'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24}";
|
|
4
|
+
|
|
5
|
+
const BhButtonIcon = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bhClick = createEvent(this, "bhClick");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The visual hierarchy of the button
|
|
12
|
+
*/
|
|
13
|
+
hierarchy = 'primary';
|
|
14
|
+
/**
|
|
15
|
+
* The size of the button
|
|
16
|
+
*/
|
|
17
|
+
size = 'md';
|
|
18
|
+
/**
|
|
19
|
+
* The icon name (Material Symbols)
|
|
20
|
+
*/
|
|
21
|
+
iconName = 'add';
|
|
22
|
+
/**
|
|
23
|
+
* Whether the button is disabled
|
|
24
|
+
*/
|
|
25
|
+
disabled = false;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the button is in loading state
|
|
28
|
+
*/
|
|
29
|
+
loading = false;
|
|
30
|
+
/**
|
|
31
|
+
* The type of button for form submission
|
|
32
|
+
* - 'button': No form submission (default)
|
|
33
|
+
* - 'submit': Submits the form
|
|
34
|
+
* - 'reset': Resets the form
|
|
35
|
+
*/
|
|
36
|
+
type = 'button';
|
|
37
|
+
/**
|
|
38
|
+
* Accessible label for the button
|
|
39
|
+
*/
|
|
40
|
+
ariaLabel = null;
|
|
41
|
+
/**
|
|
42
|
+
* Emitted when the button is clicked
|
|
43
|
+
*/
|
|
44
|
+
bhClick;
|
|
45
|
+
handleClick = (event) => {
|
|
46
|
+
if (!this.disabled && !this.loading) {
|
|
47
|
+
this.bhClick.emit(event);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
handleKeyDown = (event) => {
|
|
51
|
+
if ((event.key === 'Enter' || event.key === ' ') &&
|
|
52
|
+
!this.disabled &&
|
|
53
|
+
!this.loading) {
|
|
54
|
+
event.preventDefault();
|
|
55
|
+
this.bhClick.emit(event);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
render() {
|
|
59
|
+
const buttonClasses = {
|
|
60
|
+
'button-icon': true,
|
|
61
|
+
[`button-icon-${this.hierarchy}`]: true,
|
|
62
|
+
[`button-icon-${this.size}`]: true,
|
|
63
|
+
'button-icon-disabled': this.disabled,
|
|
64
|
+
'button-icon-loading': this.loading,
|
|
65
|
+
};
|
|
66
|
+
return (h("button", { key: '8c2a2097a2c7bbbb89a541d4fce7bba4c4eac970', type: this.type, class: buttonClasses, disabled: this.disabled, "aria-label": this.ariaLabel || this.iconName, "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.handleClick, onKeyDown: this.handleKeyDown, part: "button" }, this.loading ? (h("span", { class: "loading-spinner", part: "spinner" })) : (h("span", { class: "material-symbols-outlined icon", part: "icon" }, this.iconName))));
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
BhButtonIcon.style = bhButtonIconCss;
|
|
70
|
+
|
|
71
|
+
export { BhButtonIcon as bh_button_icon };
|
|
72
|
+
//# sourceMappingURL=bh-button-icon.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bh-button-icon.entry.js","sources":["src/components/bh-button-icon/bh-button-icon.css?tag=bh-button-icon&encapsulation=shadow","src/components/bh-button-icon/bh-button-icon.tsx"],"sourcesContent":[":host {\n display: inline-block;\n font-family: var(--font-inter, 'Inter', -apple-system, BlinkMacSystemFont, sans-serif);\n}\n\n/* Base Button Icon */\n.button-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n border-radius: var(--radius-md, 8px);\n cursor: pointer;\n transition: all 0.2s ease-in-out;\n font-family: inherit;\n outline: none;\n padding: 0;\n}\n\n.button-icon:focus-visible {\n box-shadow: 0 0 0 2px var(--color-white, #FFFFFF), 0 0 0 4px var(--color-brand-500, #7F56D9);\n}\n\n/* Sizes */\n.button-icon-xs {\n width: 24px;\n height: 24px;\n}\n\n.button-icon-xs .icon {\n font-size: 16px;\n}\n\n.button-icon-sm {\n width: 32px;\n height: 32px;\n}\n\n.button-icon-sm .icon {\n font-size: 18px;\n}\n\n.button-icon-md {\n width: 40px;\n height: 40px;\n}\n\n.button-icon-md .icon {\n font-size: 20px;\n}\n\n.button-icon-lg {\n width: 48px;\n height: 48px;\n}\n\n.button-icon-lg .icon {\n font-size: 24px;\n}\n\n/* Primary Hierarchy */\n.button-icon-primary {\n background: var(--color-brand-600, #6941C6);\n color: var(--color-white, #FFFFFF);\n}\n\n.button-icon-primary:hover:not(.button-icon-disabled) {\n background: var(--color-brand-700, #5235A8);\n}\n\n.button-icon-primary:active:not(.button-icon-disabled) {\n background: var(--color-brand-800, #42298F);\n}\n\n/* Secondary Hierarchy */\n.button-icon-secondary {\n background: var(--color-white, #FFFFFF);\n color: var(--color-neutral-700, #344054);\n border: 1px solid var(--color-neutral-300, #D0D5DD);\n}\n\n.button-icon-secondary:hover:not(.button-icon-disabled) {\n background: var(--color-neutral-50, #F9FAFB);\n border-color: var(--color-neutral-400, #98A2B3);\n}\n\n.button-icon-secondary:active:not(.button-icon-disabled) {\n background: var(--color-neutral-100, #F2F4F7);\n}\n\n/* Tertiary Hierarchy */\n.button-icon-tertiary {\n background: transparent;\n color: var(--color-brand-600, #6941C6);\n}\n\n.button-icon-tertiary:hover:not(.button-icon-disabled) {\n background: var(--color-brand-50, #F9F5FF);\n}\n\n.button-icon-tertiary:active:not(.button-icon-disabled) {\n background: var(--color-brand-100, #F4EBFF);\n}\n\n/* Quaternary Hierarchy */\n.button-icon-quaternary {\n background: transparent;\n color: var(--color-neutral-500, #667085);\n}\n\n.button-icon-quaternary:hover:not(.button-icon-disabled) {\n background: var(--color-neutral-100, #F2F4F7);\n color: var(--color-neutral-700, #344054);\n}\n\n.button-icon-quaternary:active:not(.button-icon-disabled) {\n background: var(--color-neutral-200, #EAECF0);\n}\n\n/* Disabled State */\n.button-icon-disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Loading State */\n.button-icon-loading {\n cursor: wait;\n}\n\n/* Loading Spinner */\n.loading-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n}\n\n.button-icon-sm .loading-spinner {\n width: 14px;\n height: 14px;\n}\n\n.button-icon-xs .loading-spinner {\n width: 12px;\n height: 12px;\n}\n\n.button-icon-lg .loading-spinner {\n width: 20px;\n height: 20px;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Icon */\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Material Symbols */\n.material-symbols-outlined {\n font-family: 'Material Symbols Outlined';\n font-weight: normal;\n font-style: normal;\n line-height: 1;\n letter-spacing: normal;\n text-transform: none;\n display: inline-block;\n white-space: nowrap;\n word-wrap: normal;\n direction: ltr;\n font-feature-settings: 'liga';\n -webkit-font-smoothing: antialiased;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;\n}\n","import { Component, Prop, Event, EventEmitter, h } from '@stencil/core';\n\nexport type ButtonIconHierarchy =\n | 'primary'\n | 'secondary'\n | 'tertiary'\n | 'quaternary';\nexport type ButtonIconSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type ButtonIconType = 'button' | 'submit' | 'reset';\n\n@Component({\n tag: 'bh-button-icon',\n styleUrl: 'bh-button-icon.css',\n shadow: true,\n})\nexport class BhButtonIcon {\n /**\n * The visual hierarchy of the button\n */\n @Prop() hierarchy: ButtonIconHierarchy = 'primary';\n\n /**\n * The size of the button\n */\n @Prop() size: ButtonIconSize = 'md';\n\n /**\n * The icon name (Material Symbols)\n */\n @Prop() iconName: string = 'add';\n\n /**\n * Whether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the button is in loading state\n */\n @Prop() loading: boolean = false;\n\n /**\n * The type of button for form submission\n * - 'button': No form submission (default)\n * - 'submit': Submits the form\n * - 'reset': Resets the form\n */\n @Prop() type: ButtonIconType = 'button';\n\n /**\n * Accessible label for the button\n */\n @Prop() ariaLabel: string | null = null;\n\n /**\n * Emitted when the button is clicked\n */\n @Event() bhClick!: EventEmitter<MouseEvent>;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.disabled && !this.loading) {\n this.bhClick.emit(event);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (\n (event.key === 'Enter' || event.key === ' ') &&\n !this.disabled &&\n !this.loading\n ) {\n event.preventDefault();\n this.bhClick.emit(event as unknown as MouseEvent);\n }\n };\n\n render() {\n const buttonClasses = {\n 'button-icon': true,\n [`button-icon-${this.hierarchy}`]: true,\n [`button-icon-${this.size}`]: true,\n 'button-icon-disabled': this.disabled,\n 'button-icon-loading': this.loading,\n };\n\n return (\n <button\n type={this.type}\n class={buttonClasses}\n disabled={this.disabled}\n aria-label={this.ariaLabel || this.iconName}\n aria-disabled={this.disabled ? 'true' : undefined}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n part=\"button\"\n >\n {this.loading ? (\n <span class=\"loading-spinner\" part=\"spinner\"></span>\n ) : (\n <span class=\"material-symbols-outlined icon\" part=\"icon\">\n {this.iconName}\n </span>\n )}\n </button>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,eAAe,GAAG,+4FAA+4F;;MCe15F,YAAY,GAAA,MAAA;;;;;AACvB;;AAEG;IACK,SAAS,GAAwB,SAAS;AAElD;;AAEG;IACK,IAAI,GAAmB,IAAI;AAEnC;;AAEG;IACK,QAAQ,GAAW,KAAK;AAEhC;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;IACK,OAAO,GAAY,KAAK;AAEhC;;;;;AAKG;IACK,IAAI,GAAmB,QAAQ;AAEvC;;AAEG;IACK,SAAS,GAAkB,IAAI;AAEvC;;AAEG;AACM,IAAA,OAAO;AAER,IAAA,WAAW,GAAG,CAAC,KAAiB,KAAU;QAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE5B,KAAC;AAEO,IAAA,aAAa,GAAG,CAAC,KAAoB,KAAU;AACrD,QAAA,IACE,CAAC,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG;YAC3C,CAAC,IAAI,CAAC,QAAQ;AACd,YAAA,CAAC,IAAI,CAAC,OAAO,EACb;YACA,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAA8B,CAAC;;AAErD,KAAC;IAED,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,CAAC,eAAe,IAAI,CAAC,SAAS,CAAE,CAAA,GAAG,IAAI;AACvC,YAAA,CAAC,eAAe,IAAI,CAAC,IAAI,CAAE,CAAA,GAAG,IAAI;YAClC,sBAAsB,EAAE,IAAI,CAAC,QAAQ;YACrC,qBAAqB,EAAE,IAAI,CAAC,OAAO;SACpC;QAED,QACE,CACE,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAA,YAAA,EACX,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAC5B,eAAA,EAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,EACjD,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,IAAI,EAAC,QAAQ,EAAA,EAEZ,IAAI,CAAC,OAAO,IACX,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,SAAS,GAAQ,KAEpD,YAAM,KAAK,EAAC,gCAAgC,EAAC,IAAI,EAAC,MAAM,EAAA,EACrD,IAAI,CAAC,QAAQ,CACT,CACR,CACM;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bh-button.bh-loader-spinner.entry.js","sources":["src/components/bh-loader-spinner/bh-loader-spinner.css?tag=bh-loader-spinner&encapsulation=shadow","src/components/bh-loader-spinner/bh-loader-spinner.tsx"],"sourcesContent":["/* ==========================================================================\n LOADER SPINNER COMPONENT - StencilJS\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n/* Overlay styles */\n.loader-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.3);\n backdrop-filter: blur(4px);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n}\n\n.loader-overlay-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-md);\n}\n\n/* Container styles */\n.loader-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--spacing-sm);\n}\n\n.loader-spinner {\n position: relative;\n display: inline-block;\n}\n\n/* Message styles */\n.loader-message {\n color: var(--color-neutral-700);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n font-weight: var(--weight-medium);\n text-align: center;\n margin-top: var(--spacing-xs);\n}\n\n.loader-overlay .loader-message {\n color: var(--color-white);\n}\n\n/* =========================\n GRADIENT VARIANT - BellhopOS Sidebar Style\n ========================= */\n.spinner-gradient {\n animation: gradient-rotate 2s linear infinite;\n will-change: transform;\n}\n\n.gradient-svg {\n display: block;\n transform-origin: 50% 50%;\n}\n\n.gradient-path {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: 0;\n animation: gradient-dash 1.5s ease-in-out infinite;\n transform-origin: 50% 50%;\n}\n\n/* Size variations for gradient */\n.size-sm .gradient-svg {\n width: 20px;\n height: 20px;\n}\n\n.size-sm .gradient-path {\n stroke-width: 5;\n}\n\n.size-md .gradient-svg {\n width: 30px;\n height: 30px;\n}\n\n.size-md .gradient-path {\n stroke-width: 5;\n}\n\n.size-lg .gradient-svg {\n width: 40px;\n height: 40px;\n}\n\n.size-lg .gradient-path {\n stroke-width: 5;\n}\n\n.size-xl .gradient-svg {\n width: 60px;\n height: 60px;\n}\n\n.size-xl .gradient-path {\n stroke-width: 6;\n}\n\n@keyframes gradient-rotate {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes gradient-dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n}\n\n/* Hover effects - Ultra smooth acceleration */\n.loader-container:hover .spinner-gradient {\n animation-duration: 1s;\n}\n\n.loader-container:hover .gradient-path {\n animation-duration: 0.6s;\n}\n\n/* Performance optimizations */\n.spinner-gradient {\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.gradient-svg {\n transform: translateZ(0);\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type LoaderSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type LoaderVariant = 'default' | 'white';\n\n@Component({\n tag: 'bh-loader-spinner',\n styleUrl: 'bh-loader-spinner.css',\n shadow: true,\n})\nexport class BhLoaderSpinner {\n /** Loader size */\n @Prop() size: LoaderSize = 'md';\n\n /** Loader color variant - use 'white' for dark surfaces like buttons */\n @Prop() variant: LoaderVariant = 'default';\n\n /** Whether to show as overlay */\n @Prop() overlay: boolean = false;\n\n /** Message to show in overlay mode */\n @Prop() overlayMessage: string = '';\n\n /** Whether to show message */\n @Prop() showMessage: boolean = false;\n\n /** Message text */\n @Prop() message: string = 'Loading...';\n\n private renderSpinner() {\n const gradientId = this.variant === 'white' ? 'bellhop-gradient-white' : 'bellhop-gradient';\n\n return (\n <div class={`loader-spinner variant-${this.variant}`}>\n <div class=\"spinner-gradient\">\n <svg class=\"gradient-svg\" viewBox=\"0 0 50 50\">\n <defs>\n {this.variant === 'white' ? (\n <linearGradient\n id=\"bellhop-gradient-white\"\n x1=\"0%\"\n y1=\"0%\"\n x2=\"0%\"\n y2=\"100%\"\n >\n <stop offset=\"0%\" style={{ stopColor: 'rgba(255, 255, 255, 1)' }} />\n <stop offset=\"50%\" style={{ stopColor: 'rgba(255, 255, 255, 0.8)' }} />\n <stop offset=\"100%\" style={{ stopColor: 'rgba(255, 255, 255, 0.5)' }} />\n </linearGradient>\n ) : (\n <linearGradient\n id=\"bellhop-gradient\"\n x1=\"0%\"\n y1=\"0%\"\n x2=\"0%\"\n y2=\"100%\"\n >\n <stop offset=\"0%\" style={{ stopColor: 'var(--color-accent-300)' }} />\n <stop offset=\"51%\" style={{ stopColor: 'var(--color-brand-400)' }} />\n <stop offset=\"100%\" style={{ stopColor: 'var(--color-brand-600)' }} />\n </linearGradient>\n )}\n </defs>\n <circle\n class=\"gradient-path\"\n cx=\"25\"\n cy=\"25\"\n r=\"20\"\n fill=\"none\"\n stroke={`url(#${gradientId})`}\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n />\n </svg>\n </div>\n </div>\n );\n }\n\n private renderMessage(isOverlay: boolean) {\n const shouldShowMessage = isOverlay\n ? (this.showMessage || this.overlayMessage)\n : this.showMessage;\n\n if (!shouldShowMessage) return null;\n\n return (\n <div class=\"loader-message\">\n {isOverlay ? (this.overlayMessage || this.message) : this.message}\n </div>\n );\n }\n\n render() {\n if (this.overlay) {\n return (\n <div class=\"loader-overlay\">\n <div class=\"loader-overlay-content\">\n <div class={`loader-container size-${this.size}`}>\n {this.renderSpinner()}\n </div>\n {this.renderMessage(true)}\n </div>\n </div>\n );\n }\n\n return (\n <div class={`loader-container size-${this.size}`}>\n {this.renderSpinner()}\n {this.renderMessage(false)}\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export { B as bh_button } from './bh-button-CBZGiLVh.js';
|
|
2
|
+
import { r as registerInstance, h } from './index-DtVghh5W.js';
|
|
3
|
+
|
|
4
|
+
const bhLoaderSpinnerCss = ":host{display:inline-block}.loader-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0, 0, 0, 0.3);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999}.loader-overlay-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.loader-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.loader-spinner{position:relative;display:inline-block}.loader-message{color:var(--color-neutral-700);font-size:var(--text-sm-size);line-height:var(--text-sm-line);font-weight:var(--weight-medium);text-align:center;margin-top:var(--spacing-xs)}.loader-overlay .loader-message{color:var(--color-white)}.spinner-gradient{animation:gradient-rotate 2s linear infinite;will-change:transform}.gradient-svg{display:block;transform-origin:50% 50%}.gradient-path{stroke-dasharray:90, 150;stroke-dashoffset:0;animation:gradient-dash 1.5s ease-in-out infinite;transform-origin:50% 50%}.size-sm .gradient-svg{width:20px;height:20px}.size-sm .gradient-path{stroke-width:5}.size-md .gradient-svg{width:30px;height:30px}.size-md .gradient-path{stroke-width:5}.size-lg .gradient-svg{width:40px;height:40px}.size-lg .gradient-path{stroke-width:5}.size-xl .gradient-svg{width:60px;height:60px}.size-xl .gradient-path{stroke-width:6}@keyframes gradient-rotate{100%{transform:rotate(360deg)}}@keyframes gradient-dash{0%{stroke-dasharray:1, 150;stroke-dashoffset:0}50%{stroke-dasharray:90, 150;stroke-dashoffset:-35}100%{stroke-dasharray:90, 150;stroke-dashoffset:-124}}.loader-container:hover .spinner-gradient{animation-duration:1s}.loader-container:hover .gradient-path{animation-duration:0.6s}.spinner-gradient{backface-visibility:hidden;perspective:1000px}.gradient-svg{transform:translateZ(0)}";
|
|
5
|
+
|
|
6
|
+
const BhLoaderSpinner = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
}
|
|
10
|
+
/** Loader size */
|
|
11
|
+
size = 'md';
|
|
12
|
+
/** Loader color variant - use 'white' for dark surfaces like buttons */
|
|
13
|
+
variant = 'default';
|
|
14
|
+
/** Whether to show as overlay */
|
|
15
|
+
overlay = false;
|
|
16
|
+
/** Message to show in overlay mode */
|
|
17
|
+
overlayMessage = '';
|
|
18
|
+
/** Whether to show message */
|
|
19
|
+
showMessage = false;
|
|
20
|
+
/** Message text */
|
|
21
|
+
message = 'Loading...';
|
|
22
|
+
renderSpinner() {
|
|
23
|
+
const gradientId = this.variant === 'white' ? 'bellhop-gradient-white' : 'bellhop-gradient';
|
|
24
|
+
return (h("div", { class: `loader-spinner variant-${this.variant}` }, h("div", { class: "spinner-gradient" }, h("svg", { class: "gradient-svg", viewBox: "0 0 50 50" }, h("defs", null, this.variant === 'white' ? (h("linearGradient", { id: "bellhop-gradient-white", x1: "0%", y1: "0%", x2: "0%", y2: "100%" }, h("stop", { offset: "0%", style: { stopColor: 'rgba(255, 255, 255, 1)' } }), h("stop", { offset: "50%", style: { stopColor: 'rgba(255, 255, 255, 0.8)' } }), h("stop", { offset: "100%", style: { stopColor: 'rgba(255, 255, 255, 0.5)' } }))) : (h("linearGradient", { id: "bellhop-gradient", x1: "0%", y1: "0%", x2: "0%", y2: "100%" }, h("stop", { offset: "0%", style: { stopColor: 'var(--color-accent-300)' } }), h("stop", { offset: "51%", style: { stopColor: 'var(--color-brand-400)' } }), h("stop", { offset: "100%", style: { stopColor: 'var(--color-brand-600)' } })))), h("circle", { class: "gradient-path", cx: "25", cy: "25", r: "20", fill: "none", stroke: `url(#${gradientId})`, "stroke-width": "4", "stroke-linecap": "round" })))));
|
|
25
|
+
}
|
|
26
|
+
renderMessage(isOverlay) {
|
|
27
|
+
const shouldShowMessage = isOverlay
|
|
28
|
+
? (this.showMessage || this.overlayMessage)
|
|
29
|
+
: this.showMessage;
|
|
30
|
+
if (!shouldShowMessage)
|
|
31
|
+
return null;
|
|
32
|
+
return (h("div", { class: "loader-message" }, isOverlay ? (this.overlayMessage || this.message) : this.message));
|
|
33
|
+
}
|
|
34
|
+
render() {
|
|
35
|
+
if (this.overlay) {
|
|
36
|
+
return (h("div", { class: "loader-overlay" }, h("div", { class: "loader-overlay-content" }, h("div", { class: `loader-container size-${this.size}` }, this.renderSpinner()), this.renderMessage(true))));
|
|
37
|
+
}
|
|
38
|
+
return (h("div", { class: `loader-container size-${this.size}` }, this.renderSpinner(), this.renderMessage(false)));
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
BhLoaderSpinner.style = bhLoaderSpinnerCss;
|
|
42
|
+
|
|
43
|
+
export { BhLoaderSpinner as bh_loader_spinner };
|
|
44
|
+
//# sourceMappingURL=bh-button.bh-loader-spinner.entry.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-DtVghh5W.js';
|
|
2
|
+
|
|
3
|
+
const bhCardFooterCss = ":host{display:block}.card-footer{display:flex;flex-direction:column;gap:var(--spacing-xs);background:var(--color-white)}.card-footer-divider{height:1px;background:var(--color-neutral-200)}.card-footer-content{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl)}.card-footer-align-left{justify-content:flex-start}.card-footer-align-right{justify-content:flex-end}.card-footer-align-space-between{justify-content:space-between}.card-footer-primary-actions{display:flex;flex:1 0 0;align-items:center;gap:var(--spacing-none);min-width:0}.card-footer-secondary-actions{display:flex;align-items:center;gap:var(--spacing-md)}.card-footer-primary-actions:empty,.card-footer-secondary-actions:empty{display:none}";
|
|
4
|
+
|
|
5
|
+
const BhCardFooter = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Whether to show the divider above the footer
|
|
11
|
+
*/
|
|
12
|
+
showDivider = true;
|
|
13
|
+
/**
|
|
14
|
+
* Alignment of the footer content
|
|
15
|
+
*/
|
|
16
|
+
alignment = 'space-between';
|
|
17
|
+
render() {
|
|
18
|
+
const footerContentClasses = {
|
|
19
|
+
'card-footer-content': true,
|
|
20
|
+
[`card-footer-align-${this.alignment}`]: true,
|
|
21
|
+
};
|
|
22
|
+
return (h(Host, { key: '27230a36e6bafcbb61bdac3bc0bcebbd550e70c8' }, h("div", { key: '1f0088fbe2a962080e5db856eb534029ed94d8e2', class: "card-footer" }, this.showDivider && h("div", { key: 'f320e028a9c4675b151547f6e368f67910e87d85', class: "card-footer-divider" }), h("div", { key: '9f35426a461e248e09de3c5e9eca23e7d63d9f08', class: footerContentClasses }, h("div", { key: 'd1d17256b3aa704bb898f711519c96405a7927af', class: "card-footer-primary-actions" }, h("slot", { key: '5f18da8ec38e3a2e2237a3bd4d1269686514047d', name: "primary-actions" })), h("div", { key: '0754da91faf75928a1070a01960f41395f0387dc', class: "card-footer-secondary-actions" }, h("slot", { key: '2ffc5290e3499d62e72fd1398b44811d0f0970ba', name: "secondary-actions" }))))));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
BhCardFooter.style = bhCardFooterCss;
|
|
26
|
+
|
|
27
|
+
export { BhCardFooter as bh_card_footer };
|
|
28
|
+
//# sourceMappingURL=bh-card-footer.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bh-card-footer.entry.js","sources":["src/components/bh-card-footer/bh-card-footer.css?tag=bh-card-footer&encapsulation=shadow","src/components/bh-card-footer/bh-card-footer.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.card-footer {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n background: var(--color-white);\n}\n\n.card-footer-divider {\n height: 1px;\n background: var(--color-neutral-200);\n}\n\n.card-footer-content {\n display: flex;\n align-items: center;\n gap: var(--spacing-md);\n padding: var(--spacing-lg) var(--spacing-xl);\n}\n\n.card-footer-align-left {\n justify-content: flex-start;\n}\n\n.card-footer-align-right {\n justify-content: flex-end;\n}\n\n.card-footer-align-space-between {\n justify-content: space-between;\n}\n\n.card-footer-primary-actions {\n display: flex;\n flex: 1 0 0;\n align-items: center;\n gap: var(--spacing-none);\n min-width: 0;\n}\n\n.card-footer-secondary-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-md);\n}\n\n/* Hide empty slots */\n.card-footer-primary-actions:empty,\n.card-footer-secondary-actions:empty {\n display: none;\n}\n","import { Component, Prop, h, Host } from '@stencil/core';\n\nexport type CardFooterAlignment = 'left' | 'right' | 'space-between';\n\n@Component({\n tag: 'bh-card-footer',\n styleUrl: 'bh-card-footer.css',\n shadow: true,\n})\nexport class BhCardFooter {\n /**\n * Whether to show the divider above the footer\n */\n @Prop() showDivider: boolean = true;\n\n /**\n * Alignment of the footer content\n */\n @Prop() alignment: CardFooterAlignment = 'space-between';\n\n render() {\n const footerContentClasses = {\n 'card-footer-content': true,\n [`card-footer-align-${this.alignment}`]: true,\n };\n\n return (\n <Host>\n <div class=\"card-footer\">\n {this.showDivider && <div class=\"card-footer-divider\" />}\n <div class={footerContentClasses}>\n <div class=\"card-footer-primary-actions\">\n <slot name=\"primary-actions\" />\n </div>\n <div class=\"card-footer-secondary-actions\">\n <slot name=\"secondary-actions\" />\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,eAAe,GAAG,+uBAA+uB;;MCS1vB,YAAY,GAAA,MAAA;;;;AACvB;;AAEG;IACK,WAAW,GAAY,IAAI;AAEnC;;AAEG;IACK,SAAS,GAAwB,eAAe;IAExD,MAAM,GAAA;AACJ,QAAA,MAAM,oBAAoB,GAAG;AAC3B,YAAA,qBAAqB,EAAE,IAAI;AAC3B,YAAA,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAE,CAAA,GAAG,IAAI;SAC9C;QAED,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,EACrB,IAAI,CAAC,WAAW,IAAI,4DAAK,KAAK,EAAC,qBAAqB,EAAG,CAAA,EACxD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,oBAAoB,EAAA,EAC9B,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,6BAA6B,EAAA,EACtC,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,iBAAiB,EAAA,CAAG,CAC3B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,+BAA+B,EAAA,EACxC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,mBAAmB,EAAA,CAAG,CAC7B,CACF,CACF,CACD;;;;;;;"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host } from './index-DtVghh5W.js';
|
|
2
|
+
|
|
3
|
+
const bhCardHeaderCss = ":host{display:block}.card-header{display:flex;flex-direction:column;gap:var(--spacing-lg);background:var(--color-white)}.card-header-content{display:flex;gap:var(--spacing-md);align-items:flex-start;padding:var(--spacing-lg) var(--spacing-xl) 0 var(--spacing-xl)}.card-header-text-container{display:flex;flex-direction:column;flex:1 0 0;gap:var(--spacing-xxs);min-width:0}.card-header-title-row{display:flex;align-items:center;gap:var(--spacing-lg)}.card-header-title{font-family:var(--font-inter);font-size:var(--text-md-size);font-weight:var(--weight-semibold);line-height:var(--text-md-line);color:var(--color-neutral-900)}.card-header-supporting-row{display:flex;align-items:center;gap:var(--spacing-lg);width:100%}.card-header-spacer{width:32px;flex-shrink:0}.card-header-supporting-text{flex:1 0 0;font-family:var(--font-inter);font-size:var(--text-sm-size);font-weight:var(--weight-regular);line-height:var(--text-sm-line);color:var(--color-neutral-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-header-divider{height:1px;background:var(--color-neutral-200)}";
|
|
4
|
+
|
|
5
|
+
const BhCardHeader = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bhDropdownClick = createEvent(this, "bhDropdownClick");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Whether to show the featured icon
|
|
12
|
+
*/
|
|
13
|
+
showFeaturedIcon = true;
|
|
14
|
+
/**
|
|
15
|
+
* The Material Symbol icon name for the featured icon
|
|
16
|
+
*/
|
|
17
|
+
featuredIcon = 'star';
|
|
18
|
+
/**
|
|
19
|
+
* The style of the featured icon
|
|
20
|
+
*/
|
|
21
|
+
featuredIconStyle = 'outlined';
|
|
22
|
+
/**
|
|
23
|
+
* The color of the featured icon
|
|
24
|
+
*/
|
|
25
|
+
featuredIconColor = 'gray';
|
|
26
|
+
/**
|
|
27
|
+
* Whether to show the title
|
|
28
|
+
*/
|
|
29
|
+
showTitle = true;
|
|
30
|
+
/**
|
|
31
|
+
* The title text
|
|
32
|
+
*/
|
|
33
|
+
headerTitle = 'Card title';
|
|
34
|
+
/**
|
|
35
|
+
* Whether to show the badge
|
|
36
|
+
*/
|
|
37
|
+
showBadge = false;
|
|
38
|
+
/**
|
|
39
|
+
* The badge text
|
|
40
|
+
*/
|
|
41
|
+
badgeText = '';
|
|
42
|
+
/**
|
|
43
|
+
* Whether to show the supporting text
|
|
44
|
+
*/
|
|
45
|
+
showSupportingText = true;
|
|
46
|
+
/**
|
|
47
|
+
* The supporting text (description)
|
|
48
|
+
*/
|
|
49
|
+
supportingText = 'Card description';
|
|
50
|
+
/**
|
|
51
|
+
* Whether to show the dropdown menu button
|
|
52
|
+
*/
|
|
53
|
+
showDropdown = true;
|
|
54
|
+
/**
|
|
55
|
+
* Whether to show the divider
|
|
56
|
+
*/
|
|
57
|
+
showDivider = true;
|
|
58
|
+
/**
|
|
59
|
+
* Emitted when the dropdown button is clicked
|
|
60
|
+
*/
|
|
61
|
+
bhDropdownClick;
|
|
62
|
+
handleDropdownClick = () => {
|
|
63
|
+
this.bhDropdownClick.emit();
|
|
64
|
+
};
|
|
65
|
+
render() {
|
|
66
|
+
return (h(Host, { key: '58db2d5c1ca47600da5c07ea2750ecb1c2f2a4a7' }, h("div", { key: '70cbc0d9779b1f5e75a774f40715001c904f2670', class: "card-header" }, h("div", { key: 'fb602ff3a92aa06d51df870ea4e5b3a6f11e9309', class: "card-header-content" }, h("div", { key: '00a315a07bc10dc72c36cbc79e0d24c9570dcdc7', class: "card-header-text-container" }, h("div", { key: '42d15bc872bf00216be3fcff6bee772bcab7b14e', class: "card-header-title-row" }, this.showFeaturedIcon && (h("bh-featured-icon", { key: 'd9294c5035425329806b0b575cf4799defed83f9', size: "sm", icon: this.featuredIcon, iconStyle: this.featuredIconStyle, color: this.featuredIconColor })), this.showTitle && (h("span", { key: '96399bb209d70a9694fab80e0e0c4ece3025ade5', class: "card-header-title" }, this.headerTitle)), this.showBadge && this.badgeText && (h("bh-badge", { key: 'e030d01179a3e0cc3dbbc972a7251dd49a661533', variant: "blue", size: "sm", emphasis: "medium", label: this.badgeText }))), this.showSupportingText && (h("div", { key: 'e4a1253d649a77d9d6a5f12313f279e18b509304', class: "card-header-supporting-row" }, this.showFeaturedIcon && h("div", { key: 'bf5f6482b25ad7c35f6f42f18001064f1a5f8be9', class: "card-header-spacer" }), h("span", { key: '256fa43537b957a80190ce8683484cbaef0ade56', class: "card-header-supporting-text" }, this.supportingText)))), this.showDropdown && (h("bh-button-icon", { key: 'ab3df5c4b4fd8dbeb56c1860d2b38334ed6fa29e', hierarchy: "quaternary", size: "sm", iconName: "more_vert", ariaLabel: "More options", onBhClick: this.handleDropdownClick }))), h("slot", { key: '836d525ba14a3f7020fecdcf3660e2e50353a9de', name: "tabs" }), this.showDivider && h("div", { key: '9b96114d09fb987fe710de8a6438141c380c07e3', class: "card-header-divider" }))));
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
BhCardHeader.style = bhCardHeaderCss;
|
|
70
|
+
|
|
71
|
+
export { BhCardHeader as bh_card_header };
|
|
72
|
+
//# sourceMappingURL=bh-card-header.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bh-card-header.entry.js","sources":["src/components/bh-card-header/bh-card-header.css?tag=bh-card-header&encapsulation=shadow","src/components/bh-card-header/bh-card-header.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.card-header {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-lg);\n background: var(--color-white);\n}\n\n.card-header-content {\n display: flex;\n gap: var(--spacing-md);\n align-items: flex-start;\n padding: var(--spacing-lg) var(--spacing-xl) 0 var(--spacing-xl);\n}\n\n.card-header-text-container {\n display: flex;\n flex-direction: column;\n flex: 1 0 0;\n gap: var(--spacing-xxs);\n min-width: 0;\n}\n\n.card-header-title-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-lg);\n}\n\n.card-header-title {\n font-family: var(--font-inter);\n font-size: var(--text-md-size);\n font-weight: var(--weight-semibold);\n line-height: var(--text-md-line);\n color: var(--color-neutral-900);\n}\n\n.card-header-supporting-row {\n display: flex;\n align-items: center;\n gap: var(--spacing-lg);\n width: 100%;\n}\n\n.card-header-spacer {\n width: 32px;\n flex-shrink: 0;\n}\n\n.card-header-supporting-text {\n flex: 1 0 0;\n font-family: var(--font-inter);\n font-size: var(--text-sm-size);\n font-weight: var(--weight-regular);\n line-height: var(--text-sm-line);\n color: var(--color-neutral-500);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.card-header-divider {\n height: 1px;\n background: var(--color-neutral-200);\n}\n","import { Component, Prop, Event, EventEmitter, h, Host } from '@stencil/core';\n\nexport type CardHeaderFeaturedIconStyle = 'outlined' | 'filled';\nexport type CardHeaderFeaturedIconColor = 'brand' | 'gray' | 'error' | 'warning' | 'success' | 'highlight';\n\n@Component({\n tag: 'bh-card-header',\n styleUrl: 'bh-card-header.css',\n shadow: true,\n})\nexport class BhCardHeader {\n /**\n * Whether to show the featured icon\n */\n @Prop() showFeaturedIcon: boolean = true;\n\n /**\n * The Material Symbol icon name for the featured icon\n */\n @Prop() featuredIcon: string = 'star';\n\n /**\n * The style of the featured icon\n */\n @Prop() featuredIconStyle: CardHeaderFeaturedIconStyle = 'outlined';\n\n /**\n * The color of the featured icon\n */\n @Prop() featuredIconColor: CardHeaderFeaturedIconColor = 'gray';\n\n /**\n * Whether to show the title\n */\n @Prop() showTitle: boolean = true;\n\n /**\n * The title text\n */\n @Prop() headerTitle: string = 'Card title';\n\n /**\n * Whether to show the badge\n */\n @Prop() showBadge: boolean = false;\n\n /**\n * The badge text\n */\n @Prop() badgeText: string = '';\n\n /**\n * Whether to show the supporting text\n */\n @Prop() showSupportingText: boolean = true;\n\n /**\n * The supporting text (description)\n */\n @Prop() supportingText: string = 'Card description';\n\n /**\n * Whether to show the dropdown menu button\n */\n @Prop() showDropdown: boolean = true;\n\n /**\n * Whether to show the divider\n */\n @Prop() showDivider: boolean = true;\n\n /**\n * Emitted when the dropdown button is clicked\n */\n @Event() bhDropdownClick!: EventEmitter<void>;\n\n private handleDropdownClick = () => {\n this.bhDropdownClick.emit();\n };\n\n render() {\n return (\n <Host>\n <div class=\"card-header\">\n <div class=\"card-header-content\">\n <div class=\"card-header-text-container\">\n <div class=\"card-header-title-row\">\n {this.showFeaturedIcon && (\n <bh-featured-icon\n size=\"sm\"\n icon={this.featuredIcon}\n iconStyle={this.featuredIconStyle}\n color={this.featuredIconColor}\n />\n )}\n {this.showTitle && (\n <span class=\"card-header-title\">{this.headerTitle}</span>\n )}\n {this.showBadge && this.badgeText && (\n <bh-badge\n variant=\"blue\"\n size=\"sm\"\n emphasis=\"medium\"\n label={this.badgeText}\n />\n )}\n </div>\n {this.showSupportingText && (\n <div class=\"card-header-supporting-row\">\n {this.showFeaturedIcon && <div class=\"card-header-spacer\" />}\n <span class=\"card-header-supporting-text\">{this.supportingText}</span>\n </div>\n )}\n </div>\n {this.showDropdown && (\n <bh-button-icon\n hierarchy=\"quaternary\"\n size=\"sm\"\n iconName=\"more_vert\"\n ariaLabel=\"More options\"\n onBhClick={this.handleDropdownClick}\n />\n )}\n </div>\n <slot name=\"tabs\" />\n {this.showDivider && <div class=\"card-header-divider\" />}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { r as registerInstance, a as getElement, h, H as Host } from './index-DtVghh5W.js';
|
|
2
|
+
|
|
3
|
+
const bhCardCss = ":host{display:block}.card{display:flex;flex-direction:column;background:var(--color-white);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);overflow:hidden;font-family:var(--font-inter)}.card-header-slot{display:contents}.card-content{display:flex;flex-direction:column;flex:1 0 auto;padding:var(--spacing-lg) var(--spacing-xl);gap:var(--spacing-none)}.card-footer-slot{display:contents}.card-content-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:var(--spacing-md);padding:var(--spacing-xl);background:var(--color-purple-50, #f5f3ff);border:1px dashed var(--color-purple-500, #7c3aed);border-radius:var(--radius-xl);min-height:100%}.card-placeholder-icon{font-size:32px;color:var(--color-purple-500, #7c3aed)}.card-placeholder-text{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-purple-700, #6d28d9);text-decoration:underline;text-align:center}";
|
|
4
|
+
|
|
5
|
+
const BhCard = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
get el() { return getElement(this); }
|
|
10
|
+
/**
|
|
11
|
+
* Whether to show the header section
|
|
12
|
+
*/
|
|
13
|
+
showHeader = true;
|
|
14
|
+
/**
|
|
15
|
+
* Whether to show the footer section
|
|
16
|
+
*/
|
|
17
|
+
showFooter = true;
|
|
18
|
+
/**
|
|
19
|
+
* Minimum height of the content area in pixels
|
|
20
|
+
*/
|
|
21
|
+
contentMinHeight = 200;
|
|
22
|
+
/**
|
|
23
|
+
* Placeholder text shown when no content is provided
|
|
24
|
+
*/
|
|
25
|
+
placeholderText = 'Card content slot';
|
|
26
|
+
hasContent = false;
|
|
27
|
+
componentWillLoad() {
|
|
28
|
+
this.checkForContent();
|
|
29
|
+
}
|
|
30
|
+
checkForContent() {
|
|
31
|
+
const children = Array.from(this.el.childNodes).filter((node) => (node.nodeType === Node.ELEMENT_NODE &&
|
|
32
|
+
!node.hasAttribute('slot')) ||
|
|
33
|
+
(node.nodeType === Node.TEXT_NODE && node.textContent?.trim()));
|
|
34
|
+
this.hasContent = children.length > 0;
|
|
35
|
+
}
|
|
36
|
+
render() {
|
|
37
|
+
const contentStyle = {
|
|
38
|
+
minHeight: `${this.contentMinHeight}px`,
|
|
39
|
+
};
|
|
40
|
+
return (h(Host, { key: '5bbe75e2d4ace932edc5a8d32fb450e27e67cdbe' }, h("div", { key: 'ddb19c134e32a35bc2b8a4b57ed9862faf47a53b', class: "card" }, this.showHeader && (h("div", { key: '315478a2c488b5e933c49966bccaccf8313e58b5', class: "card-header-slot" }, h("slot", { key: 'f3de383b3818feb9883c25ff150c52f0e347de86', name: "header" }))), h("div", { key: '4c6b62db9ffa61f2e0133c2af7a29a090d9c54a5', class: "card-content", style: contentStyle }, h("slot", { key: '969443dcc57fe724cbb3f1d6e1c35c8cc0312794' }), !this.hasContent && (h("div", { key: '0c5e02cf39bec9c7c1ce2ef223b1b4b0df74a372', class: "card-content-placeholder" }, h("span", { key: '0a89b768f29453dc251c3c3402ea8029bd13aaeb', class: "card-placeholder-text" }, this.placeholderText)))), this.showFooter && (h("div", { key: 'f4a2bb6df865bd1abb8f5da2d686906bddcc4c08', class: "card-footer-slot" }, h("slot", { key: '8e643371cbbbf56fb3fb87ccda3b5897f8f914bd', name: "footer" }))))));
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
BhCard.style = bhCardCss;
|
|
44
|
+
|
|
45
|
+
export { BhCard as bh_card };
|
|
46
|
+
//# sourceMappingURL=bh-card.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bh-card.entry.js","sources":["src/components/bh-card/bh-card.css?tag=bh-card&encapsulation=shadow","src/components/bh-card/bh-card.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.card {\n display: flex;\n flex-direction: column;\n background: var(--color-white);\n border: 1px solid var(--color-neutral-200);\n border-radius: var(--radius-xl);\n overflow: hidden;\n font-family: var(--font-inter);\n}\n\n.card-header-slot {\n display: contents;\n}\n\n.card-content {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n padding: var(--spacing-lg) var(--spacing-xl);\n gap: var(--spacing-none);\n}\n\n.card-footer-slot {\n display: contents;\n}\n\n/* Placeholder styles */\n.card-content-placeholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n gap: var(--spacing-md);\n padding: var(--spacing-xl);\n background: var(--color-purple-50, #f5f3ff);\n border: 1px dashed var(--color-purple-500, #7c3aed);\n border-radius: var(--radius-xl);\n min-height: 100%;\n}\n\n.card-placeholder-icon {\n font-size: 32px;\n color: var(--color-purple-500, #7c3aed);\n}\n\n.card-placeholder-text {\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n color: var(--color-purple-700, #6d28d9);\n text-decoration: underline;\n text-align: center;\n}\n","import { Component, Prop, State, Element, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'bh-card',\n styleUrl: 'bh-card.css',\n shadow: true,\n})\nexport class BhCard {\n @Element() el!: HTMLElement;\n\n /**\n * Whether to show the header section\n */\n @Prop() showHeader: boolean = true;\n\n /**\n * Whether to show the footer section\n */\n @Prop() showFooter: boolean = true;\n\n /**\n * Minimum height of the content area in pixels\n */\n @Prop() contentMinHeight: number = 200;\n\n /**\n * Placeholder text shown when no content is provided\n */\n @Prop() placeholderText: string = 'Card content slot';\n\n @State() hasContent: boolean = false;\n\n componentWillLoad() {\n this.checkForContent();\n }\n\n private checkForContent() {\n const children = Array.from(this.el.childNodes).filter(\n (node) =>\n (node.nodeType === Node.ELEMENT_NODE &&\n !(node as Element).hasAttribute('slot')) ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim())\n );\n this.hasContent = children.length > 0;\n }\n\n render() {\n const contentStyle = {\n minHeight: `${this.contentMinHeight}px`,\n };\n\n return (\n <Host>\n <div class=\"card\">\n {this.showHeader && (\n <div class=\"card-header-slot\">\n <slot name=\"header\" />\n </div>\n )}\n <div class=\"card-content\" style={contentStyle}>\n <slot />\n {!this.hasContent && (\n <div class=\"card-content-placeholder\">\n <span class=\"card-placeholder-text\">{this.placeholderText}</span>\n </div>\n )}\n </div>\n {this.showFooter && (\n <div class=\"card-footer-slot\">\n <slot name=\"footer\" />\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG,m8BAAm8B;;MCOx8B,MAAM,GAAA,MAAA;;;;;AAGjB;;AAEG;IACK,UAAU,GAAY,IAAI;AAElC;;AAEG;IACK,UAAU,GAAY,IAAI;AAElC;;AAEG;IACK,gBAAgB,GAAW,GAAG;AAEtC;;AAEG;IACK,eAAe,GAAW,mBAAmB;IAE5C,UAAU,GAAY,KAAK;IAEpC,iBAAiB,GAAA;QACf,IAAI,CAAC,eAAe,EAAE;;IAGhB,eAAe,GAAA;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CACpD,CAAC,IAAI,KACH,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;AAClC,YAAA,CAAE,IAAgB,CAAC,YAAY,CAAC,MAAM,CAAC;AACzC,aAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CACjE;QACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;;IAGvC,MAAM,GAAA;AACJ,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAI,EAAA,CAAA;SACxC;AAED,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAA,EACd,IAAI,CAAC,UAAU,KACd,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,QAAQ,EAAA,CAAG,CAClB,CACP,EACD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,YAAY,EAAA,EAC3C,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,EACP,CAAC,IAAI,CAAC,UAAU,KACf,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,0BAA0B,EAAA,EACnC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,uBAAuB,EAAE,EAAA,IAAI,CAAC,eAAe,CAAQ,CAC7D,CACP,CACG,EACL,IAAI,CAAC,UAAU,KACd,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC3B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,QAAQ,EAAA,CAAG,CAClB,CACP,CACG,CACD;;;;;;;"}
|