@actabldesign/bellhop-core 0.0.8 → 0.0.12
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 +132 -33
- package/components/bh-accordion-item.js +1 -1
- package/components/bh-avatar-add.js +1 -1
- package/components/bh-avatar-stacked.js +3 -3
- package/components/bh-avatar.js +1 -1
- package/components/bh-button.js +1 -1
- package/components/bh-card-header.js +1 -1
- package/components/bh-card.js +1 -1
- package/components/bh-checkbox-group-item.js +5 -5
- package/components/bh-checkbox.js +1 -1
- package/components/bh-data-grid.js +140 -67
- package/components/bh-data-grid.js.map +1 -1
- package/components/bh-date-picker-content.js +1 -1
- package/components/bh-date-picker.js +24 -19
- package/components/bh-date-picker.js.map +1 -1
- package/components/bh-date-range-picker-content.js +1 -1
- package/components/bh-date-range-picker.js +9 -9
- package/components/bh-dropdown-menu.js +1 -1
- package/components/bh-dropdown.js +1 -1
- package/components/bh-empty-state.js +1 -1
- package/components/bh-featured-icon.js +1 -1
- package/components/bh-illustrations.js +3 -3
- package/components/bh-input-autocomplete.js +7 -7
- package/components/bh-input-number.js +3 -3
- package/components/bh-input-password.js +3 -3
- package/components/bh-input-text.js +1 -1
- package/components/bh-input-verification.js +3 -3
- package/components/bh-label.js +1 -1
- package/components/bh-logo-box.js +1 -1
- package/components/bh-modal-actions.js +2 -2
- package/components/bh-modal-header.js +5 -5
- package/components/bh-month-picker-content.js +1 -1
- package/components/bh-month-picker.js +8 -8
- package/components/bh-month-picker.js.map +1 -1
- package/components/bh-nav-item.js +1 -1
- package/components/bh-notification.js +3 -3
- package/components/bh-page-navigation-child.js +1 -1
- package/components/bh-page-navigation-multi-level.js +1 -1
- package/components/bh-page-navigation-single-level.js +1 -1
- package/components/bh-page-navigation.js +5 -5
- package/components/bh-pagination.js +1 -1
- package/components/bh-picker-menu.js +1 -1
- package/components/bh-pie-chart.js +1 -1
- package/components/bh-popover.js +18 -85
- package/components/bh-popover.js.map +1 -1
- package/components/bh-property-switcher.js +1 -1
- package/components/bh-radio-button.js +1 -1
- package/components/bh-sidebar.js +7 -7
- package/components/bh-skeleton-loader.js +1 -1
- package/components/bh-tab-item.js +2 -2
- package/components/bh-tabs.js +1 -1
- package/components/bh-tag.js +1 -1
- package/components/bh-textarea.js +3 -3
- package/components/bh-toggle.js +1 -1
- package/components/bh-tooltip.js +1 -1
- package/components/bh-trend-chart.js +2 -2
- package/components/index.d.ts +0 -4
- package/components/index.js +0 -2
- package/components/index.js.map +1 -1
- package/components/{p-8bOZFmdg.js → p--S10V0sf.js} +5 -5
- package/components/p--S10V0sf.js.map +1 -0
- package/components/{p-BLCjD0ux.js → p-7nrZFsG8.js} +3 -3
- package/components/{p-BLCjD0ux.js.map → p-7nrZFsG8.js.map} +1 -1
- package/components/{p-C_wf2KGn.js → p-B0ADeWoj.js} +3 -3
- package/components/{p-C_wf2KGn.js.map → p-B0ADeWoj.js.map} +1 -1
- package/components/{p-D9aamyuM.js → p-BEm39SYP.js} +4 -4
- package/components/{p-D9aamyuM.js.map → p-BEm39SYP.js.map} +1 -1
- package/components/{p-BkK6rWZn.js → p-BYRvQ4u7.js} +4 -4
- package/components/{p-BkK6rWZn.js.map → p-BYRvQ4u7.js.map} +1 -1
- package/components/{p-D0Ba0gOA.js → p-BqYBdZ7I.js} +4 -4
- package/components/{p-D0Ba0gOA.js.map → p-BqYBdZ7I.js.map} +1 -1
- package/components/{p-Df8KgHhe.js → p-BrIid8rr.js} +3 -3
- package/components/{p-Df8KgHhe.js.map → p-BrIid8rr.js.map} +1 -1
- package/components/p-BsHlTsAN.js.map +1 -1
- package/components/{p-Npcwl1Z8.js → p-CDmCw7LX.js} +4 -4
- package/components/p-CDmCw7LX.js.map +1 -0
- package/components/{p-BQKx1tGq.js → p-CHYn9whC.js} +6 -6
- package/components/p-CHYn9whC.js.map +1 -0
- package/components/{p-CdwyUif-.js → p-CNwZh1xz.js} +5 -5
- package/components/p-CNwZh1xz.js.map +1 -0
- package/components/{p-B02xFf1P.js → p-CiEBtN9j.js} +3 -3
- package/components/{p-B02xFf1P.js.map → p-CiEBtN9j.js.map} +1 -1
- package/components/{p-Cmo_S3fO.js → p-CiZSLZTA.js} +4 -4
- package/components/{p-Cmo_S3fO.js.map → p-CiZSLZTA.js.map} +1 -1
- package/components/{p-DYC2IZEs.js → p-CmEb-mj5.js} +6 -6
- package/components/{p-DYC2IZEs.js.map → p-CmEb-mj5.js.map} +1 -1
- package/components/{p-Do29ZTL9.js → p-CppjlSaO.js} +3 -3
- package/components/{p-Do29ZTL9.js.map → p-CppjlSaO.js.map} +1 -1
- package/components/{p-D3FuyNC4.js → p-CyFUHAY1.js} +7 -7
- package/components/{p-D3FuyNC4.js.map → p-CyFUHAY1.js.map} +1 -1
- package/components/{p-B0vRPcr5.js → p-D8L5XpBP.js} +3 -3
- package/components/{p-B0vRPcr5.js.map → p-D8L5XpBP.js.map} +1 -1
- package/components/p-DH86TJ99.js +232 -0
- package/components/p-DH86TJ99.js.map +1 -0
- package/components/{p-BJLHKnwL.js → p-DVBd-54W.js} +5 -5
- package/components/{p-BJLHKnwL.js.map → p-DVBd-54W.js.map} +1 -1
- package/components/{p-CMoGgYqw.js → p-DmELCHDa.js} +3 -3
- package/components/p-DmELCHDa.js.map +1 -0
- package/components/{p-Bu0BcHwL.js → p-Du_cCBR7.js} +6 -6
- package/components/{p-Bu0BcHwL.js.map → p-Du_cCBR7.js.map} +1 -1
- package/components/{p-h6juyPoa.js → p-JJSN-gZI.js} +3 -3
- package/components/{p-h6juyPoa.js.map → p-JJSN-gZI.js.map} +1 -1
- package/components/{p-wPu4WTba.js → p-dsE158cF.js} +3 -3
- package/components/{p-wPu4WTba.js.map → p-dsE158cF.js.map} +1 -1
- package/components/{p-C0fcjlnS.js → p-eYcfeTFU.js} +3 -3
- package/components/{p-C0fcjlnS.js.map → p-eYcfeTFU.js.map} +1 -1
- package/components/{p-BSok41i-.js → p-oyeucMe6.js} +3 -3
- package/components/{p-BSok41i-.js.map → p-oyeucMe6.js.map} +1 -1
- package/dist/bellhop-core/bellhop-core.esm.js +1 -1
- package/dist/bellhop-core/bellhop-core.esm.js.map +1 -1
- package/dist/bellhop-core/bh-avatar.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-button.bh-loader-spinner.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-data-grid.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-date-picker-content.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-date-picker.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-input-text.bh-picker-menu.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-label.bh-tooltip.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-month-picker-content.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-month-picker.entry.esm.js.map +1 -1
- package/dist/bellhop-core/bh-popover.entry.esm.js.map +1 -1
- package/dist/bellhop-core/index.esm.js +1 -1
- package/dist/bellhop-core/index.esm.js.map +1 -1
- package/dist/bellhop-core/{p-Ck1gRAmI.js → p-04a00da6.entry.js} +2 -2
- package/dist/bellhop-core/p-04a00da6.entry.js.map +1 -0
- package/dist/bellhop-core/{p-bd00d5ad.entry.js → p-06b0ba5f.entry.js} +2 -2
- package/dist/bellhop-core/{p-4a8844ff.entry.js → p-0a232a85.entry.js} +2 -2
- package/dist/bellhop-core/p-0d5ce369.entry.js +13 -0
- package/dist/bellhop-core/p-0d5ce369.entry.js.map +1 -0
- package/dist/bellhop-core/{p-67956598.entry.js → p-0e773f4b.entry.js} +2 -2
- package/dist/bellhop-core/{p-df4498cd.entry.js → p-11e84742.entry.js} +2 -2
- package/dist/bellhop-core/{p-a41b3673.entry.js → p-20e65b2b.entry.js} +2 -2
- package/dist/bellhop-core/{p-a30e22f7.entry.js → p-2349cd39.entry.js} +2 -2
- package/dist/bellhop-core/{p-3a1c52a9.entry.js → p-2cc352e8.entry.js} +2 -2
- package/dist/bellhop-core/{p-defe9916.entry.js → p-31f60dac.entry.js} +2 -2
- package/dist/bellhop-core/{p-defe9916.entry.js.map → p-31f60dac.entry.js.map} +1 -1
- package/dist/bellhop-core/{p-f85a9eaa.entry.js → p-439f8477.entry.js} +2 -2
- package/dist/bellhop-core/{p-a42e8ddb.entry.js → p-4bc0e720.entry.js} +2 -2
- package/dist/bellhop-core/{p-a42e8ddb.entry.js.map → p-4bc0e720.entry.js.map} +1 -1
- package/dist/bellhop-core/{p-21bc4f77.entry.js → p-4cf74f24.entry.js} +2 -2
- package/dist/bellhop-core/p-53dbd8bd.entry.js +2 -0
- package/dist/bellhop-core/p-53dbd8bd.entry.js.map +1 -0
- package/dist/bellhop-core/p-59e4c008.entry.js +2 -0
- package/dist/bellhop-core/p-59e4c008.entry.js.map +1 -0
- package/dist/bellhop-core/{p-62235d6e.entry.js → p-5a0b2d81.entry.js} +2 -2
- package/dist/bellhop-core/{p-07c9b7fa.entry.js → p-6626f089.entry.js} +2 -2
- package/dist/bellhop-core/{p-36166900.entry.js → p-6b428841.entry.js} +2 -2
- package/dist/bellhop-core/{p-6bc81ebb.entry.js → p-6d4c6b6f.entry.js} +2 -2
- package/dist/bellhop-core/{p-c0e36166.entry.js → p-6dad737e.entry.js} +2 -2
- package/dist/bellhop-core/{p-5c4f74b8.entry.js → p-738f24c8.entry.js} +2 -2
- package/dist/bellhop-core/{p-49edd1bb.entry.js → p-7534a8d4.entry.js} +2 -2
- package/dist/bellhop-core/p-7b0a4c99.entry.js +2 -0
- package/dist/bellhop-core/{p-7a85db89.entry.js.map → p-7b0a4c99.entry.js.map} +1 -1
- package/dist/bellhop-core/{p-7b0cba50.entry.js → p-84ecaf3b.entry.js} +2 -2
- package/dist/bellhop-core/{p-DY76Ee-p.js → p-940af1e0.entry.js} +2 -2
- package/dist/bellhop-core/p-940af1e0.entry.js.map +1 -0
- package/dist/bellhop-core/p-c0dfca99.entry.js +2 -0
- package/dist/bellhop-core/{p-4e483d25.entry.js.map → p-c0dfca99.entry.js.map} +1 -1
- package/dist/bellhop-core/{p-d5bf49ab.entry.js → p-cad28e7e.entry.js} +2 -2
- package/dist/bellhop-core/{p-1540001e.entry.js → p-cb0e4e35.entry.js} +2 -2
- package/dist/bellhop-core/{p-091171da.entry.js → p-ce2aaf37.entry.js} +2 -2
- package/dist/bellhop-core/p-d64525f4.entry.js +2 -0
- package/dist/bellhop-core/p-d64525f4.entry.js.map +1 -0
- package/dist/bellhop-core/{p-a9c914ee.entry.js → p-e0f7b6d1.entry.js} +2 -2
- package/dist/bellhop-core/{p-b0dda4df.entry.js → p-e83a86d6.entry.js} +2 -2
- package/dist/bellhop-core/{p-2db7990e.entry.js → p-e96e5aa3.entry.js} +2 -2
- package/dist/bellhop-core/{p-c70d11a2.entry.js → p-ed780663.entry.js} +2 -2
- package/dist/bellhop-core/p-f30af956.entry.js +2 -0
- package/dist/bellhop-core/{p-ffb29d95.entry.js.map → p-f30af956.entry.js.map} +1 -1
- package/dist/bellhop-core/{p-0e34250c.entry.js → p-f4dd33af.entry.js} +2 -2
- package/dist/bellhop-core/{p-1be3e908.entry.js → p-fe7d5dcb.entry.js} +2 -2
- package/dist/bellhop-core/p-nAAobRRQ.js.map +1 -1
- package/dist/cjs/bellhop-core.cjs.js +1 -1
- package/dist/cjs/bellhop-core.cjs.js.map +1 -1
- package/dist/cjs/bh-accordion-item.cjs.entry.js +1 -1
- package/dist/cjs/bh-autocomplete-menu_2.cjs.entry.js +1 -1
- package/dist/cjs/bh-avatar.cjs.entry.js +1 -1
- package/dist/cjs/bh-avatar.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-button.bh-loader-spinner.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-button_2.cjs.entry.js +110 -2
- package/dist/cjs/bh-card.cjs.entry.js +1 -1
- package/dist/cjs/bh-data-grid.cjs.entry.js +132 -59
- package/dist/cjs/bh-data-grid.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-date-picker-content.cjs.entry.js +2 -2
- package/dist/cjs/bh-date-picker-content.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-date-picker.cjs.entry.js +15 -12
- package/dist/cjs/bh-date-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-date-range-picker-content.cjs.entry.js +1 -1
- package/dist/cjs/bh-date-range-picker.cjs.entry.js +1 -1
- package/dist/cjs/bh-dropdown_3.cjs.entry.js +4 -4
- package/dist/cjs/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-empty-state_3.cjs.entry.js +199 -6
- package/dist/cjs/bh-featured-icon.cjs.entry.js +1 -1
- package/dist/cjs/bh-illustrations.cjs.entry.js +3 -3
- package/dist/cjs/bh-input-autocomplete.cjs.entry.js +2 -2
- package/dist/cjs/bh-input-number.cjs.entry.js +1 -1
- package/dist/cjs/bh-input-password.cjs.entry.js +1 -1
- package/dist/cjs/bh-input-text.bh-picker-menu.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-input-text_2.cjs.entry.js +2 -2
- package/dist/cjs/bh-input-verification.cjs.entry.js +1 -1
- package/dist/cjs/bh-label.bh-tooltip.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-label_2.cjs.entry.js +104 -3
- package/dist/cjs/bh-modal-actions.cjs.entry.js +1 -1
- package/dist/cjs/bh-modal-header.cjs.entry.js +4 -4
- package/dist/cjs/bh-month-picker-content.cjs.entry.js +2 -2
- package/dist/cjs/bh-month-picker-content.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-month-picker.cjs.entry.js +2 -2
- package/dist/cjs/bh-month-picker.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-notification.cjs.entry.js +1 -1
- package/dist/cjs/bh-page-navigation-child.cjs.entry.js +1 -1
- package/dist/cjs/bh-page-navigation-multi-level_2.cjs.entry.js +3 -3
- package/dist/cjs/bh-page-navigation.cjs.entry.js +1 -1
- package/dist/cjs/bh-pie-chart.cjs.entry.js +1 -1
- package/dist/cjs/bh-popover.cjs.entry.js +14 -76
- package/dist/cjs/bh-popover.entry.cjs.js.map +1 -1
- package/dist/cjs/bh-property-switcher.cjs.entry.js +1 -1
- package/dist/cjs/bh-sidebar.cjs.entry.js +1 -1
- package/dist/cjs/bh-tab-item.cjs.entry.js +2 -2
- package/dist/cjs/bh-tabs.cjs.entry.js +1 -1
- package/dist/cjs/bh-textarea.cjs.entry.js +1 -1
- package/dist/cjs/bh-toggle.cjs.entry.js +1 -1
- package/dist/cjs/bh-trend-chart.cjs.entry.js +2 -2
- package/dist/cjs/index-DQwSUT6k.js +42 -50
- package/dist/cjs/index-DQwSUT6k.js.map +1 -1
- package/dist/cjs/index.cjs.js +0 -31
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -3
- package/dist/collection/components/bh-accordion/bh-accordion.js +1 -1
- package/dist/collection/components/bh-accordion-item/bh-accordion-item.js +1 -1
- package/dist/collection/components/bh-appbar/bh-appbar.js +2 -2
- package/dist/collection/components/bh-autocomplete-menu/bh-autocomplete-menu.js +2 -2
- package/dist/collection/components/bh-avatar/bh-avatar.css +0 -1
- package/dist/collection/components/bh-avatar/bh-avatar.js +3 -3
- package/dist/collection/components/bh-avatar-add/bh-avatar-add.js +1 -1
- package/dist/collection/components/bh-avatar-stacked/bh-avatar-stacked.js +1 -1
- package/dist/collection/components/bh-badge/bh-badge.js +3 -3
- package/dist/collection/components/bh-badge-dot/bh-badge-dot.js +2 -2
- package/dist/collection/components/bh-bar-chart/bh-bar-chart.js +3 -3
- package/dist/collection/components/bh-breadcrumbs/bh-breadcrumbs.js +2 -2
- package/dist/collection/components/bh-button/bh-button.js +7 -7
- package/dist/collection/components/bh-button/bh-button.js.map +1 -1
- package/dist/collection/components/bh-button-icon/bh-button-icon.js +3 -3
- package/dist/collection/components/bh-card/bh-card.js +1 -1
- package/dist/collection/components/bh-card-footer/bh-card-footer.js +1 -1
- package/dist/collection/components/bh-card-header/bh-card-header.js +2 -2
- package/dist/collection/components/bh-chart-tooltip/bh-chart-tooltip.js +1 -1
- package/dist/collection/components/bh-checkbox/bh-checkbox.js +1 -1
- package/dist/collection/components/bh-checkbox-group/bh-checkbox-group.js +1 -1
- package/dist/collection/components/bh-checkbox-group-item/bh-checkbox-group-item.js +2 -2
- package/dist/collection/components/bh-data-grid/bh-data-grid.css +86 -68
- package/dist/collection/components/bh-data-grid/bh-data-grid.js +132 -59
- package/dist/collection/components/bh-data-grid/bh-data-grid.js.map +1 -1
- package/dist/collection/components/bh-date-picker/bh-date-picker.css +24 -214
- package/dist/collection/components/bh-date-picker/bh-date-picker.js +22 -12
- package/dist/collection/components/bh-date-picker/bh-date-picker.js.map +1 -1
- package/dist/collection/components/bh-date-picker-content/bh-date-picker-content.css +0 -206
- package/dist/collection/components/bh-date-picker-content/bh-date-picker-content.js +7 -7
- package/dist/collection/components/bh-date-range-picker/bh-date-range-picker.js +2 -2
- package/dist/collection/components/bh-date-range-picker-content/bh-date-range-picker-content.js +4 -4
- package/dist/collection/components/bh-dropdown/bh-dropdown.js +5 -5
- package/dist/collection/components/bh-dropdown-menu/bh-dropdown-menu.js +3 -3
- package/dist/collection/components/bh-empty-state/bh-empty-state.js +2 -2
- package/dist/collection/components/bh-featured-icon/bh-featured-icon.js +4 -4
- package/dist/collection/components/bh-illustrations/bh-illustrations.js +4 -4
- package/dist/collection/components/bh-input-autocomplete/bh-input-autocomplete.js +3 -3
- package/dist/collection/components/bh-input-number/bh-input-number.js +1 -1
- package/dist/collection/components/bh-input-password/bh-input-password.js +1 -1
- package/dist/collection/components/bh-input-text/bh-input-text.js +1 -1
- package/dist/collection/components/bh-input-verification/bh-input-verification.js +3 -3
- package/dist/collection/components/bh-label/bh-label.js +1 -1
- package/dist/collection/components/bh-loader-spinner/bh-loader-spinner.js +2 -2
- package/dist/collection/components/bh-logo-box/bh-logo-box.js +2 -2
- package/dist/collection/components/bh-modal/bh-modal.js +1 -1
- package/dist/collection/components/bh-modal-actions/bh-modal-actions.js +2 -2
- package/dist/collection/components/bh-modal-header/bh-modal-header.js +4 -4
- package/dist/collection/components/bh-month-picker/bh-month-picker.css +0 -206
- package/dist/collection/components/bh-month-picker/bh-month-picker.js +2 -2
- package/dist/collection/components/bh-month-picker-content/bh-month-picker-content.css +0 -206
- package/dist/collection/components/bh-month-picker-content/bh-month-picker-content.js +5 -5
- package/dist/collection/components/bh-notification/bh-notification.js +2 -2
- package/dist/collection/components/bh-page-navigation/bh-page-navigation.js +2 -2
- package/dist/collection/components/bh-page-navigation-child/bh-page-navigation-child.js +1 -1
- package/dist/collection/components/bh-page-navigation-multi-level/bh-page-navigation-multi-level.js +3 -3
- package/dist/collection/components/bh-page-navigation-single-level/bh-page-navigation-single-level.js +1 -1
- package/dist/collection/components/bh-pagination/bh-pagination.css +122 -58
- package/dist/collection/components/bh-pagination/bh-pagination.js +74 -30
- package/dist/collection/components/bh-pagination/bh-pagination.js.map +1 -1
- package/dist/collection/components/bh-picker-menu/bh-picker-menu.css +1 -3
- package/dist/collection/components/bh-pie-chart/bh-pie-chart.js +3 -3
- package/dist/collection/components/bh-popover/bh-popover.css +77 -260
- package/dist/collection/components/bh-popover/bh-popover.js +33 -238
- package/dist/collection/components/bh-popover/bh-popover.js.map +1 -1
- package/dist/collection/components/bh-product-switcher/bh-product-switcher.js +3 -3
- package/dist/collection/components/bh-property-switcher/bh-property-switcher.js +3 -3
- package/dist/collection/components/bh-radio-button/bh-radio-button.js +1 -1
- package/dist/collection/components/bh-sidebar/bh-nav-item.js +1 -1
- package/dist/collection/components/bh-sidebar/bh-sidebar.js +4 -4
- package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.css +9 -22
- package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.js +2 -2
- package/dist/collection/components/bh-skeleton-loader/bh-skeleton-loader.js.map +1 -1
- package/dist/collection/components/bh-tab-item/bh-tab-item.js +2 -2
- package/dist/collection/components/bh-tabs/bh-tabs.js +3 -3
- package/dist/collection/components/bh-tag/bh-tag.js +3 -3
- package/dist/collection/components/bh-textarea/bh-textarea.js +2 -2
- package/dist/collection/components/bh-toggle/bh-toggle.js +2 -2
- package/dist/collection/components/bh-tooltip/bh-tooltip.js +3 -3
- package/dist/collection/components/bh-trend-chart/bh-trend-chart.js +4 -4
- package/dist/collection/index.js +1 -23
- package/dist/collection/index.js.map +1 -1
- package/dist/esm/bellhop-core.js +1 -1
- package/dist/esm/bellhop-core.js.map +1 -1
- package/dist/esm/bh-accordion-item.entry.js +1 -1
- package/dist/esm/bh-autocomplete-menu_2.entry.js +1 -1
- package/dist/esm/bh-avatar.entry.js +1 -1
- package/dist/esm/bh-avatar.entry.js.map +1 -1
- package/dist/esm/bh-button.bh-loader-spinner.entry.js.map +1 -1
- package/dist/esm/bh-button_2.entry.js +111 -3
- package/dist/esm/bh-card.entry.js +1 -1
- package/dist/esm/bh-data-grid.entry.js +132 -59
- package/dist/esm/bh-data-grid.entry.js.map +1 -1
- package/dist/esm/bh-date-picker-content.entry.js +2 -2
- package/dist/esm/bh-date-picker-content.entry.js.map +1 -1
- package/dist/esm/bh-date-picker.entry.js +16 -13
- package/dist/esm/bh-date-picker.entry.js.map +1 -1
- package/dist/esm/bh-date-range-picker-content.entry.js +1 -1
- package/dist/esm/bh-date-range-picker.entry.js +1 -1
- package/dist/esm/bh-dropdown_3.entry.js +4 -4
- package/dist/esm/bh-empty-state.bh-pagination.bh-skeleton-loader.entry.js.map +1 -1
- package/dist/esm/bh-empty-state_3.entry.js +199 -6
- package/dist/esm/bh-featured-icon.entry.js +1 -1
- package/dist/esm/bh-illustrations.entry.js +3 -3
- package/dist/esm/bh-input-autocomplete.entry.js +2 -2
- package/dist/esm/bh-input-number.entry.js +1 -1
- package/dist/esm/bh-input-password.entry.js +1 -1
- package/dist/esm/bh-input-text.bh-picker-menu.entry.js.map +1 -1
- package/dist/esm/bh-input-text_2.entry.js +2 -2
- package/dist/esm/bh-input-verification.entry.js +1 -1
- package/dist/esm/bh-label.bh-tooltip.entry.js.map +1 -1
- package/dist/esm/bh-label_2.entry.js +105 -4
- package/dist/esm/bh-modal-actions.entry.js +1 -1
- package/dist/esm/bh-modal-header.entry.js +4 -4
- package/dist/esm/bh-month-picker-content.entry.js +2 -2
- package/dist/esm/bh-month-picker-content.entry.js.map +1 -1
- package/dist/esm/bh-month-picker.entry.js +2 -2
- package/dist/esm/bh-month-picker.entry.js.map +1 -1
- package/dist/esm/bh-notification.entry.js +1 -1
- package/dist/esm/bh-page-navigation-child.entry.js +1 -1
- package/dist/esm/bh-page-navigation-multi-level_2.entry.js +3 -3
- package/dist/esm/bh-page-navigation.entry.js +1 -1
- package/dist/esm/bh-pie-chart.entry.js +1 -1
- package/dist/esm/bh-popover.entry.js +15 -77
- package/dist/esm/bh-popover.entry.js.map +1 -1
- package/dist/esm/bh-property-switcher.entry.js +1 -1
- package/dist/esm/bh-sidebar.entry.js +1 -1
- package/dist/esm/bh-tab-item.entry.js +2 -2
- package/dist/esm/bh-tabs.entry.js +1 -1
- package/dist/esm/bh-textarea.entry.js +1 -1
- package/dist/esm/bh-toggle.entry.js +1 -1
- package/dist/esm/bh-trend-chart.entry.js +2 -2
- package/dist/esm/index-nAAobRRQ.js +42 -50
- package/dist/esm/index-nAAobRRQ.js.map +1 -1
- package/dist/esm/index.js +1 -15
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/bh-date-picker/bh-date-picker.d.ts +11 -1
- package/dist/types/components/bh-pagination/bh-pagination.d.ts +7 -7
- package/dist/types/components/bh-popover/bh-popover.d.ts +9 -49
- package/dist/types/components.d.ts +43 -193
- package/dist/types/index.d.ts +13 -13
- package/hydrate/index.js +283 -297
- package/hydrate/index.mjs +283 -297
- package/llms.txt +22000 -1428
- package/package.json +1 -1
- package/components/bh-container-footer.d.ts +0 -11
- package/components/bh-container-footer.js +0 -73
- package/components/bh-container-footer.js.map +0 -1
- package/components/bh-container.d.ts +0 -11
- package/components/bh-container.js +0 -48
- package/components/bh-container.js.map +0 -1
- package/components/p-8bOZFmdg.js.map +0 -1
- package/components/p-BQKx1tGq.js.map +0 -1
- package/components/p-CMoGgYqw.js.map +0 -1
- package/components/p-CdwyUif-.js.map +0 -1
- package/components/p-Npcwl1Z8.js.map +0 -1
- package/components/p-WibqGBGu.js +0 -182
- package/components/p-WibqGBGu.js.map +0 -1
- package/dist/bellhop-core/bh-container-footer.entry.esm.js.map +0 -1
- package/dist/bellhop-core/bh-container.entry.esm.js.map +0 -1
- package/dist/bellhop-core/p-233540f9.entry.js +0 -13
- package/dist/bellhop-core/p-233540f9.entry.js.map +0 -1
- package/dist/bellhop-core/p-3194a87d.entry.js +0 -2
- package/dist/bellhop-core/p-3194a87d.entry.js.map +0 -1
- package/dist/bellhop-core/p-43c41dfb.entry.js +0 -2
- package/dist/bellhop-core/p-43c41dfb.entry.js.map +0 -1
- package/dist/bellhop-core/p-4e483d25.entry.js +0 -2
- package/dist/bellhop-core/p-5514d7fb.entry.js +0 -2
- package/dist/bellhop-core/p-5514d7fb.entry.js.map +0 -1
- package/dist/bellhop-core/p-7a85db89.entry.js +0 -2
- package/dist/bellhop-core/p-80e07b3d.entry.js +0 -2
- package/dist/bellhop-core/p-80e07b3d.entry.js.map +0 -1
- package/dist/bellhop-core/p-8962e1a6.entry.js +0 -2
- package/dist/bellhop-core/p-8962e1a6.entry.js.map +0 -1
- package/dist/bellhop-core/p-CSYwm_Ke.js +0 -2
- package/dist/bellhop-core/p-CSYwm_Ke.js.map +0 -1
- package/dist/bellhop-core/p-Ck1gRAmI.js.map +0 -1
- package/dist/bellhop-core/p-DY76Ee-p.js.map +0 -1
- package/dist/bellhop-core/p-b878539a.entry.js +0 -2
- package/dist/bellhop-core/p-b878539a.entry.js.map +0 -1
- package/dist/bellhop-core/p-c33f6e73.entry.js +0 -2
- package/dist/bellhop-core/p-c33f6e73.entry.js.map +0 -1
- package/dist/bellhop-core/p-ffb29d95.entry.js +0 -2
- package/dist/cjs/bh-button-DD0c0ODJ.js +0 -117
- package/dist/cjs/bh-button-DD0c0ODJ.js.map +0 -1
- package/dist/cjs/bh-container-footer.cjs.entry.js +0 -38
- package/dist/cjs/bh-container-footer.entry.cjs.js.map +0 -1
- package/dist/cjs/bh-container.cjs.entry.js +0 -26
- package/dist/cjs/bh-container.entry.cjs.js.map +0 -1
- package/dist/cjs/bh-label-MpXjm9k0.js +0 -110
- package/dist/cjs/bh-label-MpXjm9k0.js.map +0 -1
- package/dist/cjs/bh-pagination-CgER63yz.js +0 -152
- package/dist/cjs/bh-pagination-CgER63yz.js.map +0 -1
- package/dist/collection/components/bh-container/bh-container.css +0 -21
- package/dist/collection/components/bh-container/bh-container.js +0 -51
- package/dist/collection/components/bh-container/bh-container.js.map +0 -1
- package/dist/collection/components/bh-container-footer/bh-container-footer.css +0 -22
- package/dist/collection/components/bh-container-footer/bh-container-footer.js +0 -106
- package/dist/collection/components/bh-container-footer/bh-container-footer.js.map +0 -1
- package/dist/esm/bh-button-ImGVvXaj.js +0 -115
- package/dist/esm/bh-button-ImGVvXaj.js.map +0 -1
- package/dist/esm/bh-container-footer.entry.js +0 -36
- package/dist/esm/bh-container-footer.entry.js.map +0 -1
- package/dist/esm/bh-container.entry.js +0 -24
- package/dist/esm/bh-container.entry.js.map +0 -1
- package/dist/esm/bh-label-PLT7t4We.js +0 -108
- package/dist/esm/bh-label-PLT7t4We.js.map +0 -1
- package/dist/esm/bh-pagination-CUeRSYsV.js +0 -150
- package/dist/esm/bh-pagination-CUeRSYsV.js.map +0 -1
- package/dist/types/components/bh-container/bh-container.d.ts +0 -7
- package/dist/types/components/bh-container-footer/bh-container-footer.d.ts +0 -18
- /package/dist/bellhop-core/{p-bd00d5ad.entry.js.map → p-06b0ba5f.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-4a8844ff.entry.js.map → p-0a232a85.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-67956598.entry.js.map → p-0e773f4b.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-df4498cd.entry.js.map → p-11e84742.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-a41b3673.entry.js.map → p-20e65b2b.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-a30e22f7.entry.js.map → p-2349cd39.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-3a1c52a9.entry.js.map → p-2cc352e8.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-f85a9eaa.entry.js.map → p-439f8477.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-21bc4f77.entry.js.map → p-4cf74f24.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-62235d6e.entry.js.map → p-5a0b2d81.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-07c9b7fa.entry.js.map → p-6626f089.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-36166900.entry.js.map → p-6b428841.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-6bc81ebb.entry.js.map → p-6d4c6b6f.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-c0e36166.entry.js.map → p-6dad737e.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-5c4f74b8.entry.js.map → p-738f24c8.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-49edd1bb.entry.js.map → p-7534a8d4.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-7b0cba50.entry.js.map → p-84ecaf3b.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-d5bf49ab.entry.js.map → p-cad28e7e.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-1540001e.entry.js.map → p-cb0e4e35.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-091171da.entry.js.map → p-ce2aaf37.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-a9c914ee.entry.js.map → p-e0f7b6d1.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-b0dda4df.entry.js.map → p-e83a86d6.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-2db7990e.entry.js.map → p-e96e5aa3.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-c70d11a2.entry.js.map → p-ed780663.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-0e34250c.entry.js.map → p-f4dd33af.entry.js.map} +0 -0
- /package/dist/bellhop-core/{p-1be3e908.entry.js.map → p-fe7d5dcb.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bh-date-picker-content.entry.esm.js","sources":["src/components/bh-date-picker-content/bh-date-picker-content.css?tag=bh-date-picker-content&encapsulation=shadow","src/components/bh-date-picker-content/bh-date-picker-content.tsx"],"sourcesContent":["@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Content area - reusable calendar content */\n.date-picker-content {\n width: 100%;\n font-family: var(--font-inter);\n display: flex;\n flex-direction: column;\n}\n\n/* Month Navigation */\n.month-navigation {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--spacing-sm);\n padding: var(--spacing-md);\n}\n\n/* Inline Month Picker - constrain to container */\n.month-picker-inline {\n flex: 1;\n overflow: hidden;\n max-height: 270px;\n animation: fadeIn 150ms ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.month-picker-inline.animate-fade-out {\n animation: fadeOut 150ms ease-out;\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-10px);\n }\n}\n\n/* Calendar Grid */\n.calendar-grid {\n padding: 0 var(--spacing-md) var(--spacing-md);\n flex: 1;\n}\n\n.day-names {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n width: 280px;\n gap: 0;\n margin-bottom: var(--spacing-sm);\n}\n\n.day-name {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n color: var(--color-neutral-500);\n}\n\n.date-cells {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n width: 280px;\n row-gap: var(--spacing-xs, 4px);\n column-gap: 0;\n justify-items: center;\n align-items: center;\n}\n\n/* Calendar Cell States */\n.calendar-cell {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n border-radius: var(--radius-full);\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n cursor: pointer;\n transition: all var(--animation-duration-fast, 0.1s) var(--animation-easing-ease, ease);\n}\n\n.calendar-cell.other-month .date-number {\n color: var(--color-neutral-400);\n}\n\n.calendar-cell.other-month.disabled .date-number {\n color: var(--color-neutral-300);\n}\n\n.calendar-cell.selectable .date-number {\n color: var(--color-neutral-500);\n}\n\n.calendar-cell.selectable:hover {\n background: var(--color-neutral-50);\n}\n\n.calendar-cell.selectable:hover .date-number {\n color: var(--color-neutral-800);\n}\n\n.calendar-cell.today {\n border: 2px solid var(--color-brand-600);\n}\n\n.calendar-cell.today .date-number {\n color: var(--color-neutral-500);\n}\n\n.calendar-cell.today:hover {\n background: var(--color-brand-100);\n}\n\n.calendar-cell.today:hover .date-number {\n color: var(--color-brand-600);\n}\n\n.calendar-cell.selected {\n background: var(--color-brand-600);\n}\n\n.calendar-cell.selected .date-number {\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n}\n\n.calendar-cell.selected:hover {\n background: var(--color-brand-800);\n}\n\n.calendar-cell.selected:hover .date-number {\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n}\n\n/* Range states - in-range background */\n.calendar-cell.in-range {\n background: var(--color-neutral-100);\n border-radius: 0;\n position: relative;\n}\n\n.calendar-cell.in-range .date-number {\n color: var(--color-neutral-800);\n font-weight: var(--weight-medium);\n}\n\n.calendar-cell.in-range:hover {\n background: var(--color-neutral-100);\n}\n\n.calendar-cell.in-range:hover .date-number {\n background: var(--color-neutral-200);\n border-radius: var(--radius-full);\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Range start and end styling */\n.calendar-cell.range-start,\n.calendar-cell.range-end {\n position: relative;\n}\n\n.calendar-cell.range-start .date-number,\n.calendar-cell.range-end .date-number {\n background: var(--color-brand-600);\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n border-radius: var(--radius-full);\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.calendar-cell.range-start:hover .date-number,\n.calendar-cell.range-start.selectable:hover .date-number,\n.calendar-cell.range-end:hover .date-number,\n.calendar-cell.range-end.selectable:hover .date-number {\n background: var(--color-brand-800);\n color: var(--color-white);\n}\n\n/* Range start - extend background to the right */\n.calendar-cell.range-start {\n background: transparent;\n}\n\n.calendar-cell.range-start::after {\n content: '';\n position: absolute;\n left: 50%;\n top: 0;\n width: 50%;\n height: 100%;\n background: var(--color-neutral-100);\n border-radius: var(--radius-full) 0 0 var(--radius-full);\n z-index: 0;\n}\n\n.calendar-cell.range-start:hover::after,\n.calendar-cell.range-start.selectable:hover::after {\n background: var(--color-neutral-200);\n}\n\n/* Range end - extend background to the left */\n.calendar-cell.range-end {\n background: transparent;\n}\n\n.calendar-cell.range-end::after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n width: 50%;\n height: 100%;\n background: var(--color-neutral-100);\n border-radius: 0 var(--radius-full) var(--radius-full) 0;\n z-index: 0;\n}\n\n.calendar-cell.range-end:hover::after,\n.calendar-cell.range-end.selectable:hover::after {\n background: var(--color-neutral-200);\n}\n\n/* When both start and end are the same day */\n.calendar-cell.range-start.range-end {\n background: transparent;\n}\n\n.calendar-cell.range-start.range-end::after {\n display: none;\n}\n\n.calendar-cell.range-start.range-end .date-number {\n border-radius: var(--radius-full);\n}\n\n/* Range start without end (first selection only) */\n.calendar-cell.range-start:not(.in-range):not(:has(~ .range-end))::after {\n display: none;\n}\n\n/* Row start/end rounding for in-range cells */\n.calendar-cell.in-range:nth-child(7n+1) {\n border-top-left-radius: var(--radius-full);\n border-bottom-left-radius: var(--radius-full);\n}\n\n.calendar-cell.in-range:nth-child(7n) {\n border-top-right-radius: var(--radius-full);\n border-bottom-right-radius: var(--radius-full);\n}\n\n/* Range start at end of row */\n.calendar-cell.range-start:nth-child(7n)::after {\n display: none;\n}\n\n/* Range end at start of row */\n.calendar-cell.range-end:nth-child(7n+1)::after {\n display: none;\n}\n\n/* Today in range */\n.calendar-cell.today.in-range {\n background: var(--color-brand-50);\n}\n\n.calendar-cell.today.in-range .date-number {\n color: var(--color-brand-600);\n font-weight: var(--weight-medium);\n background: transparent;\n border: 2px solid var(--color-brand-600);\n}\n\n.calendar-cell.today.in-range:hover {\n background: var(--color-brand-100);\n}\n\n/* Today as range start/end */\n.calendar-cell.today.range-start .date-number,\n.calendar-cell.today.range-end .date-number {\n background: var(--color-brand-600);\n color: var(--color-white);\n border: none;\n}\n\n.calendar-cell.disabled {\n cursor: not-allowed;\n}\n\n.calendar-cell.disabled .date-number {\n color: var(--color-neutral-300);\n}\n\n.date-number {\n position: relative;\n z-index: 1;\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { MonthYear } from '../bh-month-picker-content/bh-month-picker-content';\n\nexport interface SelectedDate {\n year: number;\n month: number; // 0-11\n day: number; // 1-31\n}\n\nexport interface DisabledDate {\n year: number;\n month: number;\n day: number;\n}\n\ninterface CalendarCell {\n day: number;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isDisabled: boolean;\n isRangeStart: boolean;\n isRangeEnd: boolean;\n isInRange: boolean;\n date: Date;\n}\n\n@Component({\n tag: 'bh-date-picker-content',\n styleUrl: 'bh-date-picker-content.css',\n shadow: true,\n})\nexport class BhDatePickerContent {\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled dates\n */\n @Prop() disabledDates: DisabledDate[] = [];\n\n /**\n * Initial month to display (0-11)\n */\n @Prop() initialMonth?: number;\n\n /**\n * Initial year to display\n */\n @Prop() initialYear?: number;\n\n /**\n * Display month (for external control, 0-11)\n */\n @Prop() displayMonth?: number;\n\n /**\n * Display year (for external control)\n */\n @Prop() displayYear?: number;\n\n /**\n * Range start date (for date range picker)\n */\n @Prop() rangeStart?: SelectedDate;\n\n /**\n * Range end date (for date range picker)\n */\n @Prop() rangeEnd?: SelectedDate;\n\n /**\n * Currently selected value\n */\n @Prop() value?: SelectedDate;\n\n /**\n * Whether to show days from other months\n */\n @Prop() showOtherMonthDays: boolean = true;\n\n @State() selectedDate: SelectedDate | null = null;\n @State() currentMonth: number = new Date().getMonth();\n @State() currentYear: number = new Date().getFullYear();\n @State() isMonthDropdownOpen: boolean = false;\n @State() isMonthDropdownClosing: boolean = false;\n\n private today = new Date();\n private monthNames = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n ];\n private dayNames = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n\n /**\n * Event emitted when value changes\n */\n @Event({ bubbles: true, composed: true }) bhChange!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when a date is selected\n */\n @Event({ bubbles: true, composed: true }) bhDateSelect!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when month changes\n */\n @Event({ bubbles: true, composed: true }) bhMonthChange!: EventEmitter<{ month: number; year: number }>;\n\n /**\n * Event emitted when month/year changes\n */\n @Event({ bubbles: true, composed: true }) bhMonthYearChange!: EventEmitter<{ month: number; year: number }>;\n\n @Watch('value')\n handleValueChange(newValue: SelectedDate | undefined) {\n if (newValue) {\n this.selectedDate = newValue;\n if (this.displayMonth === undefined && this.displayYear === undefined) {\n this.currentMonth = newValue.month;\n this.currentYear = newValue.year;\n }\n } else {\n this.selectedDate = null;\n }\n }\n\n @Watch('displayMonth')\n handleDisplayMonthChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.currentMonth = newValue;\n }\n }\n\n @Watch('displayYear')\n handleDisplayYearChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.currentYear = newValue;\n }\n }\n\n componentWillLoad() {\n // Initialize month/year\n if (this.displayMonth !== undefined) {\n this.currentMonth = this.displayMonth;\n } else if (this.initialMonth !== undefined) {\n this.currentMonth = this.initialMonth;\n } else {\n this.currentMonth = this.today.getMonth();\n }\n\n if (this.displayYear !== undefined) {\n this.currentYear = this.displayYear;\n } else if (this.initialYear !== undefined) {\n this.currentYear = this.initialYear;\n } else {\n this.currentYear = this.today.getFullYear();\n }\n\n // Initialize selected date\n if (this.value) {\n this.selectedDate = this.value;\n }\n }\n\n private get isInRangeMode(): boolean {\n return this.rangeStart !== undefined || this.rangeEnd !== undefined;\n }\n\n private get calendarCells(): CalendarCell[] {\n const cells: CalendarCell[] = [];\n const firstDay = new Date(this.currentYear, this.currentMonth, 1);\n const lastDay = new Date(this.currentYear, this.currentMonth + 1, 0);\n\n // Get the day of the week for the first day (0 = Sunday, 6 = Saturday)\n let firstDayOfWeek = firstDay.getDay();\n // Convert to Monday start (0 = Monday, 6 = Sunday)\n firstDayOfWeek = firstDayOfWeek === 0 ? 6 : firstDayOfWeek - 1;\n\n // Add cells for days before the first of the month\n if (this.showOtherMonthDays) {\n for (let i = 0; i < firstDayOfWeek; i++) {\n const prevMonthLastDay = new Date(this.currentYear, this.currentMonth, -i);\n cells.unshift(this.createCell(prevMonthLastDay, false));\n }\n } else {\n for (let i = 0; i < firstDayOfWeek; i++) {\n cells.unshift({\n day: 0,\n isCurrentMonth: false,\n isToday: false,\n isSelected: false,\n isDisabled: true,\n isRangeStart: false,\n isRangeEnd: false,\n isInRange: false,\n date: new Date(this.currentYear, this.currentMonth, -i),\n });\n }\n }\n\n // Add cells for current month\n for (let day = 1; day <= lastDay.getDate(); day++) {\n const date = new Date(this.currentYear, this.currentMonth, day);\n cells.push(this.createCell(date, true));\n }\n\n // Add next month days to fill the grid\n if (this.showOtherMonthDays) {\n const totalCells = cells.length;\n const remainingCells = 42 - totalCells;\n\n for (let day = 1; day <= remainingCells; day++) {\n const nextMonthDay = new Date(this.currentYear, this.currentMonth + 1, day);\n cells.push(this.createCell(nextMonthDay, false));\n\n if (cells.length % 7 === 0) break;\n }\n }\n\n return cells;\n }\n\n private createCell(date: Date, isCurrentMonth: boolean): CalendarCell {\n const isRangeStart = this.isDateRangeStart(date);\n const isRangeEnd = this.isDateRangeEnd(date);\n const isInRange = this.isDateInRange(date);\n\n return {\n day: date.getDate(),\n isCurrentMonth,\n isToday: this.isSameDay(date, this.today),\n isSelected: this.isDateSelected(date),\n isDisabled: !isCurrentMonth || this.isDateDisabled(date),\n isRangeStart,\n isRangeEnd,\n isInRange,\n date,\n };\n }\n\n private isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n private isDateDisabled(date: Date): boolean {\n if (!this.disabledDates || !Array.isArray(this.disabledDates)) {\n return false;\n }\n const year = date.getFullYear();\n const month = date.getMonth();\n const day = date.getDate();\n return this.disabledDates.some(\n disabled => disabled.year === year && disabled.month === month && disabled.day === day\n );\n }\n\n private isDateSelected(date: Date): boolean {\n if (this.isInRangeMode) return false;\n if (!this.selectedDate) return false;\n\n return (\n date.getFullYear() === this.selectedDate.year &&\n date.getMonth() === this.selectedDate.month &&\n date.getDate() === this.selectedDate.day\n );\n }\n\n private isDateRangeStart(date: Date): boolean {\n if (!this.rangeStart) return false;\n\n return (\n date.getFullYear() === this.rangeStart.year &&\n date.getMonth() === this.rangeStart.month &&\n date.getDate() === this.rangeStart.day\n );\n }\n\n private isDateRangeEnd(date: Date): boolean {\n if (!this.rangeEnd) return false;\n\n return (\n date.getFullYear() === this.rangeEnd.year &&\n date.getMonth() === this.rangeEnd.month &&\n date.getDate() === this.rangeEnd.day\n );\n }\n\n private isDateInRange(date: Date): boolean {\n if (!this.rangeStart || !this.rangeEnd) return false;\n\n const dateTime = date.getTime();\n const startTime = new Date(this.rangeStart.year, this.rangeStart.month, this.rangeStart.day).getTime();\n const endTime = new Date(this.rangeEnd.year, this.rangeEnd.month, this.rangeEnd.day).getTime();\n\n return dateTime > startTime && dateTime < endTime;\n }\n\n private handleCellClick(cell: CalendarCell) {\n if (cell.isDisabled || this.disabled || !cell.isCurrentMonth) {\n return;\n }\n\n const newSelectedDate: SelectedDate = {\n year: cell.date.getFullYear(),\n month: cell.date.getMonth(),\n day: cell.date.getDate(),\n };\n\n // If we're in range mode, let the parent handle it\n if (this.isInRangeMode) {\n this.bhChange.emit(newSelectedDate);\n this.bhDateSelect.emit(newSelectedDate);\n return;\n }\n\n // Toggle selection\n const isCurrentlySelected = this.selectedDate &&\n this.selectedDate.year === newSelectedDate.year &&\n this.selectedDate.month === newSelectedDate.month &&\n this.selectedDate.day === newSelectedDate.day;\n\n if (isCurrentlySelected) {\n this.selectedDate = null;\n this.bhChange.emit(null);\n this.bhDateSelect.emit(null);\n } else {\n this.selectedDate = newSelectedDate;\n this.bhChange.emit(newSelectedDate);\n this.bhDateSelect.emit(newSelectedDate);\n }\n }\n\n private handleMonthDropdownToggle = () => {\n if (this.isMonthDropdownOpen) {\n this.closeMonthDropdown();\n } else {\n this.isMonthDropdownOpen = true;\n }\n };\n\n private closeMonthDropdown() {\n this.isMonthDropdownClosing = true;\n setTimeout(() => {\n this.isMonthDropdownOpen = false;\n this.isMonthDropdownClosing = false;\n }, 150);\n }\n\n private handleMonthYearSelect = (event: CustomEvent<MonthYear>) => {\n this.closeMonthDropdown();\n\n setTimeout(() => {\n const monthYear = event.detail;\n this.currentMonth = monthYear.month;\n this.currentYear = monthYear.year;\n this.bhMonthChange.emit({ month: monthYear.month, year: monthYear.year });\n this.bhMonthYearChange.emit({ month: monthYear.month, year: monthYear.year });\n }, 100);\n };\n\n private handlePreviousMonth = () => {\n if (this.disabled) return;\n\n let newMonth = this.currentMonth - 1;\n let newYear = this.currentYear;\n\n if (newMonth < 0) {\n newMonth = 11;\n newYear = this.currentYear - 1;\n }\n\n if (newYear >= this.minYear) {\n this.currentMonth = newMonth;\n this.currentYear = newYear;\n this.bhMonthChange.emit({ month: newMonth, year: newYear });\n this.bhMonthYearChange.emit({ month: newMonth, year: newYear });\n }\n };\n\n private handleNextMonth = () => {\n if (this.disabled) return;\n\n let newMonth = this.currentMonth + 1;\n let newYear = this.currentYear;\n\n if (newMonth > 11) {\n newMonth = 0;\n newYear = this.currentYear + 1;\n }\n\n if (newYear <= this.maxYear) {\n this.currentMonth = newMonth;\n this.currentYear = newYear;\n this.bhMonthChange.emit({ month: newMonth, year: newYear });\n this.bhMonthYearChange.emit({ month: newMonth, year: newYear });\n }\n };\n\n private getCellClass(cell: CalendarCell): string {\n const classes = ['calendar-cell'];\n\n if (!cell.isCurrentMonth) classes.push('other-month');\n if (cell.isToday) classes.push('today');\n if (cell.isRangeStart) classes.push('range-start');\n if (cell.isRangeEnd) classes.push('range-end');\n if (cell.isInRange) classes.push('in-range');\n if (cell.isSelected) classes.push('selected');\n if (cell.isDisabled) classes.push('disabled');\n else if (cell.isCurrentMonth) classes.push('selectable');\n\n return classes.join(' ');\n }\n\n render() {\n const currentMonthYear = `${this.monthNames[this.currentMonth]} ${this.currentYear}`;\n\n return (\n <Host>\n <div class=\"date-picker-content\">\n {/* Month Navigation */}\n <div class=\"month-navigation\">\n <bh-button-icon\n hierarchy=\"tertiary\"\n size=\"md\"\n iconName=\"chevron_left\"\n onBhClick={this.handlePreviousMonth}\n disabled={this.disabled || (this.currentYear === this.minYear && this.currentMonth === 0)}\n ></bh-button-icon>\n\n <bh-button\n hierarchy=\"tertiary\"\n size=\"sm\"\n label={currentMonthYear}\n icon=\"trailing\"\n iconName=\"expand_more\"\n onBhClick={this.handleMonthDropdownToggle}\n ></bh-button>\n\n <bh-button-icon\n hierarchy=\"tertiary\"\n size=\"md\"\n iconName=\"chevron_right\"\n onBhClick={this.handleNextMonth}\n disabled={this.disabled || (this.currentYear === this.maxYear && this.currentMonth === 11)}\n ></bh-button-icon>\n </div>\n\n {/* Calendar Grid or Month Picker */}\n {!this.isMonthDropdownOpen && (\n <div class=\"calendar-grid\">\n {/* Day Names Header */}\n <div class=\"day-names\">\n {this.dayNames.map(dayName => (\n <div key={dayName} class=\"day-name\">{dayName}</div>\n ))}\n </div>\n\n {/* Date Cells */}\n <div class=\"date-cells\">\n {this.calendarCells.map((cell, index) => (\n <div\n key={index}\n class={this.getCellClass(cell)}\n onClick={() => this.handleCellClick(cell)}\n >\n <span class=\"date-number\">{cell.day === 0 ? '' : cell.day}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Month Picker Content */}\n {(this.isMonthDropdownOpen || this.isMonthDropdownClosing) && (\n <div class={`month-picker-inline ${this.isMonthDropdownClosing ? 'animate-fade-out' : ''}`}>\n <bh-month-picker-content\n scrollable={true}\n height=\"275px\"\n selectedMonth={this.currentMonth}\n selectedYear={this.currentYear}\n onBhChange={this.handleMonthYearSelect}\n minYear={this.minYear}\n maxYear={this.maxYear}\n ></bh-month-picker-content>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bh-date-picker-content.entry.esm.js","sources":["src/components/bh-date-picker-content/bh-date-picker-content.css?tag=bh-date-picker-content&encapsulation=shadow","src/components/bh-date-picker-content/bh-date-picker-content.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n/* Content area - reusable calendar content */\n.date-picker-content {\n width: 100%;\n font-family: var(--font-inter);\n display: flex;\n flex-direction: column;\n}\n\n/* Month Navigation */\n.month-navigation {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: var(--spacing-sm);\n padding: var(--spacing-md);\n}\n\n/* Inline Month Picker - constrain to container */\n.month-picker-inline {\n flex: 1;\n overflow: hidden;\n max-height: 270px;\n animation: fadeIn 150ms ease-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.month-picker-inline.animate-fade-out {\n animation: fadeOut 150ms ease-out;\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-10px);\n }\n}\n\n/* Calendar Grid */\n.calendar-grid {\n padding: 0 var(--spacing-md) var(--spacing-md);\n flex: 1;\n}\n\n.day-names {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n width: 280px;\n gap: 0;\n margin-bottom: var(--spacing-sm);\n}\n\n.day-name {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n color: var(--color-neutral-500);\n}\n\n.date-cells {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n width: 280px;\n row-gap: var(--spacing-xs, 4px);\n column-gap: 0;\n justify-items: center;\n align-items: center;\n}\n\n/* Calendar Cell States */\n.calendar-cell {\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n border-radius: var(--radius-full);\n font-family: var(--font-inter);\n font-weight: var(--weight-medium);\n font-size: var(--text-sm-size);\n line-height: var(--text-sm-line);\n cursor: pointer;\n transition: all var(--animation-duration-fast, 0.1s) var(--animation-easing-ease, ease);\n}\n\n.calendar-cell.other-month .date-number {\n color: var(--color-neutral-400);\n}\n\n.calendar-cell.other-month.disabled .date-number {\n color: var(--color-neutral-300);\n}\n\n.calendar-cell.selectable .date-number {\n color: var(--color-neutral-500);\n}\n\n.calendar-cell.selectable:hover {\n background: var(--color-neutral-50);\n}\n\n.calendar-cell.selectable:hover .date-number {\n color: var(--color-neutral-800);\n}\n\n.calendar-cell.today {\n border: 2px solid var(--color-brand-600);\n}\n\n.calendar-cell.today .date-number {\n color: var(--color-neutral-500);\n}\n\n.calendar-cell.today:hover {\n background: var(--color-brand-100);\n}\n\n.calendar-cell.today:hover .date-number {\n color: var(--color-brand-600);\n}\n\n.calendar-cell.selected {\n background: var(--color-brand-600);\n}\n\n.calendar-cell.selected .date-number {\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n}\n\n.calendar-cell.selected:hover {\n background: var(--color-brand-800);\n}\n\n.calendar-cell.selected:hover .date-number {\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n}\n\n/* Range states - in-range background */\n.calendar-cell.in-range {\n background: var(--color-neutral-100);\n border-radius: 0;\n position: relative;\n}\n\n.calendar-cell.in-range .date-number {\n color: var(--color-neutral-800);\n font-weight: var(--weight-medium);\n}\n\n.calendar-cell.in-range:hover {\n background: var(--color-neutral-100);\n}\n\n.calendar-cell.in-range:hover .date-number {\n background: var(--color-neutral-200);\n border-radius: var(--radius-full);\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Range start and end styling */\n.calendar-cell.range-start,\n.calendar-cell.range-end {\n position: relative;\n}\n\n.calendar-cell.range-start .date-number,\n.calendar-cell.range-end .date-number {\n background: var(--color-brand-600);\n color: var(--color-white);\n font-weight: var(--weight-semibold);\n border-radius: var(--radius-full);\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.calendar-cell.range-start:hover .date-number,\n.calendar-cell.range-start.selectable:hover .date-number,\n.calendar-cell.range-end:hover .date-number,\n.calendar-cell.range-end.selectable:hover .date-number {\n background: var(--color-brand-800);\n color: var(--color-white);\n}\n\n/* Range start - extend background to the right */\n.calendar-cell.range-start {\n background: transparent;\n}\n\n.calendar-cell.range-start::after {\n content: '';\n position: absolute;\n left: 50%;\n top: 0;\n width: 50%;\n height: 100%;\n background: var(--color-neutral-100);\n border-radius: var(--radius-full) 0 0 var(--radius-full);\n z-index: 0;\n}\n\n.calendar-cell.range-start:hover::after,\n.calendar-cell.range-start.selectable:hover::after {\n background: var(--color-neutral-200);\n}\n\n/* Range end - extend background to the left */\n.calendar-cell.range-end {\n background: transparent;\n}\n\n.calendar-cell.range-end::after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n width: 50%;\n height: 100%;\n background: var(--color-neutral-100);\n border-radius: 0 var(--radius-full) var(--radius-full) 0;\n z-index: 0;\n}\n\n.calendar-cell.range-end:hover::after,\n.calendar-cell.range-end.selectable:hover::after {\n background: var(--color-neutral-200);\n}\n\n/* When both start and end are the same day */\n.calendar-cell.range-start.range-end {\n background: transparent;\n}\n\n.calendar-cell.range-start.range-end::after {\n display: none;\n}\n\n.calendar-cell.range-start.range-end .date-number {\n border-radius: var(--radius-full);\n}\n\n/* Range start without end (first selection only) */\n.calendar-cell.range-start:not(.in-range):not(:has(~ .range-end))::after {\n display: none;\n}\n\n/* Row start/end rounding for in-range cells */\n.calendar-cell.in-range:nth-child(7n+1) {\n border-top-left-radius: var(--radius-full);\n border-bottom-left-radius: var(--radius-full);\n}\n\n.calendar-cell.in-range:nth-child(7n) {\n border-top-right-radius: var(--radius-full);\n border-bottom-right-radius: var(--radius-full);\n}\n\n/* Range start at end of row */\n.calendar-cell.range-start:nth-child(7n)::after {\n display: none;\n}\n\n/* Range end at start of row */\n.calendar-cell.range-end:nth-child(7n+1)::after {\n display: none;\n}\n\n/* Today in range */\n.calendar-cell.today.in-range {\n background: var(--color-brand-50);\n}\n\n.calendar-cell.today.in-range .date-number {\n color: var(--color-brand-600);\n font-weight: var(--weight-medium);\n background: transparent;\n border: 2px solid var(--color-brand-600);\n}\n\n.calendar-cell.today.in-range:hover {\n background: var(--color-brand-100);\n}\n\n/* Today as range start/end */\n.calendar-cell.today.range-start .date-number,\n.calendar-cell.today.range-end .date-number {\n background: var(--color-brand-600);\n color: var(--color-white);\n border: none;\n}\n\n.calendar-cell.disabled {\n cursor: not-allowed;\n}\n\n.calendar-cell.disabled .date-number {\n color: var(--color-neutral-300);\n}\n\n.date-number {\n position: relative;\n z-index: 1;\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { MonthYear } from '../bh-month-picker-content/bh-month-picker-content';\n\nexport interface SelectedDate {\n year: number;\n month: number; // 0-11\n day: number; // 1-31\n}\n\nexport interface DisabledDate {\n year: number;\n month: number;\n day: number;\n}\n\ninterface CalendarCell {\n day: number;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n isDisabled: boolean;\n isRangeStart: boolean;\n isRangeEnd: boolean;\n isInRange: boolean;\n date: Date;\n}\n\n@Component({\n tag: 'bh-date-picker-content',\n styleUrl: 'bh-date-picker-content.css',\n shadow: true,\n})\nexport class BhDatePickerContent {\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled dates\n */\n @Prop() disabledDates: DisabledDate[] = [];\n\n /**\n * Initial month to display (0-11)\n */\n @Prop() initialMonth?: number;\n\n /**\n * Initial year to display\n */\n @Prop() initialYear?: number;\n\n /**\n * Display month (for external control, 0-11)\n */\n @Prop() displayMonth?: number;\n\n /**\n * Display year (for external control)\n */\n @Prop() displayYear?: number;\n\n /**\n * Range start date (for date range picker)\n */\n @Prop() rangeStart?: SelectedDate;\n\n /**\n * Range end date (for date range picker)\n */\n @Prop() rangeEnd?: SelectedDate;\n\n /**\n * Currently selected value\n */\n @Prop() value?: SelectedDate;\n\n /**\n * Whether to show days from other months\n */\n @Prop() showOtherMonthDays: boolean = true;\n\n @State() selectedDate: SelectedDate | null = null;\n @State() currentMonth: number = new Date().getMonth();\n @State() currentYear: number = new Date().getFullYear();\n @State() isMonthDropdownOpen: boolean = false;\n @State() isMonthDropdownClosing: boolean = false;\n\n private today = new Date();\n private monthNames = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n ];\n private dayNames = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\n\n /**\n * Event emitted when value changes\n */\n @Event({ bubbles: true, composed: true }) bhChange!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when a date is selected\n */\n @Event({ bubbles: true, composed: true }) bhDateSelect!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when month changes\n */\n @Event({ bubbles: true, composed: true }) bhMonthChange!: EventEmitter<{ month: number; year: number }>;\n\n /**\n * Event emitted when month/year changes\n */\n @Event({ bubbles: true, composed: true }) bhMonthYearChange!: EventEmitter<{ month: number; year: number }>;\n\n @Watch('value')\n handleValueChange(newValue: SelectedDate | undefined) {\n if (newValue) {\n this.selectedDate = newValue;\n if (this.displayMonth === undefined && this.displayYear === undefined) {\n this.currentMonth = newValue.month;\n this.currentYear = newValue.year;\n }\n } else {\n this.selectedDate = null;\n }\n }\n\n @Watch('displayMonth')\n handleDisplayMonthChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.currentMonth = newValue;\n }\n }\n\n @Watch('displayYear')\n handleDisplayYearChange(newValue: number | undefined) {\n if (newValue !== undefined) {\n this.currentYear = newValue;\n }\n }\n\n componentWillLoad() {\n // Initialize month/year\n if (this.displayMonth !== undefined) {\n this.currentMonth = this.displayMonth;\n } else if (this.initialMonth !== undefined) {\n this.currentMonth = this.initialMonth;\n } else {\n this.currentMonth = this.today.getMonth();\n }\n\n if (this.displayYear !== undefined) {\n this.currentYear = this.displayYear;\n } else if (this.initialYear !== undefined) {\n this.currentYear = this.initialYear;\n } else {\n this.currentYear = this.today.getFullYear();\n }\n\n // Initialize selected date\n if (this.value) {\n this.selectedDate = this.value;\n }\n }\n\n private get isInRangeMode(): boolean {\n return this.rangeStart !== undefined || this.rangeEnd !== undefined;\n }\n\n private get calendarCells(): CalendarCell[] {\n const cells: CalendarCell[] = [];\n const firstDay = new Date(this.currentYear, this.currentMonth, 1);\n const lastDay = new Date(this.currentYear, this.currentMonth + 1, 0);\n\n // Get the day of the week for the first day (0 = Sunday, 6 = Saturday)\n let firstDayOfWeek = firstDay.getDay();\n // Convert to Monday start (0 = Monday, 6 = Sunday)\n firstDayOfWeek = firstDayOfWeek === 0 ? 6 : firstDayOfWeek - 1;\n\n // Add cells for days before the first of the month\n if (this.showOtherMonthDays) {\n for (let i = 0; i < firstDayOfWeek; i++) {\n const prevMonthLastDay = new Date(this.currentYear, this.currentMonth, -i);\n cells.unshift(this.createCell(prevMonthLastDay, false));\n }\n } else {\n for (let i = 0; i < firstDayOfWeek; i++) {\n cells.unshift({\n day: 0,\n isCurrentMonth: false,\n isToday: false,\n isSelected: false,\n isDisabled: true,\n isRangeStart: false,\n isRangeEnd: false,\n isInRange: false,\n date: new Date(this.currentYear, this.currentMonth, -i),\n });\n }\n }\n\n // Add cells for current month\n for (let day = 1; day <= lastDay.getDate(); day++) {\n const date = new Date(this.currentYear, this.currentMonth, day);\n cells.push(this.createCell(date, true));\n }\n\n // Add next month days to fill the grid\n if (this.showOtherMonthDays) {\n const totalCells = cells.length;\n const remainingCells = 42 - totalCells;\n\n for (let day = 1; day <= remainingCells; day++) {\n const nextMonthDay = new Date(this.currentYear, this.currentMonth + 1, day);\n cells.push(this.createCell(nextMonthDay, false));\n\n if (cells.length % 7 === 0) break;\n }\n }\n\n return cells;\n }\n\n private createCell(date: Date, isCurrentMonth: boolean): CalendarCell {\n const isRangeStart = this.isDateRangeStart(date);\n const isRangeEnd = this.isDateRangeEnd(date);\n const isInRange = this.isDateInRange(date);\n\n return {\n day: date.getDate(),\n isCurrentMonth,\n isToday: this.isSameDay(date, this.today),\n isSelected: this.isDateSelected(date),\n isDisabled: !isCurrentMonth || this.isDateDisabled(date),\n isRangeStart,\n isRangeEnd,\n isInRange,\n date,\n };\n }\n\n private isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n private isDateDisabled(date: Date): boolean {\n if (!this.disabledDates || !Array.isArray(this.disabledDates)) {\n return false;\n }\n const year = date.getFullYear();\n const month = date.getMonth();\n const day = date.getDate();\n return this.disabledDates.some(\n disabled => disabled.year === year && disabled.month === month && disabled.day === day\n );\n }\n\n private isDateSelected(date: Date): boolean {\n if (this.isInRangeMode) return false;\n if (!this.selectedDate) return false;\n\n return (\n date.getFullYear() === this.selectedDate.year &&\n date.getMonth() === this.selectedDate.month &&\n date.getDate() === this.selectedDate.day\n );\n }\n\n private isDateRangeStart(date: Date): boolean {\n if (!this.rangeStart) return false;\n\n return (\n date.getFullYear() === this.rangeStart.year &&\n date.getMonth() === this.rangeStart.month &&\n date.getDate() === this.rangeStart.day\n );\n }\n\n private isDateRangeEnd(date: Date): boolean {\n if (!this.rangeEnd) return false;\n\n return (\n date.getFullYear() === this.rangeEnd.year &&\n date.getMonth() === this.rangeEnd.month &&\n date.getDate() === this.rangeEnd.day\n );\n }\n\n private isDateInRange(date: Date): boolean {\n if (!this.rangeStart || !this.rangeEnd) return false;\n\n const dateTime = date.getTime();\n const startTime = new Date(this.rangeStart.year, this.rangeStart.month, this.rangeStart.day).getTime();\n const endTime = new Date(this.rangeEnd.year, this.rangeEnd.month, this.rangeEnd.day).getTime();\n\n return dateTime > startTime && dateTime < endTime;\n }\n\n private handleCellClick(cell: CalendarCell) {\n if (cell.isDisabled || this.disabled || !cell.isCurrentMonth) {\n return;\n }\n\n const newSelectedDate: SelectedDate = {\n year: cell.date.getFullYear(),\n month: cell.date.getMonth(),\n day: cell.date.getDate(),\n };\n\n // If we're in range mode, let the parent handle it\n if (this.isInRangeMode) {\n this.bhChange.emit(newSelectedDate);\n this.bhDateSelect.emit(newSelectedDate);\n return;\n }\n\n // Toggle selection\n const isCurrentlySelected = this.selectedDate &&\n this.selectedDate.year === newSelectedDate.year &&\n this.selectedDate.month === newSelectedDate.month &&\n this.selectedDate.day === newSelectedDate.day;\n\n if (isCurrentlySelected) {\n this.selectedDate = null;\n this.bhChange.emit(null);\n this.bhDateSelect.emit(null);\n } else {\n this.selectedDate = newSelectedDate;\n this.bhChange.emit(newSelectedDate);\n this.bhDateSelect.emit(newSelectedDate);\n }\n }\n\n private handleMonthDropdownToggle = () => {\n if (this.isMonthDropdownOpen) {\n this.closeMonthDropdown();\n } else {\n this.isMonthDropdownOpen = true;\n }\n };\n\n private closeMonthDropdown() {\n this.isMonthDropdownClosing = true;\n setTimeout(() => {\n this.isMonthDropdownOpen = false;\n this.isMonthDropdownClosing = false;\n }, 150);\n }\n\n private handleMonthYearSelect = (event: CustomEvent<MonthYear>) => {\n this.closeMonthDropdown();\n\n setTimeout(() => {\n const monthYear = event.detail;\n this.currentMonth = monthYear.month;\n this.currentYear = monthYear.year;\n this.bhMonthChange.emit({ month: monthYear.month, year: monthYear.year });\n this.bhMonthYearChange.emit({ month: monthYear.month, year: monthYear.year });\n }, 100);\n };\n\n private handlePreviousMonth = () => {\n if (this.disabled) return;\n\n let newMonth = this.currentMonth - 1;\n let newYear = this.currentYear;\n\n if (newMonth < 0) {\n newMonth = 11;\n newYear = this.currentYear - 1;\n }\n\n if (newYear >= this.minYear) {\n this.currentMonth = newMonth;\n this.currentYear = newYear;\n this.bhMonthChange.emit({ month: newMonth, year: newYear });\n this.bhMonthYearChange.emit({ month: newMonth, year: newYear });\n }\n };\n\n private handleNextMonth = () => {\n if (this.disabled) return;\n\n let newMonth = this.currentMonth + 1;\n let newYear = this.currentYear;\n\n if (newMonth > 11) {\n newMonth = 0;\n newYear = this.currentYear + 1;\n }\n\n if (newYear <= this.maxYear) {\n this.currentMonth = newMonth;\n this.currentYear = newYear;\n this.bhMonthChange.emit({ month: newMonth, year: newYear });\n this.bhMonthYearChange.emit({ month: newMonth, year: newYear });\n }\n };\n\n private getCellClass(cell: CalendarCell): string {\n const classes = ['calendar-cell'];\n\n if (!cell.isCurrentMonth) classes.push('other-month');\n if (cell.isToday) classes.push('today');\n if (cell.isRangeStart) classes.push('range-start');\n if (cell.isRangeEnd) classes.push('range-end');\n if (cell.isInRange) classes.push('in-range');\n if (cell.isSelected) classes.push('selected');\n if (cell.isDisabled) classes.push('disabled');\n else if (cell.isCurrentMonth) classes.push('selectable');\n\n return classes.join(' ');\n }\n\n render() {\n const currentMonthYear = `${this.monthNames[this.currentMonth]} ${this.currentYear}`;\n\n return (\n <Host>\n <div class=\"date-picker-content\">\n {/* Month Navigation */}\n <div class=\"month-navigation\">\n <bh-button-icon\n hierarchy=\"tertiary\"\n size=\"md\"\n iconName=\"chevron_left\"\n onBhClick={this.handlePreviousMonth}\n disabled={this.disabled || (this.currentYear === this.minYear && this.currentMonth === 0)}\n ></bh-button-icon>\n\n <bh-button\n hierarchy=\"tertiary\"\n size=\"sm\"\n label={currentMonthYear}\n icon=\"trailing\"\n iconName=\"expand_more\"\n onBhClick={this.handleMonthDropdownToggle}\n ></bh-button>\n\n <bh-button-icon\n hierarchy=\"tertiary\"\n size=\"md\"\n iconName=\"chevron_right\"\n onBhClick={this.handleNextMonth}\n disabled={this.disabled || (this.currentYear === this.maxYear && this.currentMonth === 11)}\n ></bh-button-icon>\n </div>\n\n {/* Calendar Grid or Month Picker */}\n {!this.isMonthDropdownOpen && (\n <div class=\"calendar-grid\">\n {/* Day Names Header */}\n <div class=\"day-names\">\n {this.dayNames.map(dayName => (\n <div key={dayName} class=\"day-name\">{dayName}</div>\n ))}\n </div>\n\n {/* Date Cells */}\n <div class=\"date-cells\">\n {this.calendarCells.map((cell, index) => (\n <div\n key={index}\n class={this.getCellClass(cell)}\n onClick={() => this.handleCellClick(cell)}\n >\n <span class=\"date-number\">{cell.day === 0 ? '' : cell.day}</span>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {/* Month Picker Content */}\n {(this.isMonthDropdownOpen || this.isMonthDropdownClosing) && (\n <div class={`month-picker-inline ${this.isMonthDropdownClosing ? 'animate-fade-out' : ''}`}>\n <bh-month-picker-content\n scrollable={true}\n height=\"275px\"\n selectedMonth={this.currentMonth}\n selectedYear={this.currentYear}\n onBhChange={this.handleMonthYearSelect}\n minYear={this.minYear}\n maxYear={this.maxYear}\n ></bh-month-picker-content>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bh-date-picker.entry.esm.js","sources":["src/components/bh-date-picker/bh-date-picker.css?tag=bh-date-picker&encapsulation=shadow","src/components/bh-date-picker/bh-date-picker.tsx"],"sourcesContent":["@import '../../global/global.css';\n\n:host {\n display: inline-block;\n position: relative;\n}\n\n.date-picker-container {\n position: relative;\n display: inline-block;\n}\n\n.date-picker-trigger {\n cursor: pointer;\n}\n\n.date-picker-trigger.input-field-container {\n position: relative;\n}\n\n.calendar-icon-overlay {\n position: absolute;\n top: 0;\n right: 0;\n width: 40px;\n height: 100%;\n cursor: pointer;\n z-index: 1;\n}\n\n.date-picker-menu-container {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n margin-top: var(--spacing-xs);\n}\n\n.date-picker-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n background: transparent;\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { SelectedDate, DisabledDate } from '../bh-date-picker-content/bh-date-picker-content';\n\nexport type DatePickerVariant = 'dropdown-outlined' | 'dropdown-ghost' | 'input';\n\n@Component({\n tag: 'bh-date-picker',\n styleUrl: 'bh-date-picker.css',\n shadow: true,\n})\nexport class BhDatePicker {\n /**\n * Variant of the date picker trigger\n */\n @Prop() variant: DatePickerVariant = 'input';\n\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled dates\n */\n @Prop() disabledDates: DisabledDate[] = [];\n\n /**\n * Label for input variant\n */\n @Prop() label: string = 'Select Date';\n\n /**\n * Placeholder text\n */\n @Prop() placeholder: string = 'Choose date';\n\n /**\n * Width for input variant\n */\n @Prop() inputWidth: string = '200px';\n\n /**\n * Whether to show the label\n */\n @Prop() showLabel: boolean = true;\n\n /**\n * Whether to show the footer\n */\n @Prop() showFooter: boolean = false;\n\n /**\n * Whether to show days from other months\n */\n @Prop() showOtherMonthDays: boolean = true;\n\n /**\n * Currently selected value\n */\n @Prop() value?: SelectedDate;\n\n @State() selectedValue: SelectedDate | null = null;\n @State() tempSelection: SelectedDate | null = null;\n @State() isMenuOpen: boolean = false;\n @State() isMenuClosing: boolean = false;\n\n /**\n * Event emitted when value changes\n */\n @Event() bhChange!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when a date is selected\n */\n @Event() bhDateSelect!: EventEmitter<SelectedDate | null>;\n\n @Watch('value')\n handleValueChange(newValue: SelectedDate | undefined) {\n if (newValue !== undefined) {\n this.selectedValue = newValue;\n }\n }\n\n componentWillLoad() {\n if (this.value) {\n this.selectedValue = this.value;\n }\n }\n\n private getDisplayValue(): string {\n if (!this.selectedValue) return '';\n const month = (this.selectedValue.month + 1).toString().padStart(2, '0');\n const day = this.selectedValue.day.toString().padStart(2, '0');\n return `${month}/${day}/${this.selectedValue.year}`;\n }\n\n private getButtonLabel(): string {\n return this.getDisplayValue() || this.placeholder;\n }\n\n private handleTriggerClick = () => {\n if (this.disabled) return;\n if (!this.isMenuOpen && this.showFooter) {\n this.tempSelection = this.selectedValue;\n }\n this.isMenuOpen = !this.isMenuOpen;\n };\n\n private handleInputFocus = () => {\n if (this.disabled) return;\n if (!this.isMenuOpen && this.showFooter) {\n this.tempSelection = this.selectedValue;\n }\n this.isMenuOpen = true;\n };\n\n private handleDateSelect = (event: CustomEvent<SelectedDate | null>) => {\n const date = event.detail;\n if (this.showFooter && date) {\n this.tempSelection = date;\n } else {\n this.selectedValue = date;\n this.bhChange.emit(date);\n this.bhDateSelect.emit(date);\n if (!this.showFooter) {\n this.closeMenu();\n }\n }\n };\n\n private handleMenuCancel = () => {\n this.tempSelection = null;\n this.closeMenu();\n };\n\n private handleMenuApply = () => {\n if (this.tempSelection) {\n this.selectedValue = this.tempSelection;\n this.tempSelection = null;\n this.bhChange.emit(this.selectedValue);\n this.bhDateSelect.emit(this.selectedValue);\n }\n this.closeMenu();\n };\n\n private handleToday = () => {\n const today = new Date();\n const todayDate: SelectedDate = {\n year: today.getFullYear(),\n month: today.getMonth(),\n day: today.getDate(),\n };\n\n if (this.showFooter) {\n this.tempSelection = todayDate;\n } else {\n this.selectedValue = todayDate;\n this.bhChange.emit(todayDate);\n this.bhDateSelect.emit(todayDate);\n this.closeMenu();\n }\n };\n\n private closeMenu() {\n this.isMenuClosing = true;\n setTimeout(() => {\n this.isMenuOpen = false;\n this.isMenuClosing = false;\n }, 150);\n }\n\n private handleBackdropClick = () => {\n this.handleMenuCancel();\n };\n\n render() {\n return (\n <Host>\n <div class=\"date-picker-container\">\n {/* Dropdown Outlined Variant */}\n {this.variant === 'dropdown-outlined' && (\n <div class=\"date-picker-trigger\" onClick={this.handleTriggerClick}>\n <bh-button\n hierarchy=\"secondary\"\n \n size=\"sm\"\n icon=\"trailing\"\n label={this.getButtonLabel()}\n iconName=\"expand_more\"\n disabled={this.disabled}\n ></bh-button>\n </div>\n )}\n\n {/* Dropdown Ghost Variant */}\n {this.variant === 'dropdown-ghost' && (\n <div class=\"date-picker-trigger\" onClick={this.handleTriggerClick}>\n <bh-button\n hierarchy=\"tertiary\"\n \n size=\"sm\"\n icon=\"trailing\"\n label={this.getButtonLabel()}\n iconName=\"expand_more\"\n disabled={this.disabled}\n ></bh-button>\n </div>\n )}\n\n {/* Input Variant */}\n {this.variant === 'input' && (\n <div class=\"date-picker-trigger input-field-container\">\n <bh-input-text\n label={this.label}\n placeholder={this.placeholder}\n value={this.getDisplayValue()}\n disabled={this.disabled}\n showTrailingIcon={true}\n trailingIcon=\"calendar_today\"\n showHelpIcon={false}\n showHintText={false}\n showLabel={this.showLabel}\n width={this.inputWidth}\n onBhFocus={this.handleInputFocus}\n ></bh-input-text>\n <div class=\"calendar-icon-overlay\" onClick={this.handleTriggerClick}></div>\n </div>\n )}\n\n {/* Date Picker Menu */}\n <div class=\"date-picker-menu-container\">\n <bh-picker-menu\n visible={this.isMenuOpen}\n showFooter={this.showFooter}\n showTodayButton={this.showFooter}\n disableApply={this.showFooter && this.tempSelection === null}\n onBhCancel={this.handleMenuCancel}\n onBhApply={this.handleMenuApply}\n onBhToday={this.handleToday}\n >\n <bh-date-picker-content\n minYear={this.minYear}\n maxYear={this.maxYear}\n disabled={this.disabled}\n disabledDates={this.disabledDates}\n showOtherMonthDays={this.showOtherMonthDays}\n value={this.tempSelection ?? this.selectedValue ?? undefined}\n onBhDateSelect={this.handleDateSelect}\n ></bh-date-picker-content>\n </bh-picker-menu>\n </div>\n </div>\n\n {/* Backdrop */}\n {(this.isMenuOpen || this.isMenuClosing) && (\n <div class=\"date-picker-backdrop\" onClick={this.handleBackdropClick}></div>\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bh-date-picker.entry.esm.js","sources":["src/components/bh-date-picker/bh-date-picker.css?tag=bh-date-picker&encapsulation=shadow","src/components/bh-date-picker/bh-date-picker.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n.date-picker-container {\n width: 100%;\n}\n\n.date-picker-trigger {\n cursor: pointer;\n}\n\n.date-picker-trigger.input-field-container {\n position: relative;\n}\n\n.calendar-icon-overlay {\n position: absolute;\n top: 0;\n right: 0;\n width: 40px;\n height: 100%;\n cursor: pointer;\n z-index: 1;\n}\n\n.date-picker-menu-container {\n position: absolute;\n left: 0;\n z-index: 1000;\n display: none; /* Hide when not open */\n min-width: 100%; /* Match width of the trigger */\n}\n\n.date-picker-menu-container.is-open {\n display: block;\n}\n\n/* Default position: Bottom */\n.date-picker-menu-container:not(.open-upward) {\n top: 100%;\n margin-top: 8px;\n}\n\n/* Flipped position: Top */\n.date-picker-menu-container.open-upward {\n bottom: 100%;\n margin-bottom: 8px;\n}\n\n/* Ensure backdrop covers the whole screen to catch clicks */\n.date-picker-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n z-index: 9999;\n background: transparent;\n}","import { Component, Element, Event, EventEmitter, h, Host, Prop, Watch, State } from '@stencil/core';\nimport { SelectedDate, DisabledDate } from '../bh-date-picker-content/bh-date-picker-content';\nimport { BhInputTextCustomEvent } from '../../components';\n\nexport type DatePickerVariant = 'dropdown-outlined' | 'dropdown-ghost' | 'input';\n\n@Component({\n tag: 'bh-date-picker',\n styleUrl: 'bh-date-picker.css',\n shadow: true,\n})\nexport class BhDatePicker {\n /**\n * Reference to the host element. \n * The '!' operator fixes the \"no initializer\" error.\n */\n @Element() el!: HTMLElement; //\n /**\n * Variant of the date picker trigger\n */\n @Prop() variant: DatePickerVariant = 'input';\n\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled dates\n */\n @Prop() disabledDates: DisabledDate[] = [];\n\n /**\n * Label for input variant\n */\n @Prop() label: string = 'Select Date';\n\n /**\n * Placeholder text\n */\n @Prop() placeholder: string = 'Choose date';\n\n /**\n * Width for input variant\n */\n @Prop() inputWidth: string = '200px';\n\n /**\n * Whether to show the label\n */\n @Prop() showLabel: boolean = true;\n\n /**\n * Whether to show the footer\n */\n @Prop() showFooter: boolean = false;\n\n /**\n * Whether to show days from other months\n */\n @Prop() showOtherMonthDays: boolean = true;\n\n /**\n * Currently selected value\n */\n @Prop() value?: SelectedDate;\n\n @State() menuStyles: { [key: string]: string } = {};\n @State() openUpward: boolean = false;\n @State() selectedValue: SelectedDate | null = null;\n @State() tempSelection: SelectedDate | null = null;\n @State() isMenuOpen: boolean = false;\n @State() isMenuClosing: boolean = false;\n\n /**\n * Event emitted when value changes\n */\n @Event() bhChange!: EventEmitter<SelectedDate | null>;\n\n /**\n * Event emitted when a date is selected\n */\n @Event() bhDateSelect!: EventEmitter<SelectedDate | null>;\n handleInputFocus: ((event: BhInputTextCustomEvent<void>) => void) | undefined;\n\n @Watch('value')\n handleValueChange(newValue: SelectedDate | undefined) {\n if (newValue !== undefined) {\n this.selectedValue = newValue;\n }\n }\n\n componentWillLoad() {\n if (this.value) {\n this.selectedValue = this.value;\n }\n }\n\n private getDisplayValue(): string {\n if (!this.selectedValue) return '';\n const month = (this.selectedValue.month + 1).toString().padStart(2, '0');\n const day = this.selectedValue.day.toString().padStart(2, '0');\n return `${month}/${day}/${this.selectedValue.year}`;\n }\n\n private getButtonLabel(): string {\n return this.getDisplayValue() || this.placeholder;\n }\n\n private handleTriggerClick = () => {\n if (this.disabled) return;\n \n if (!this.isMenuOpen) {\n const rect = this.el.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n // Flip if there is less than 360px below\n this.openUpward = spaceBelow < 360 && rect.top > 360;\n }\n \n this.isMenuOpen = !this.isMenuOpen;\n };\n\n private handleDateSelect = (event: CustomEvent<SelectedDate | null>) => {\n const date = event.detail;\n if (this.showFooter && date) {\n this.tempSelection = date;\n } else {\n this.selectedValue = date;\n this.bhChange.emit(date);\n this.bhDateSelect.emit(date);\n if (!this.showFooter) {\n this.closeMenu();\n }\n }\n };\n\n private handleMenuCancel = () => {\n this.tempSelection = null;\n this.closeMenu();\n };\n\n private handleMenuApply = () => {\n if (this.tempSelection) {\n this.selectedValue = this.tempSelection;\n this.tempSelection = null;\n this.bhChange.emit(this.selectedValue);\n this.bhDateSelect.emit(this.selectedValue);\n }\n this.closeMenu();\n };\n\n private handleToday = () => {\n const today = new Date();\n const todayDate: SelectedDate = {\n year: today.getFullYear(),\n month: today.getMonth(),\n day: today.getDate(),\n };\n\n if (this.showFooter) {\n this.tempSelection = todayDate;\n } else {\n this.selectedValue = todayDate;\n this.bhChange.emit(todayDate);\n this.bhDateSelect.emit(todayDate);\n this.closeMenu();\n }\n };\n\n private closeMenu() {\n this.isMenuClosing = true;\n setTimeout(() => {\n this.isMenuOpen = false;\n this.isMenuClosing = false;\n }, 150);\n }\n\n private handleBackdropClick = () => {\n this.handleMenuCancel();\n };\n\n render() {\n return (\n <Host>\n <div class=\"date-picker-container\">\n {/* Dropdown Outlined Variant */}\n {this.variant === 'dropdown-outlined' && (\n <div class=\"date-picker-trigger\" onClick={this.handleTriggerClick}>\n <bh-button\n hierarchy=\"secondary\"\n size=\"sm\"\n icon=\"trailing\"\n label={this.getButtonLabel()}\n iconName=\"expand_more\"\n disabled={this.disabled}\n ></bh-button>\n </div>\n )}\n\n {/* Dropdown Ghost Variant */}\n {this.variant === 'dropdown-ghost' && (\n <div class=\"date-picker-trigger\" onClick={this.handleTriggerClick}>\n <bh-button\n hierarchy=\"tertiary\"\n size=\"sm\"\n icon=\"trailing\"\n label={this.getButtonLabel()}\n iconName=\"expand_more\"\n disabled={this.disabled}\n ></bh-button>\n </div>\n )}\n\n {/* Input Variant */}\n {this.variant === 'input' && (\n <div class=\"date-picker-trigger input-field-container\">\n <bh-input-text\n label={this.label}\n placeholder={this.placeholder}\n value={this.getDisplayValue()}\n disabled={this.disabled}\n showTrailingIcon={true}\n trailingIcon=\"calendar_today\"\n showHelpIcon={false}\n showHintText={false}\n showLabel={this.showLabel}\n width={this.inputWidth}\n onBhFocus={this.handleInputFocus}\n ></bh-input-text>\n <div class=\"calendar-icon-overlay\" onClick={this.handleTriggerClick}></div>\n </div>\n )}\n\n {/* Date Picker Menu */}\n <div class={{\n 'date-picker-menu-container': true,\n 'is-open': this.isMenuOpen,\n 'open-upward': this.openUpward\n }}>\n <bh-picker-menu\n visible={this.isMenuOpen}\n showFooter={this.showFooter}\n showTodayButton={this.showFooter}\n disableApply={this.showFooter && this.tempSelection === null}\n onBhCancel={this.handleMenuCancel}\n onBhApply={this.handleMenuApply}\n onBhToday={this.handleToday}\n >\n <bh-date-picker-content\n minYear={this.minYear}\n maxYear={this.maxYear}\n disabled={this.disabled}\n disabledDates={this.disabledDates}\n showOtherMonthDays={this.showOtherMonthDays}\n value={this.tempSelection ?? this.selectedValue ?? undefined}\n onBhDateSelect={this.handleDateSelect}\n ></bh-date-picker-content>\n </bh-picker-menu>\n </div>\n </div>\n\n {/* Backdrop */}\n {(this.isMenuOpen || this.isMenuClosing) && (\n <div class=\"date-picker-backdrop\" onClick={this.handleBackdropClick}></div>\n )}\n </Host>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bh-empty-state.bh-pagination.bh-skeleton-loader.entry.esm.js","sources":["src/components/bh-empty-state/bh-empty-state.css?tag=bh-empty-state&encapsulation=shadow","src/components/bh-empty-state/bh-empty-state.tsx","src/components/bh-skeleton-loader/bh-skeleton-loader.css?tag=bh-skeleton-loader&encapsulation=shadow","src/components/bh-skeleton-loader/bh-skeleton-loader.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: var(\n --font-inter,\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n sans-serif\n );\n}\n\n/* Container */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 32px;\n padding: 48px 24px;\n text-align: center;\n}\n\n/* Content */\n.empty-state-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n}\n\n/* Illustration */\n.empty-state-illustration {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.empty-state-illustration img {\n object-fit: contain;\n}\n\n/* Text */\n.empty-state-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n}\n\n.empty-state-title {\n font-size: var(--text-lg-size, 18px);\n font-weight: 600;\n color: var(--color-neutral-900, #101828);\n margin: 0;\n line-height: 1.33;\n}\n\n.empty-state-description {\n font-size: var(--text-sm-size, 14px);\n font-weight: 400;\n color: var(--color-neutral-600, #475467);\n margin: 0;\n line-height: 1.43;\n max-width: 400px;\n}\n\n/* Actions */\n.empty-state-actions {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\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 EmptyStateIllustrationSize = 'sm' | 'md' | 'lg';\n\n@Component({\n tag: 'bh-empty-state',\n styleUrl: 'bh-empty-state.css',\n shadow: true,\n})\nexport class BhEmptyState {\n /**\n * Title text\n */\n @Prop() emptyTitle: string = 'No items found';\n\n /**\n * Description text\n */\n @Prop() description: string = 'There are no items to display at the moment.';\n\n /**\n * Size of the illustration\n */\n @Prop() illustrationSize: EmptyStateIllustrationSize = 'md';\n\n /**\n * Path to the illustration SVG\n */\n @Prop() illustrationPath: string = '';\n\n /**\n * Primary action button text\n */\n @Prop() primaryActionText: string = '';\n\n /**\n * Primary action icon name\n */\n @Prop() primaryActionIcon: string = '';\n\n /**\n * Secondary action button text\n */\n @Prop() secondaryActionText: string = '';\n\n /**\n * Secondary action icon name\n */\n @Prop() secondaryActionIcon: string = '';\n\n /**\n * Max width of the component\n */\n @Prop() maxWidth: string = '512px';\n\n /**\n * Emitted when primary action is clicked\n */\n @Event() bhPrimaryAction!: EventEmitter<void>;\n\n /**\n * Emitted when secondary action is clicked\n */\n @Event() bhSecondaryAction!: EventEmitter<void>;\n\n private handlePrimaryAction = (): void => {\n this.bhPrimaryAction.emit();\n };\n\n private handleSecondaryAction = (): void => {\n this.bhSecondaryAction.emit();\n };\n\n private getIllustrationDimensions(): { width: string; height: string } {\n switch (this.illustrationSize) {\n case 'sm':\n return { width: '120px', height: '120px' };\n case 'md':\n return { width: '200px', height: '200px' };\n case 'lg':\n return { width: '280px', height: '280px' };\n default:\n return { width: '200px', height: '200px' };\n }\n }\n\n render() {\n const dimensions = this.getIllustrationDimensions();\n const hasActions = this.primaryActionText || this.secondaryActionText;\n\n return (\n <div\n class=\"empty-state\"\n style={{ maxWidth: this.maxWidth }}\n part=\"container\"\n >\n <div class=\"empty-state-content\">\n {/* Illustration */}\n {this.illustrationPath && (\n <div class=\"empty-state-illustration\">\n <img\n src={this.illustrationPath}\n alt=\"Empty state illustration\"\n style={{ width: dimensions.width, height: dimensions.height }}\n />\n </div>\n )}\n\n {/* Text Content */}\n <div class=\"empty-state-text\">\n <h3 class=\"empty-state-title\">{this.emptyTitle}</h3>\n <p class=\"empty-state-description\">{this.description}</p>\n </div>\n </div>\n\n {/* Actions */}\n {hasActions && (\n <div class=\"empty-state-actions\">\n {this.secondaryActionText && (\n <bh-button\n hierarchy=\"secondary\"\n size=\"md\"\n label={this.secondaryActionText}\n icon={this.secondaryActionIcon ? 'leading' : 'none'}\n iconName={this.secondaryActionIcon}\n onBhClick={this.handleSecondaryAction}\n />\n )}\n {this.primaryActionText && (\n <bh-button\n hierarchy=\"primary\"\n size=\"md\"\n label={this.primaryActionText}\n icon={this.primaryActionIcon ? 'leading' : 'none'}\n iconName={this.primaryActionIcon}\n onBhClick={this.handlePrimaryAction}\n />\n )}\n </div>\n )}\n </div>\n );\n }\n}\n","/* ==========================================================================\n BH-SKELETON-LOADER COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n.skeleton {\n display: inline-block;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.06) 25%,\n rgba(0, 0, 0, 0.03) 50%,\n rgba(0, 0, 0, 0.06) 75%\n );\n background-size: 400% 100%;\n animation: shimmer 1.5s ease-in-out infinite;\n border-radius: var(--radius-sm);\n line-height: 1;\n}\n\n.skeleton-circle {\n border-radius: 50%;\n}\n\n.skeleton::before {\n content: '\\00a0';\n}\n\n@keyframes shimmer {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0 50%;\n }\n}\n\n.visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'bh-skeleton-loader',\n styleUrl: 'bh-skeleton-loader.css',\n shadow: true,\n})\nexport class BhSkeletonLoader {\n /**\n * Width of the skeleton (CSS value)\n */\n @Prop() width: string = '100%';\n\n /**\n * Height of the skeleton (CSS value)\n */\n @Prop() height: string = '1em';\n\n /**\n * Whether the skeleton should be circular\n */\n @Prop() circle: boolean = false;\n\n render() {\n const skeletonClasses = {\n 'skeleton': true,\n 'skeleton-circle': this.circle,\n };\n\n return (\n <span\n class={skeletonClasses}\n style={{ width: this.width, height: this.height }}\n role=\"status\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n part=\"skeleton\"\n >\n <span class=\"visually-hidden\">Loading...</span>\n </span>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bh-empty-state.bh-pagination.bh-skeleton-loader.entry.esm.js","sources":["src/components/bh-empty-state/bh-empty-state.css?tag=bh-empty-state&encapsulation=shadow","src/components/bh-empty-state/bh-empty-state.tsx","src/components/bh-pagination/bh-pagination.css?tag=bh-pagination&encapsulation=shadow","src/components/bh-pagination/bh-pagination.tsx","src/components/bh-skeleton-loader/bh-skeleton-loader.css?tag=bh-skeleton-loader&encapsulation=shadow","src/components/bh-skeleton-loader/bh-skeleton-loader.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: var(\n --font-inter,\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n sans-serif\n );\n}\n\n/* Container */\n.empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 32px;\n padding: 48px 24px;\n text-align: center;\n}\n\n/* Content */\n.empty-state-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n}\n\n/* Illustration */\n.empty-state-illustration {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.empty-state-illustration img {\n object-fit: contain;\n}\n\n/* Text */\n.empty-state-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n}\n\n.empty-state-title {\n font-size: var(--text-lg-size, 18px);\n font-weight: 600;\n color: var(--color-neutral-900, #101828);\n margin: 0;\n line-height: 1.33;\n}\n\n.empty-state-description {\n font-size: var(--text-sm-size, 14px);\n font-weight: 400;\n color: var(--color-neutral-600, #475467);\n margin: 0;\n line-height: 1.43;\n max-width: 400px;\n}\n\n/* Actions */\n.empty-state-actions {\n display: flex;\n gap: 12px;\n flex-wrap: wrap;\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 EmptyStateIllustrationSize = 'sm' | 'md' | 'lg';\n\n@Component({\n tag: 'bh-empty-state',\n styleUrl: 'bh-empty-state.css',\n shadow: true,\n})\nexport class BhEmptyState {\n /**\n * Title text\n */\n @Prop() emptyTitle: string = 'No items found';\n\n /**\n * Description text\n */\n @Prop() description: string = 'There are no items to display at the moment.';\n\n /**\n * Size of the illustration\n */\n @Prop() illustrationSize: EmptyStateIllustrationSize = 'md';\n\n /**\n * Path to the illustration SVG\n */\n @Prop() illustrationPath: string = '';\n\n /**\n * Primary action button text\n */\n @Prop() primaryActionText: string = '';\n\n /**\n * Primary action icon name\n */\n @Prop() primaryActionIcon: string = '';\n\n /**\n * Secondary action button text\n */\n @Prop() secondaryActionText: string = '';\n\n /**\n * Secondary action icon name\n */\n @Prop() secondaryActionIcon: string = '';\n\n /**\n * Max width of the component\n */\n @Prop() maxWidth: string = '512px';\n\n /**\n * Emitted when primary action is clicked\n */\n @Event() bhPrimaryAction!: EventEmitter<void>;\n\n /**\n * Emitted when secondary action is clicked\n */\n @Event() bhSecondaryAction!: EventEmitter<void>;\n\n private handlePrimaryAction = (): void => {\n this.bhPrimaryAction.emit();\n };\n\n private handleSecondaryAction = (): void => {\n this.bhSecondaryAction.emit();\n };\n\n private getIllustrationDimensions(): { width: string; height: string } {\n switch (this.illustrationSize) {\n case 'sm':\n return { width: '120px', height: '120px' };\n case 'md':\n return { width: '200px', height: '200px' };\n case 'lg':\n return { width: '280px', height: '280px' };\n default:\n return { width: '200px', height: '200px' };\n }\n }\n\n render() {\n const dimensions = this.getIllustrationDimensions();\n const hasActions = this.primaryActionText || this.secondaryActionText;\n\n return (\n <div\n class=\"empty-state\"\n style={{ maxWidth: this.maxWidth }}\n part=\"container\"\n >\n <div class=\"empty-state-content\">\n {/* Illustration */}\n {this.illustrationPath && (\n <div class=\"empty-state-illustration\">\n <img\n src={this.illustrationPath}\n alt=\"Empty state illustration\"\n style={{ width: dimensions.width, height: dimensions.height }}\n />\n </div>\n )}\n\n {/* Text Content */}\n <div class=\"empty-state-text\">\n <h3 class=\"empty-state-title\">{this.emptyTitle}</h3>\n <p class=\"empty-state-description\">{this.description}</p>\n </div>\n </div>\n\n {/* Actions */}\n {hasActions && (\n <div class=\"empty-state-actions\">\n {this.secondaryActionText && (\n <bh-button\n hierarchy=\"secondary\"\n size=\"md\"\n label={this.secondaryActionText}\n icon={this.secondaryActionIcon ? 'leading' : 'none'}\n iconName={this.secondaryActionIcon}\n onBhClick={this.handleSecondaryAction}\n />\n )}\n {this.primaryActionText && (\n <bh-button\n hierarchy=\"primary\"\n size=\"md\"\n label={this.primaryActionText}\n icon={this.primaryActionIcon ? 'leading' : 'none'}\n iconName={this.primaryActionIcon}\n onBhClick={this.handlePrimaryAction}\n />\n )}\n </div>\n )}\n </div>\n );\n }\n}\n","/* =============================================================================\n bh-pagination Component Styles\n ============================================================================= */\n\n:host {\n display: block;\n font-family: var(--font-family-body, 'Inter', sans-serif);\n}\n\n/* -----------------------------------------------------------------------------\n Base Pagination Container\n ----------------------------------------------------------------------------- */\n\n.pagination {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--sp-4, 1rem);\n padding: var(--sp-3, 0.75rem) var(--sp-4, 1rem);\n background-color: var(--color-white, #fff);\n border-top: 1px solid var(--color-neutral-200, #e2e4eb);\n}\n\n/* -----------------------------------------------------------------------------\n Disabled State\n ----------------------------------------------------------------------------- */\n\n.pagination-disabled {\n opacity: 0.5;\n pointer-events: none;\n}\n\n/* -----------------------------------------------------------------------------\n Info Section\n ----------------------------------------------------------------------------- */\n\n.pagination-info {\n display: flex;\n align-items: center;\n}\n\n.pagination-info-text {\n font-size: 0.875rem;\n color: var(--color-neutral-600, #5c627a);\n white-space: nowrap;\n}\n\n/* -----------------------------------------------------------------------------\n Controls Section\n ----------------------------------------------------------------------------- */\n\n.pagination-controls {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: var(--sp-4, 1rem);\n}\n\n/* -----------------------------------------------------------------------------\n Page Size Selector\n ----------------------------------------------------------------------------- */\n\n.pagination-page-size {\n display: flex;\n align-items: center;\n gap: var(--sp-2, 0.5rem);\n}\n\n.pagination-page-size-label {\n font-size: 0.875rem;\n color: var(--color-neutral-600, #5c627a);\n white-space: nowrap;\n}\n\n.pagination-select {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background-color: var(--color-white, #fff);\n border: 1px solid var(--color-neutral-300, #c0c4d4);\n border-radius: var(--radius-md, 6px);\n padding: 0 var(--sp-6, 1.5rem) 0 var(--sp-3, 0.75rem);\n height: 32px;\n font-size: 0.875rem;\n color: var(--color-neutral-900, #141624);\n cursor: pointer;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n\n /* Custom dropdown arrow */\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='%235c627a'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 4px center;\n background-size: 16px;\n}\n\n.pagination-select:hover:not(:disabled) {\n border-color: var(--color-neutral-400, #939ab4);\n}\n\n.pagination-select:focus {\n outline: none;\n border-color: var(--color-brand-600);\n box-shadow: 0 0 0 3px var(--color-brand-100, #e0e1fc);\n}\n\n.pagination-select:disabled {\n background-color: var(--color-neutral-100, #f0f1f5);\n cursor: not-allowed;\n}\n\n/* -----------------------------------------------------------------------------\n Navigation Buttons\n ----------------------------------------------------------------------------- */\n\n.pagination-nav {\n display: flex;\n align-items: center;\n gap: var(--sp-1, 0.25rem);\n}\n\n.pagination-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: var(--radius-md, 6px);\n background-color: transparent;\n color: var(--color-neutral-600, #5c627a);\n cursor: pointer;\n transition: background-color 0.15s ease, color 0.15s ease;\n}\n\n.pagination-btn .material-symbols-outlined {\n font-size: 20px;\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20;\n}\n\n.pagination-btn:hover:not(:disabled) {\n background-color: var(--color-neutral-100, #f0f1f5);\n color: var(--color-neutral-900, #141624);\n}\n\n.pagination-btn:focus {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-brand-100, #e0e1fc);\n}\n\n.pagination-btn:active:not(:disabled) {\n background-color: var(--color-neutral-200, #e2e4eb);\n}\n\n.pagination-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n/* -----------------------------------------------------------------------------\n Page Numbers Display\n ----------------------------------------------------------------------------- */\n\n.pagination-pages {\n display: flex;\n align-items: center;\n gap: var(--sp-1, 0.25rem);\n}\n\n.pagination-page-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n padding: 0 var(--sp-2, 0.5rem);\n border: 1px solid transparent;\n border-radius: var(--radius-md, 6px);\n background-color: transparent;\n color: var(--color-neutral-700, #4d5266);\n font-size: 0.875rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.pagination-page-btn:hover:not(:disabled) {\n background-color: var(--color-neutral-100, #f0f1f5);\n color: var(--color-neutral-900, #141624);\n}\n\n.pagination-page-btn-active {\n background-color: var(--color-brand-600);\n color: var(--color-white, #fff);\n border-color: var(--color-brand-600);\n}\n\n.pagination-page-btn-active:hover:not(:disabled) {\n background-color: var(--color-brand-600);\n border-color: var(--color-brand-600);\n color: var(--color-white, #fff);\n}\n\n.pagination-page-btn:focus {\n outline: none;\n box-shadow: 0 0 0 2px var(--color-brand-400);\n}\n\n.pagination-page-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n}\n\n.pagination-ellipsis {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n color: var(--color-neutral-400, #939ab4);\n font-size: 0.875rem;\n user-select: none;\n}\n\n/* -----------------------------------------------------------------------------\n Compact Mode - Page Input\n ----------------------------------------------------------------------------- */\n\n.pagination-page-display {\n display: flex;\n align-items: center;\n gap: var(--sp-2, 0.5rem);\n}\n\n.pagination-page-text {\n font-size: 0.875rem;\n color: var(--color-neutral-700, #4d5266);\n white-space: nowrap;\n}\n\n.pagination-page-input {\n width: 60px;\n height: 32px;\n padding: 0 var(--sp-2, 0.5rem);\n border: 1px solid var(--color-neutral-300, #c0c4d4);\n border-radius: var(--radius-md, 6px);\n font-size: 0.875rem;\n text-align: center;\n color: var(--color-neutral-900, #141624);\n background-color: var(--color-white, #fff);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.pagination-page-input:hover:not(:disabled) {\n border-color: var(--color-neutral-400, #939ab4);\n}\n\n.pagination-page-input:focus {\n outline: none;\n border-color: var(--color-brand-500, #6366f1);\n box-shadow: 0 0 0 3px var(--color-brand-100, #e0e1fc);\n}\n\n.pagination-page-input:disabled {\n background-color: var(--color-neutral-100, #f0f1f5);\n cursor: not-allowed;\n}\n\n/* Remove number input spinners */\n.pagination-page-input::-webkit-inner-spin-button,\n.pagination-page-input::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.pagination-page-input[type='number'] {\n -moz-appearance: textfield;\n}\n\n/* -----------------------------------------------------------------------------\n Responsive Adjustments\n ----------------------------------------------------------------------------- */\n\n@media (max-width: 640px) {\n .pagination {\n flex-direction: column;\n align-items: stretch;\n gap: var(--sp-3, 0.75rem);\n }\n\n .pagination-info {\n justify-content: center;\n }\n\n .pagination-controls {\n justify-content: center;\n flex-wrap: wrap;\n }\n\n .pagination-page-size {\n width: 100%;\n justify-content: center;\n }\n\n .pagination-nav {\n justify-content: center;\n }\n}\n","import { Component, Prop, Event, EventEmitter, h, State } from '@stencil/core';\n\nexport interface PaginationChangeEvent {\n page: number;\n pageSize: number;\n}\n\n@Component({\n tag: 'bh-pagination',\n styleUrl: 'bh-pagination.css',\n shadow: true,\n})\nexport class BhPagination {\n /**\n * Current page (1-indexed)\n */\n @Prop({ mutable: true }) page: number = 1;\n\n /**\n * Total number of items\n */\n @Prop() totalItems: number = 0;\n\n /**\n * Number of items per page\n */\n @Prop({ mutable: true }) pageSize: number = 10;\n\n /**\n * Available page size options\n */\n @Prop() pageSizeOptions: number[] = [10, 25, 50, 100];\n\n /**\n * Show page size selector\n */\n @Prop() showPageSizeSelector: boolean = true;\n\n /**\n * Show item count info (e.g., \"Showing 1 to 10 of 100 results\")\n */\n @Prop() showItemCount: boolean = true;\n\n /**\n * Compact mode - shows input field instead of page numbers\n */\n @Prop() compact: boolean = false;\n\n /**\n * Maximum number of page numbers to show (for non-compact mode)\n */\n @Prop() maxPageNumbers: number = 5;\n\n /**\n * Whether the pagination is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Label for \"Rows per page\" text (for i18n)\n */\n @Prop() rowsPerPageLabel: string = 'Rows per page:';\n\n /**\n * Label template for showing results (use {start}, {end}, {total} placeholders)\n */\n @Prop() showingResultsLabel: string =\n 'Showing {start} to {end} of {total} results';\n\n /**\n * Label template for page info when total items unknown (use {page}, {totalPages} placeholders)\n */\n @Prop() pageInfoLabel: string = 'Page {page} of {totalPages}';\n\n @State() internalPage: number = 1;\n @State() internalPageSize: number = 10;\n\n /**\n * Emitted when the page changes\n */\n @Event() bhPageChange!: EventEmitter<PaginationChangeEvent>;\n\n /**\n * Emitted when page size changes\n */\n @Event() bhPageSizeChange!: EventEmitter<PaginationChangeEvent>;\n\n componentWillLoad() {\n this.internalPage = this.page;\n this.internalPageSize = this.pageSize;\n }\n\n private get totalPages(): number {\n return Math.max(1, Math.ceil(this.totalItems / this.internalPageSize));\n }\n\n private get startItem(): number {\n if (this.totalItems === 0) return 0;\n return (this.internalPage - 1) * this.internalPageSize + 1;\n }\n\n private get endItem(): number {\n return Math.min(this.internalPage * this.internalPageSize, this.totalItems);\n }\n\n private get canGoPrevious(): boolean {\n return this.internalPage > 1 && !this.disabled;\n }\n\n private get canGoNext(): boolean {\n return this.internalPage < this.totalPages && !this.disabled;\n }\n\n private goToPage(newPage: number) {\n if (this.disabled) return;\n\n const page = Math.max(1, Math.min(newPage, this.totalPages));\n if (page !== this.internalPage) {\n this.internalPage = page;\n this.page = page;\n this.bhPageChange.emit({ page, pageSize: this.internalPageSize });\n }\n }\n\n private handlePageSizeChange(event: Event) {\n if (this.disabled) return;\n\n const select = event.target as HTMLSelectElement;\n const newPageSize = parseInt(select.value, 10);\n\n if (newPageSize !== this.internalPageSize) {\n this.internalPageSize = newPageSize;\n this.pageSize = newPageSize;\n\n // Reset to page 1 when page size changes, or adjust if current page is now out of bounds\n const newTotalPages = Math.max(\n 1,\n Math.ceil(this.totalItems / newPageSize)\n );\n const newPage = Math.min(this.internalPage, newTotalPages);\n\n if (newPage !== this.internalPage) {\n this.internalPage = newPage;\n this.page = newPage;\n }\n\n this.bhPageSizeChange.emit({\n page: this.internalPage,\n pageSize: newPageSize,\n });\n }\n }\n\n private goToPrevious = () => this.goToPage(this.internalPage - 1);\n private goToNext = () => this.goToPage(this.internalPage + 1);\n\n private handlePageInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n const pageNumber = parseInt(input.value, 10);\n\n if (!isNaN(pageNumber)) {\n this.goToPage(pageNumber);\n }\n }\n\n private getPageNumbers(): number[] {\n const totalPages = this.totalPages;\n const currentPage = this.internalPage;\n const maxPages = this.maxPageNumbers;\n\n if (totalPages <= maxPages) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const pages: number[] = [];\n const half = Math.floor(maxPages / 2);\n\n let start = Math.max(1, currentPage - half);\n let end = Math.min(totalPages, start + maxPages - 1);\n\n // Adjust start if we're near the end\n if (end - start < maxPages - 1) {\n start = Math.max(1, end - maxPages + 1);\n }\n\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n return pages;\n }\n\n private getInfoText(): string {\n if (this.totalItems === 0) {\n return 'No results';\n }\n\n if (this.showItemCount && this.totalItems > 0) {\n return this.showingResultsLabel\n .replace('{start}', String(this.startItem))\n .replace('{end}', String(this.endItem))\n .replace('{total}', String(this.totalItems));\n }\n\n return this.pageInfoLabel\n .replace('{page}', String(this.internalPage))\n .replace('{totalPages}', String(this.totalPages));\n }\n\n private renderPageNumbers() {\n if (this.compact) {\n // Compact mode: Page X of Y\n return (\n <div class=\"pagination-page-display\">\n <span class=\"pagination-page-text\">Page</span>\n <input\n type=\"number\"\n class=\"pagination-page-input\"\n value={String(this.internalPage)}\n min=\"1\"\n max={String(this.totalPages)}\n disabled={this.disabled}\n onChange={(e) => this.handlePageInputChange(e)}\n aria-label=\"Page number\"\n />\n <span class=\"pagination-page-text\">of {this.totalPages}</span>\n </div>\n );\n }\n\n // Non-compact mode: numbered buttons\n const pageNumbers = this.getPageNumbers();\n const showStartEllipsis = pageNumbers[0] > 1;\n const showEndEllipsis =\n pageNumbers[pageNumbers.length - 1] < this.totalPages;\n\n return (\n <div class=\"pagination-pages\">\n {showStartEllipsis &&\n pageNumbers[0] > 2 && [\n <button\n type=\"button\"\n class=\"pagination-page-btn\"\n onClick={() => this.goToPage(1)}\n disabled={this.disabled}\n aria-label=\"Go to page 1\"\n key=\"page-1\"\n >\n 1\n </button>,\n <span class=\"pagination-ellipsis\" key=\"ellipsis-start\">\n ...\n </span>,\n ]}\n\n {pageNumbers.map((pageNum) => (\n <button\n type=\"button\"\n class={{\n 'pagination-page-btn': true,\n 'pagination-page-btn-active': pageNum === this.internalPage,\n }}\n onClick={() => this.goToPage(pageNum)}\n disabled={this.disabled}\n aria-label={`Go to page ${pageNum}`}\n aria-current={pageNum === this.internalPage ? 'page' : undefined}\n key={`page-${pageNum}`}\n >\n {pageNum}\n </button>\n ))}\n\n {showEndEllipsis &&\n pageNumbers[pageNumbers.length - 1] < this.totalPages - 1 && [\n <span class=\"pagination-ellipsis\" key=\"ellipsis-end\">\n ...\n </span>,\n <button\n type=\"button\"\n class=\"pagination-page-btn\"\n onClick={() => this.goToPage(this.totalPages)}\n disabled={this.disabled}\n aria-label={`Go to page ${this.totalPages}`}\n key={`page-${this.totalPages}`}\n >\n {this.totalPages}\n </button>,\n ]}\n </div>\n );\n }\n\n render() {\n const paginationClasses = {\n pagination: true,\n 'pagination-disabled': this.disabled,\n 'pagination-compact': this.compact,\n };\n\n return (\n <div class={paginationClasses} role=\"navigation\" aria-label=\"Pagination\">\n {/* Controls section - reordered */}\n <div class=\"pagination-controls\">\n {/* Page size selector - now first */}\n {this.showPageSizeSelector && (\n <div class=\"pagination-page-size\">\n <span class=\"pagination-page-size-label\">\n {this.rowsPerPageLabel}\n </span>\n <select\n class=\"pagination-select\"\n onChange={(e) => this.handlePageSizeChange(e)}\n disabled={this.disabled}\n aria-label=\"Select page size\"\n >\n {this.pageSizeOptions.map((size) => (\n <option\n key={size}\n value={String(size)}\n selected={size === this.internalPageSize}\n >\n {size}\n </option>\n ))}\n </select>\n </div>\n )}\n\n {/* Navigation with page numbers/input in middle */}\n <div class=\"pagination-nav\">\n <button\n type=\"button\"\n class=\"pagination-btn\"\n onClick={this.goToPrevious}\n disabled={!this.canGoPrevious}\n aria-label=\"Go to previous page\"\n >\n <span class=\"material-symbols-outlined\">chevron_left</span>\n </button>\n\n {/* Page numbers or input */}\n {this.renderPageNumbers()}\n\n <button\n type=\"button\"\n class=\"pagination-btn\"\n onClick={this.goToNext}\n disabled={!this.canGoNext}\n aria-label=\"Go to next page\"\n >\n <span class=\"material-symbols-outlined\">chevron_right</span>\n </button>\n </div>\n </div>\n\n {/* Info section - now on right */}\n {this.showItemCount && (\n <div class=\"pagination-info\">\n <span class=\"pagination-info-text\">{this.getInfoText()}</span>\n </div>\n )}\n </div>\n );\n }\n}\n","/* ==========================================================================\n BH-SKELETON-LOADER COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n vertical-align: middle;\n}\n\n.skeleton {\n display: block;\n min-width: 20px;\n min-height: 8px;\n background: linear-gradient(\n 90deg,\n var(--color-neutral-200, #e2e4eb) 25%,\n var(--color-neutral-100, #f0f1f5) 50%,\n var(--color-neutral-200, #e2e4eb) 75%\n );\n background-size: 400% 100%;\n animation: shimmer 1.5s ease-in-out infinite;\n border-radius: var(--radius-sm, 4px);\n}\n\n.skeleton-circle {\n border-radius: 50%;\n aspect-ratio: 1;\n}\n\n@keyframes shimmer {\n 0% {\n background-position: 100% 50%;\n }\n 100% {\n background-position: 0 50%;\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'bh-skeleton-loader',\n styleUrl: 'bh-skeleton-loader.css',\n shadow: true,\n})\nexport class BhSkeletonLoader {\n /**\n * Width of the skeleton (CSS value)\n */\n @Prop() width: string = '100%';\n\n /**\n * Height of the skeleton (CSS value)\n */\n @Prop() height: string = '1em';\n\n /**\n * Whether the skeleton should be circular\n */\n @Prop() circle: boolean = false;\n\n render() {\n const skeletonClasses = {\n skeleton: true,\n 'skeleton-circle': this.circle,\n };\n\n return (\n <span\n class={skeletonClasses}\n style={{ width: this.width, height: this.height }}\n role=\"status\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n aria-label=\"Loading\"\n part=\"skeleton\"\n />\n );\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bh-input-text.bh-picker-menu.entry.esm.js","sources":["src/components/bh-input-text/bh-input-text.css?tag=bh-input-text&encapsulation=shadow","src/components/bh-input-text/bh-input-text.tsx","src/components/bh-picker-menu/bh-picker-menu.css?tag=bh-picker-menu&encapsulation=shadow","src/components/bh-picker-menu/bh-picker-menu.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: var(\n --font-inter,\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n sans-serif\n );\n}\n\n/* Input Wrapper */\n.input-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm, 8px);\n width: 100%;\n}\n\n/* Input Container */\n.input-container {\n display: flex;\n align-items: center;\n gap: var(--spacing-md, 12px);\n padding: var(--spacing-md, 12px);\n height: 36px;\n width: 100%;\n background: var(--color-white, #ffffff);\n border: 1px solid var(--color-neutral-300, #d0d5dd);\n border-radius: var(--spacing-md, 8px);\n transition: all 0.2s ease-in-out;\n cursor: text;\n box-sizing: border-box;\n}\n\n.input-container.input-container-with-leading {\n padding: var(--spacing-md, 12px) var(--spacing-lg, 16px);\n}\n\n/* Input States */\n.input-container.input-container-hover {\n border-color: var(--color-brand-500, #7f56d9);\n}\n\n.input-container.input-container-focused {\n border-color: var(--color-brand-500, #7f56d9);\n box-shadow: 0 0 0 1px var(--color-brand-500, #7f56d9);\n}\n\n.input-container.input-container-disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.input-container.input-container-error {\n border-color: var(--color-error-300, #fda29b);\n}\n\n.input-container.input-container-error.input-container-hover {\n border-color: var(--color-error-500, #f05250);\n}\n\n.input-container.input-container-error.input-container-focused {\n border-color: var(--color-brand-600, #6941c6);\n}\n\n/* Input Content */\n.input-content {\n display: flex;\n align-items: center;\n gap: var(--spacing-md, 12px);\n flex: 1;\n height: 100%;\n min-width: 0;\n}\n\n/* Input Element */\n.input-element {\n flex: 1;\n height: 100%;\n border: none;\n outline: none;\n background: transparent;\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-800, #1d2939);\n min-width: 60px;\n padding: 0;\n}\n\n.input-element:focus {\n outline: none;\n border: none;\n box-shadow: none;\n}\n\n.input-element::placeholder {\n color: var(--color-neutral-500, #667085);\n}\n\n.input-element:disabled {\n cursor: not-allowed;\n}\n\n/* Icons */\n.leading-icon,\n.trailing-icon {\n font-size: var(--text-xl-size, 20px);\n color: var(--color-neutral-500, #667085);\n user-select: none;\n flex-shrink: 0;\n cursor: default;\n transition: color 0.2s ease-in-out;\n}\n\n.input-container-focused .leading-icon,\n.input-container-focused .trailing-icon {\n color: var(--color-brand-600, #6941c6);\n}\n\n/* Hint Text */\n.hint-text {\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-600, #475467);\n}\n\n.hint-text.hint-error {\n color: var(--color-error-600, #dc2626);\n}\n\n/* Material Symbols */\n.material-symbols-outlined {\n font-family: 'Material Symbols Outlined';\n font-weight: normal;\n font-style: normal;\n font-size: 20px;\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, State, Event, EventEmitter, h, AttachInternals } from '@stencil/core';\nimport { syncFormValue, updateValidity } from '../../utils/form';\n\n@Component({\n tag: 'bh-input-text',\n styleUrl: 'bh-input-text.css',\n shadow: true,\n formAssociated: true,\n})\nexport class BhInputText {\n @AttachInternals() internals!: ElementInternals;\n\n private inputEl?: HTMLInputElement;\n /**\n * The label for the input\n */\n @Prop() label: string = 'Email';\n\n /**\n * Placeholder text\n */\n @Prop() placeholder: string = 'fujiwara@act-hq.com';\n\n /**\n * Hint text shown below the input\n */\n @Prop() hintText: string = '';\n\n /**\n * Whether to show the label\n */\n @Prop() showLabel: boolean = true;\n\n /**\n * Whether to show hint text\n */\n @Prop() showHintText: boolean = true;\n\n /**\n * Whether to show the help icon\n */\n @Prop() showHelpIcon: boolean = false;\n\n /**\n * Whether to show a leading icon\n */\n @Prop() showLeadingIcon: boolean = false;\n\n /**\n * Whether to show a trailing icon\n */\n @Prop() showTrailingIcon: boolean = false;\n\n /**\n * Whether the field has an error\n */\n @Prop() error: boolean = false;\n\n /**\n * Whether the input is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the field is required\n */\n @Prop() required: boolean = false;\n\n /**\n * Tooltip text for the help icon\n */\n @Prop() helpIconTooltip: string = 'Help';\n\n /**\n * Leading icon name (Material Symbols)\n */\n @Prop() leadingIcon: string = 'mail';\n\n /**\n * Trailing icon name (Material Symbols)\n */\n @Prop() trailingIcon: string = 'search';\n\n /**\n * The input value\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * Name attribute for form submission\n */\n @Prop() name: string = '';\n\n /**\n * Default value for form reset\n */\n @Prop() defaultValue: string = '';\n\n /**\n * Custom validation message\n */\n @Prop() validationMessage: string = '';\n\n /**\n * Input type (text, email, tel, url, etc.)\n */\n @Prop() type: string = 'text';\n\n /**\n * Width of the input (e.g., '100%', '200px')\n */\n @Prop() width: string = '';\n\n /**\n * Whether the input is read-only\n */\n @Prop() readOnly: boolean = false;\n\n /**\n * Visual state of the input (for programmatic control)\n */\n @Prop() state: 'default' | 'error' | 'disabled' | 'focus' | 'filled' | 'hover' = 'default';\n\n /**\n * Track focus state\n */\n @State() isFocused: boolean = false;\n\n /**\n * Track hover state\n */\n @State() isHovered: boolean = false;\n\n /**\n * Emitted when the value changes\n */\n @Event() bhInput!: EventEmitter<string>;\n\n /**\n * Emitted when the input gains focus\n */\n @Event() bhFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input loses focus\n */\n @Event() bhBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the help icon is clicked\n */\n @Event() bhHelpClick!: EventEmitter<void>;\n\n private handleInput = (event: Event): void => {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this.bhInput.emit(this.value);\n syncFormValue(this);\n updateValidity(this.internals, this.inputEl, this.validationMessage);\n };\n\n componentDidLoad() {\n syncFormValue(this);\n updateValidity(this.internals, this.inputEl, this.validationMessage);\n }\n\n formResetCallback() {\n this.value = this.defaultValue;\n if (this.inputEl) {\n this.inputEl.value = this.defaultValue;\n }\n syncFormValue(this);\n updateValidity(this.internals, this.inputEl);\n }\n\n private handleFocus = (): void => {\n this.isFocused = true;\n this.bhFocus.emit();\n };\n\n private handleBlur = (): void => {\n this.isFocused = false;\n this.bhBlur.emit();\n };\n\n private handleMouseEnter = (): void => {\n if (!this.isFocused) {\n this.isHovered = true;\n }\n };\n\n private handleMouseLeave = (): void => {\n this.isHovered = false;\n };\n\n private handleHelpClick = (): void => {\n this.bhHelpClick.emit();\n };\n\n render() {\n const containerClasses = {\n 'input-container': true,\n 'input-container-focused': this.isFocused,\n 'input-container-hover': this.isHovered && !this.isFocused,\n 'input-container-error': this.error,\n 'input-container-disabled': this.disabled,\n 'input-container-with-leading': this.showLeadingIcon,\n };\n\n const wrapperStyle = this.width ? { width: this.width } : {};\n\n return (\n <div class=\"input-wrapper\" part=\"wrapper\" style={wrapperStyle}>\n <bh-label\n label={this.showLabel ? this.label : ''}\n required={this.required}\n showHelpIcon={this.showHelpIcon}\n helpIconTooltip={this.helpIconTooltip}\n disabled={this.disabled}\n onBhHelpClick={this.handleHelpClick}\n >\n <div\n class={containerClasses}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div class=\"input-content\">\n {this.showLeadingIcon && (\n <span class=\"material-symbols-outlined leading-icon\">\n {this.leadingIcon}\n </span>\n )}\n <input\n ref={(el) => (this.inputEl = el)}\n type={this.type}\n class=\"input-element\"\n name={this.name}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readOnly={this.readOnly}\n required={this.required}\n aria-label={this.label}\n aria-describedby={\n this.showHintText && this.hintText ? 'hint-text' : undefined\n }\n aria-invalid={String(this.error)}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n part=\"input\"\n />\n {this.showTrailingIcon && (\n <span class=\"material-symbols-outlined trailing-icon\">\n {this.trailingIcon}\n </span>\n )}\n </div>\n </div>\n </bh-label>\n\n {this.showHintText && this.hintText && (\n <div\n class={{ 'hint-text': true, 'hint-error': this.error }}\n id=\"hint-text\"\n >\n {this.hintText}\n </div>\n )}\n </div>\n );\n }\n}\n","@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Base picker menu styles - matching dropdown menu */\n.picker-menu {\n width: fit-content;\n min-width: 320px;\n background: var(--color-white);\n border-radius: var(--radius-md);\n box-shadow: 0px 32px 64px -12px rgba(64, 73, 104, 0.14),\n 0px 0px 1px 1px rgba(64, 73, 104, 0.1);\n border: 1px solid var(--color-neutral-200);\n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n box-sizing: border-box;\n}\n\n/* Animation classes */\n.picker-menu.animate-dropdown-enter {\n animation: dropdownEnter 0.15s ease-out forwards;\n}\n\n.picker-menu.animate-dropdown-exit {\n animation: dropdownExit 0.15s ease-out forwards;\n}\n\n@keyframes dropdownEnter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes dropdownExit {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-8px);\n }\n}\n\n/* No footer variant */\n.picker-menu.no-footer {\n padding-bottom: var(--spacing-md);\n}\n\n/* Footer - following dropdown menu pattern */\n.picker-menu-footer {\n border-top: 1px solid var(--color-neutral-200);\n padding: var(--spacing-xl) var(--spacing-xl);\n background: var(--color-white);\n}\n\n.picker-menu-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-lg);\n}\n\n/* When today button is present, use space-between layout */\n.picker-menu-actions.has-today-button {\n justify-content: space-between;\n}\n\n.picker-menu-main-actions {\n display: flex;\n gap: var(--spacing-lg);\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { MonthYear, DisabledMonth } from '../bh-month-picker-content/bh-month-picker-content';\n\n@Component({\n tag: 'bh-picker-menu',\n styleUrl: 'bh-picker-menu.css',\n shadow: true,\n})\nexport class BhPickerMenu {\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled months\n */\n @Prop() disabledMonths: DisabledMonth[] = [];\n\n /**\n * Animation class for the menu\n */\n @Prop() animationClass: string = 'animate-dropdown-enter';\n\n /**\n * Whether the menu is visible\n */\n @Prop() visible: boolean = true;\n\n /**\n * Whether to show the footer with action buttons\n */\n @Prop() showFooter: boolean = true;\n\n /**\n * Whether to show the today button\n */\n @Prop() showTodayButton: boolean = false;\n\n /**\n * Whether the apply button is disabled\n */\n @Prop() disableApply: boolean = false;\n\n /**\n * Current value\n */\n @Prop() value?: MonthYear;\n\n @State() isClosing: boolean = false;\n @State() shouldRender: boolean = true;\n @State() selectedMonth: number | null = null;\n @State() selectedYear: number | null = null;\n\n /**\n * Event emitted when value changes\n */\n @Event() bhChange!: EventEmitter<MonthYear | null>;\n\n /**\n * Event emitted when a month/year is selected\n */\n @Event() bhMonthYearSelect!: EventEmitter<MonthYear>;\n\n /**\n * Event emitted when cancel is clicked\n */\n @Event() bhCancel!: EventEmitter<void>;\n\n /**\n * Event emitted when apply is clicked\n */\n @Event() bhApply!: EventEmitter<void>;\n\n /**\n * Event emitted when today button is clicked\n */\n @Event() bhToday!: EventEmitter<void>;\n\n @Watch('visible')\n handleVisibleChange(newValue: boolean) {\n if (newValue) {\n this.shouldRender = true;\n this.isClosing = false;\n } else {\n this.isClosing = true;\n setTimeout(() => {\n this.shouldRender = false;\n this.isClosing = false;\n }, 150);\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: MonthYear | undefined) {\n if (newValue) {\n this.selectedMonth = newValue.month;\n this.selectedYear = newValue.year;\n }\n }\n\n componentWillLoad() {\n this.shouldRender = this.visible;\n\n if (this.value) {\n this.selectedMonth = this.value.month;\n this.selectedYear = this.value.year;\n } else {\n // Initialize with current date\n const now = new Date();\n const currentMonth = now.getMonth();\n const currentYear = now.getFullYear();\n\n if (currentYear >= this.minYear && currentYear <= this.maxYear) {\n this.selectedMonth = currentMonth;\n this.selectedYear = currentYear;\n } else if (currentYear < this.minYear) {\n this.selectedYear = this.minYear;\n this.selectedMonth = currentMonth;\n } else {\n this.selectedYear = this.maxYear;\n this.selectedMonth = currentMonth;\n }\n }\n }\n\n private handleMonthYearSelect = (event: CustomEvent<MonthYear>) => {\n const selection = event.detail;\n this.selectedMonth = selection.month;\n this.selectedYear = selection.year;\n this.bhChange.emit(selection);\n this.bhMonthYearSelect.emit(selection);\n };\n\n private handleCancel = () => {\n this.bhCancel.emit();\n };\n\n private handleApply = () => {\n this.bhApply.emit();\n };\n\n private handleToday = () => {\n this.bhToday.emit();\n };\n\n render() {\n if (!this.shouldRender) {\n return null;\n }\n\n const menuClasses = {\n 'picker-menu': true,\n 'animate-dropdown-exit': this.isClosing,\n [this.animationClass]: !this.isClosing,\n 'no-footer': !this.showFooter,\n };\n\n return (\n <Host>\n <div class={menuClasses}>\n {/* Main Content Area - render slot if provided, otherwise MonthPickerContent */}\n <slot>\n <bh-month-picker-content\n minYear={this.minYear}\n maxYear={this.maxYear}\n disabled={this.disabled}\n disabledMonths={this.disabledMonths}\n scrollable={true}\n selectedMonth={this.selectedMonth ?? undefined}\n selectedYear={this.selectedYear ?? undefined}\n onBhChange={this.handleMonthYearSelect}\n ></bh-month-picker-content>\n </slot>\n\n {/* Footer Actions - conditionally rendered */}\n {this.showFooter && (\n <div class=\"picker-menu-footer\">\n <div class={`picker-menu-actions ${this.showTodayButton ? 'has-today-button' : ''}`}>\n {/* Today button on the left */}\n {this.showTodayButton && (\n <bh-button\n hierarchy=\"secondary\"\n size=\"sm\"\n icon=\"only\"\n iconName=\"today\"\n onBhClick={this.handleToday}\n ></bh-button>\n )}\n\n {/* Cancel and Apply buttons always on the right */}\n <div class=\"picker-menu-main-actions\">\n <bh-button\n hierarchy=\"secondary\"\n size=\"sm\"\n label=\"Cancel\"\n onBhClick={this.handleCancel}\n ></bh-button>\n <bh-button\n hierarchy=\"primary\"\n size=\"sm\"\n label=\"Apply\"\n disabled={this.disableApply}\n onBhClick={this.handleApply}\n ></bh-button>\n </div>\n </div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bh-input-text.bh-picker-menu.entry.esm.js","sources":["src/components/bh-input-text/bh-input-text.css?tag=bh-input-text&encapsulation=shadow","src/components/bh-input-text/bh-input-text.tsx","src/components/bh-picker-menu/bh-picker-menu.css?tag=bh-picker-menu&encapsulation=shadow","src/components/bh-picker-menu/bh-picker-menu.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: var(\n --font-inter,\n 'Inter',\n -apple-system,\n BlinkMacSystemFont,\n sans-serif\n );\n}\n\n/* Input Wrapper */\n.input-wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-sm, 8px);\n width: 100%;\n}\n\n/* Input Container */\n.input-container {\n display: flex;\n align-items: center;\n gap: var(--spacing-md, 12px);\n padding: var(--spacing-md, 12px);\n height: 36px;\n width: 100%;\n background: var(--color-white, #ffffff);\n border: 1px solid var(--color-neutral-300, #d0d5dd);\n border-radius: var(--spacing-md, 8px);\n transition: all 0.2s ease-in-out;\n cursor: text;\n box-sizing: border-box;\n}\n\n.input-container.input-container-with-leading {\n padding: var(--spacing-md, 12px) var(--spacing-lg, 16px);\n}\n\n/* Input States */\n.input-container.input-container-hover {\n border-color: var(--color-brand-500, #7f56d9);\n}\n\n.input-container.input-container-focused {\n border-color: var(--color-brand-500, #7f56d9);\n box-shadow: 0 0 0 1px var(--color-brand-500, #7f56d9);\n}\n\n.input-container.input-container-disabled {\n opacity: 0.5;\n cursor: not-allowed;\n background: var(--color-neutral-50, #f9fafb);\n}\n\n.input-container.input-container-error {\n border-color: var(--color-error-300, #fda29b);\n}\n\n.input-container.input-container-error.input-container-hover {\n border-color: var(--color-error-500, #f05250);\n}\n\n.input-container.input-container-error.input-container-focused {\n border-color: var(--color-brand-600, #6941c6);\n}\n\n/* Input Content */\n.input-content {\n display: flex;\n align-items: center;\n gap: var(--spacing-md, 12px);\n flex: 1;\n height: 100%;\n min-width: 0;\n}\n\n/* Input Element */\n.input-element {\n flex: 1;\n height: 100%;\n border: none;\n outline: none;\n background: transparent;\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-800, #1d2939);\n min-width: 60px;\n padding: 0;\n}\n\n.input-element:focus {\n outline: none;\n border: none;\n box-shadow: none;\n}\n\n.input-element::placeholder {\n color: var(--color-neutral-500, #667085);\n}\n\n.input-element:disabled {\n cursor: not-allowed;\n}\n\n/* Icons */\n.leading-icon,\n.trailing-icon {\n font-size: var(--text-xl-size, 20px);\n color: var(--color-neutral-500, #667085);\n user-select: none;\n flex-shrink: 0;\n cursor: default;\n transition: color 0.2s ease-in-out;\n}\n\n.input-container-focused .leading-icon,\n.input-container-focused .trailing-icon {\n color: var(--color-brand-600, #6941c6);\n}\n\n/* Hint Text */\n.hint-text {\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-600, #475467);\n}\n\n.hint-text.hint-error {\n color: var(--color-error-600, #dc2626);\n}\n\n/* Material Symbols */\n.material-symbols-outlined {\n font-family: 'Material Symbols Outlined';\n font-weight: normal;\n font-style: normal;\n font-size: 20px;\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, State, Event, EventEmitter, h, AttachInternals } from '@stencil/core';\nimport { syncFormValue, updateValidity } from '../../utils/form';\n\n@Component({\n tag: 'bh-input-text',\n styleUrl: 'bh-input-text.css',\n shadow: true,\n formAssociated: true,\n})\nexport class BhInputText {\n @AttachInternals() internals!: ElementInternals;\n\n private inputEl?: HTMLInputElement;\n /**\n * The label for the input\n */\n @Prop() label: string = 'Email';\n\n /**\n * Placeholder text\n */\n @Prop() placeholder: string = 'fujiwara@act-hq.com';\n\n /**\n * Hint text shown below the input\n */\n @Prop() hintText: string = '';\n\n /**\n * Whether to show the label\n */\n @Prop() showLabel: boolean = true;\n\n /**\n * Whether to show hint text\n */\n @Prop() showHintText: boolean = true;\n\n /**\n * Whether to show the help icon\n */\n @Prop() showHelpIcon: boolean = false;\n\n /**\n * Whether to show a leading icon\n */\n @Prop() showLeadingIcon: boolean = false;\n\n /**\n * Whether to show a trailing icon\n */\n @Prop() showTrailingIcon: boolean = false;\n\n /**\n * Whether the field has an error\n */\n @Prop() error: boolean = false;\n\n /**\n * Whether the input is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the field is required\n */\n @Prop() required: boolean = false;\n\n /**\n * Tooltip text for the help icon\n */\n @Prop() helpIconTooltip: string = 'Help';\n\n /**\n * Leading icon name (Material Symbols)\n */\n @Prop() leadingIcon: string = 'mail';\n\n /**\n * Trailing icon name (Material Symbols)\n */\n @Prop() trailingIcon: string = 'search';\n\n /**\n * The input value\n */\n @Prop({ mutable: true }) value: string = '';\n\n /**\n * Name attribute for form submission\n */\n @Prop() name: string = '';\n\n /**\n * Default value for form reset\n */\n @Prop() defaultValue: string = '';\n\n /**\n * Custom validation message\n */\n @Prop() validationMessage: string = '';\n\n /**\n * Input type (text, email, tel, url, etc.)\n */\n @Prop() type: string = 'text';\n\n /**\n * Width of the input (e.g., '100%', '200px')\n */\n @Prop() width: string = '';\n\n /**\n * Whether the input is read-only\n */\n @Prop() readOnly: boolean = false;\n\n /**\n * Visual state of the input (for programmatic control)\n */\n @Prop() state: 'default' | 'error' | 'disabled' | 'focus' | 'filled' | 'hover' = 'default';\n\n /**\n * Track focus state\n */\n @State() isFocused: boolean = false;\n\n /**\n * Track hover state\n */\n @State() isHovered: boolean = false;\n\n /**\n * Emitted when the value changes\n */\n @Event() bhInput!: EventEmitter<string>;\n\n /**\n * Emitted when the input gains focus\n */\n @Event() bhFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the input loses focus\n */\n @Event() bhBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the help icon is clicked\n */\n @Event() bhHelpClick!: EventEmitter<void>;\n\n private handleInput = (event: Event): void => {\n const target = event.target as HTMLInputElement;\n this.value = target.value;\n this.bhInput.emit(this.value);\n syncFormValue(this);\n updateValidity(this.internals, this.inputEl, this.validationMessage);\n };\n\n componentDidLoad() {\n syncFormValue(this);\n updateValidity(this.internals, this.inputEl, this.validationMessage);\n }\n\n formResetCallback() {\n this.value = this.defaultValue;\n if (this.inputEl) {\n this.inputEl.value = this.defaultValue;\n }\n syncFormValue(this);\n updateValidity(this.internals, this.inputEl);\n }\n\n private handleFocus = (): void => {\n this.isFocused = true;\n this.bhFocus.emit();\n };\n\n private handleBlur = (): void => {\n this.isFocused = false;\n this.bhBlur.emit();\n };\n\n private handleMouseEnter = (): void => {\n if (!this.isFocused) {\n this.isHovered = true;\n }\n };\n\n private handleMouseLeave = (): void => {\n this.isHovered = false;\n };\n\n private handleHelpClick = (): void => {\n this.bhHelpClick.emit();\n };\n\n render() {\n const containerClasses = {\n 'input-container': true,\n 'input-container-focused': this.isFocused,\n 'input-container-hover': this.isHovered && !this.isFocused,\n 'input-container-error': this.error,\n 'input-container-disabled': this.disabled,\n 'input-container-with-leading': this.showLeadingIcon,\n };\n\n const wrapperStyle = this.width ? { width: this.width } : {};\n\n return (\n <div class=\"input-wrapper\" part=\"wrapper\" style={wrapperStyle}>\n <bh-label\n label={this.showLabel ? this.label : ''}\n required={this.required}\n showHelpIcon={this.showHelpIcon}\n helpIconTooltip={this.helpIconTooltip}\n disabled={this.disabled}\n onBhHelpClick={this.handleHelpClick}\n >\n <div\n class={containerClasses}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div class=\"input-content\">\n {this.showLeadingIcon && (\n <span class=\"material-symbols-outlined leading-icon\">\n {this.leadingIcon}\n </span>\n )}\n <input\n ref={(el) => (this.inputEl = el)}\n type={this.type}\n class=\"input-element\"\n name={this.name}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readOnly={this.readOnly}\n required={this.required}\n aria-label={this.label}\n aria-describedby={\n this.showHintText && this.hintText ? 'hint-text' : undefined\n }\n aria-invalid={String(this.error)}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n part=\"input\"\n />\n {this.showTrailingIcon && (\n <span class=\"material-symbols-outlined trailing-icon\">\n {this.trailingIcon}\n </span>\n )}\n </div>\n </div>\n </bh-label>\n\n {this.showHintText && this.hintText && (\n <div\n class={{ 'hint-text': true, 'hint-error': this.error }}\n id=\"hint-text\"\n >\n {this.hintText}\n </div>\n )}\n </div>\n );\n }\n}\n","@import '../../global/global.css';\n\n:host {\n display: block;\n}\n\n/* Base picker menu styles - matching dropdown menu */\n.picker-menu {\n width: fit-content;\n min-width: 320px;\n background: var(--color-white);\n border-radius: var(--radius-md);\n box-shadow: var(--shadow-lg); \n overflow: hidden;\n flex-shrink: 0;\n position: relative;\n box-sizing: border-box;\n}\n\n/* Animation classes */\n.picker-menu.animate-dropdown-enter {\n animation: dropdownEnter 0.15s ease-out forwards;\n}\n\n.picker-menu.animate-dropdown-exit {\n animation: dropdownExit 0.15s ease-out forwards;\n}\n\n@keyframes dropdownEnter {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes dropdownExit {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(-8px);\n }\n}\n\n/* No footer variant */\n.picker-menu.no-footer {\n padding-bottom: var(--spacing-md);\n}\n\n/* Footer - following dropdown menu pattern */\n.picker-menu-footer {\n border-top: 1px solid var(--color-neutral-200);\n padding: var(--spacing-xl) var(--spacing-xl);\n background: var(--color-white);\n}\n\n.picker-menu-actions {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-lg);\n}\n\n/* When today button is present, use space-between layout */\n.picker-menu-actions.has-today-button {\n justify-content: space-between;\n}\n\n.picker-menu-main-actions {\n display: flex;\n gap: var(--spacing-lg);\n}\n","import { Component, Prop, State, Event, EventEmitter, Watch, h, Host } from '@stencil/core';\nimport { MonthYear, DisabledMonth } from '../bh-month-picker-content/bh-month-picker-content';\n\n@Component({\n tag: 'bh-picker-menu',\n styleUrl: 'bh-picker-menu.css',\n shadow: true,\n})\nexport class BhPickerMenu {\n /**\n * Minimum year in the picker\n */\n @Prop() minYear: number = 1998;\n\n /**\n * Maximum year in the picker\n */\n @Prop() maxYear: number = 2060;\n\n /**\n * Whether the picker is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Array of disabled months\n */\n @Prop() disabledMonths: DisabledMonth[] = [];\n\n /**\n * Animation class for the menu\n */\n @Prop() animationClass: string = 'animate-dropdown-enter';\n\n /**\n * Whether the menu is visible\n */\n @Prop() visible: boolean = true;\n\n /**\n * Whether to show the footer with action buttons\n */\n @Prop() showFooter: boolean = true;\n\n /**\n * Whether to show the today button\n */\n @Prop() showTodayButton: boolean = false;\n\n /**\n * Whether the apply button is disabled\n */\n @Prop() disableApply: boolean = false;\n\n /**\n * Current value\n */\n @Prop() value?: MonthYear;\n\n @State() isClosing: boolean = false;\n @State() shouldRender: boolean = true;\n @State() selectedMonth: number | null = null;\n @State() selectedYear: number | null = null;\n\n /**\n * Event emitted when value changes\n */\n @Event() bhChange!: EventEmitter<MonthYear | null>;\n\n /**\n * Event emitted when a month/year is selected\n */\n @Event() bhMonthYearSelect!: EventEmitter<MonthYear>;\n\n /**\n * Event emitted when cancel is clicked\n */\n @Event() bhCancel!: EventEmitter<void>;\n\n /**\n * Event emitted when apply is clicked\n */\n @Event() bhApply!: EventEmitter<void>;\n\n /**\n * Event emitted when today button is clicked\n */\n @Event() bhToday!: EventEmitter<void>;\n\n @Watch('visible')\n handleVisibleChange(newValue: boolean) {\n if (newValue) {\n this.shouldRender = true;\n this.isClosing = false;\n } else {\n this.isClosing = true;\n setTimeout(() => {\n this.shouldRender = false;\n this.isClosing = false;\n }, 150);\n }\n }\n\n @Watch('value')\n handleValueChange(newValue: MonthYear | undefined) {\n if (newValue) {\n this.selectedMonth = newValue.month;\n this.selectedYear = newValue.year;\n }\n }\n\n componentWillLoad() {\n this.shouldRender = this.visible;\n\n if (this.value) {\n this.selectedMonth = this.value.month;\n this.selectedYear = this.value.year;\n } else {\n // Initialize with current date\n const now = new Date();\n const currentMonth = now.getMonth();\n const currentYear = now.getFullYear();\n\n if (currentYear >= this.minYear && currentYear <= this.maxYear) {\n this.selectedMonth = currentMonth;\n this.selectedYear = currentYear;\n } else if (currentYear < this.minYear) {\n this.selectedYear = this.minYear;\n this.selectedMonth = currentMonth;\n } else {\n this.selectedYear = this.maxYear;\n this.selectedMonth = currentMonth;\n }\n }\n }\n\n private handleMonthYearSelect = (event: CustomEvent<MonthYear>) => {\n const selection = event.detail;\n this.selectedMonth = selection.month;\n this.selectedYear = selection.year;\n this.bhChange.emit(selection);\n this.bhMonthYearSelect.emit(selection);\n };\n\n private handleCancel = () => {\n this.bhCancel.emit();\n };\n\n private handleApply = () => {\n this.bhApply.emit();\n };\n\n private handleToday = () => {\n this.bhToday.emit();\n };\n\n render() {\n if (!this.shouldRender) {\n return null;\n }\n\n const menuClasses = {\n 'picker-menu': true,\n 'animate-dropdown-exit': this.isClosing,\n [this.animationClass]: !this.isClosing,\n 'no-footer': !this.showFooter,\n };\n\n return (\n <Host>\n <div class={menuClasses}>\n {/* Main Content Area - render slot if provided, otherwise MonthPickerContent */}\n <slot>\n <bh-month-picker-content\n minYear={this.minYear}\n maxYear={this.maxYear}\n disabled={this.disabled}\n disabledMonths={this.disabledMonths}\n scrollable={true}\n selectedMonth={this.selectedMonth ?? undefined}\n selectedYear={this.selectedYear ?? undefined}\n onBhChange={this.handleMonthYearSelect}\n ></bh-month-picker-content>\n </slot>\n\n {/* Footer Actions - conditionally rendered */}\n {this.showFooter && (\n <div class=\"picker-menu-footer\">\n <div class={`picker-menu-actions ${this.showTodayButton ? 'has-today-button' : ''}`}>\n {/* Today button on the left */}\n {this.showTodayButton && (\n <bh-button\n hierarchy=\"secondary\"\n size=\"sm\"\n icon=\"only\"\n iconName=\"today\"\n onBhClick={this.handleToday}\n ></bh-button>\n )}\n\n {/* Cancel and Apply buttons always on the right */}\n <div class=\"picker-menu-main-actions\">\n <bh-button\n hierarchy=\"secondary\"\n size=\"sm\"\n label=\"Cancel\"\n onBhClick={this.handleCancel}\n ></bh-button>\n <bh-button\n hierarchy=\"primary\"\n size=\"sm\"\n label=\"Apply\"\n disabled={this.disableApply}\n onBhClick={this.handleApply}\n ></bh-button>\n </div>\n </div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bh-label.bh-tooltip.entry.esm.js","sources":["src/components/bh-tooltip/bh-tooltip.css?tag=bh-tooltip&encapsulation=shadow","src/components/bh-tooltip/bh-tooltip.tsx"],"sourcesContent":["/* ==========================================================================\n BH-TOOLTIP COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n.tooltip {\n position: absolute;\n z-index: 10000;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n white-space: nowrap;\n}\n\n.tooltip-visible {\n opacity: 1;\n}\n\n.tooltip-content {\n background-color: var(--color-neutral-900);\n color: var(--color-white);\n font-family: var(--font-inter);\n font-weight: var(--weight-semibold);\n font-size: 12px;\n line-height: 1.5em;\n padding: 8px 12px;\n border-radius: 8px;\n box-shadow: var(--shadow-popover);\n position: relative;\n}\n\n/* Position variants */\n.tooltip-top {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-bottom: 6px;\n}\n\n.tooltip-bottom {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 6px;\n}\n\n.tooltip-left {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-right: 6px;\n}\n\n.tooltip-right {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: 6px;\n}\n\n/* Multiline support */\n.tooltip.multiline {\n white-space: normal;\n}\n\n.tooltip.multiline .tooltip-content {\n max-width: 240px;\n}\n\n/* Icon variant - positioning adjustments for tooltips on icons */\n.tooltip-icon.tooltip-top {\n margin-bottom: 4px;\n}\n\n.tooltip-icon.tooltip-bottom {\n margin-top: 4px;\n}\n\n.tooltip-icon.tooltip-left {\n margin-right: 4px;\n}\n\n.tooltip-icon.tooltip-right {\n margin-left: 4px;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type TooltipVariant = 'default' | 'icon';\n\n@Component({\n tag: 'bh-tooltip',\n styleUrl: 'bh-tooltip.css',\n shadow: true,\n})\nexport class BhTooltip {\n /**\n * The tooltip text content\n */\n @Prop() text: string = '';\n\n /**\n * Position of the tooltip relative to its target\n */\n @Prop() position: TooltipPosition = 'top';\n\n /**\n * Variant of the tooltip (default or icon)\n */\n @Prop() variant: TooltipVariant = 'default';\n\n /**\n * Whether the tooltip is visible\n */\n @Prop() visible: boolean = false;\n\n /**\n * Maximum width in pixels (enables multiline if > 240)\n */\n @Prop() maxWidth?: number;\n\n render() {\n const tooltipClasses = {\n 'tooltip': true,\n [`tooltip-${this.position}`]: true,\n [`tooltip-${this.variant}`]: true,\n 'tooltip-visible': this.visible,\n 'multiline': this.maxWidth !== undefined && this.maxWidth > 240,\n };\n\n const tooltipStyles = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};\n\n return (\n <div class={tooltipClasses} style={tooltipStyles} role=\"tooltip\" part=\"tooltip\">\n <div class=\"tooltip-content\">{this.text}</div>\n </div>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,YAAY,GAAG,ggCAAggC;;MCUxgC,SAAS,GAAA,MAAA;;;;AACpB;;AAEG;IACK,IAAI,GAAW,EAAE;AAEzB;;AAEG;IACK,QAAQ,GAAoB,KAAK;AAEzC;;AAEG;IACK,OAAO,GAAmB,SAAS;AAE3C;;AAEG;IACK,OAAO,GAAY,KAAK;AAEhC;;AAEG;AACK,IAAA,QAAQ;IAEhB,MAAM,GAAA;AACJ,QAAA,MAAM,cAAc,GAAG;AACrB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAE,CAAA,GAAG,IAAI;AAClC,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,GAAG,IAAI;YACjC,iBAAiB,EAAE,IAAI,CAAC,OAAO;YAC/B,WAAW,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG;SAChE;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAA,EAAA,CAAI,EAAE,GAAG,EAAE;QAE7E,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAA,EAC7E,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAE,EAAA,IAAI,CAAC,IAAI,CAAO,CAC1C;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"bh-label.bh-tooltip.entry.esm.js","sources":["src/components/bh-label/bh-label.css?tag=bh-label&encapsulation=shadow","src/components/bh-label/bh-label.tsx","src/components/bh-tooltip/bh-tooltip.css?tag=bh-tooltip&encapsulation=shadow","src/components/bh-tooltip/bh-tooltip.tsx"],"sourcesContent":[":host {\n display: block;\n font-family: var(--font-inter, 'Inter', sans-serif);\n}\n\n.label-container {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs, 6px);\n}\n\n.label-container.layout-block {\n flex-direction: column;\n}\n\n.label-container.layout-inline {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n}\n\n.label-container.layout-inline .label-wrapper {\n flex-shrink: 0;\n}\n\n.label-container.layout-inline-start {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--spacing-sm, 8px);\n}\n\n.label-container.layout-inline-start .label-content {\n flex-shrink: 0;\n width: auto;\n}\n\n.label-container.layout-inline-start .label-text-group {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.label-container.layout-inline-start .label-wrapper {\n gap: var(--spacing-xxs, 4px);\n}\n\n.label-container.layout-inline-start .label-text {\n font-size: var(--text-md-size, 16px);\n color: var(--color-neutral-900, #101828);\n cursor: pointer;\n}\n\n.label-container.layout-inline-start .supporting-text {\n font-size: var(--text-sm-size, 14px);\n color: var(--color-neutral-500, #667085);\n}\n\n.label-container.layout-inline-space-between {\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n gap: var(--spacing-sm, 8px);\n}\n\n.label-container.layout-inline-space-between .label-wrapper {\n flex-shrink: 0;\n}\n\n.label-container.layout-inline-space-between .label-content {\n flex-grow: 1;\n display: flex;\n justify-content: flex-end;\n}\n\n.label-wrapper {\n display: flex;\n align-items: center;\n gap: var(--spacing-xxs, 4px);\n}\n\n.label-text {\n font-family: inherit;\n font-weight: 500;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-700, #344054);\n margin: 0;\n cursor: default;\n}\n\n.label-text.disabled {\n color: var(--color-neutral-400, #98a2b3);\n}\n\n.asterisk {\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-error-600, #dc2626);\n}\n\n.supporting-text {\n font-family: inherit;\n font-weight: 400;\n font-size: var(--text-sm-size, 14px);\n line-height: 1.43;\n color: var(--color-neutral-500, #667085);\n margin: 0;\n}\n\n.supporting-text.disabled {\n color: var(--color-neutral-400, #98a2b3);\n}\n\n.label-content {\n width: 100%;\n}\n\n.icon-with-tooltip {\n position: relative;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.help-icon {\n font-size: var(--text-xl-size, 20px);\n color: var(--color-neutral-400, #98a2b3);\n cursor: pointer;\n user-select: none;\n transition: color 0.2s ease-in-out;\n}\n\n.help-icon:hover {\n color: var(--color-neutral-500, #667085);\n}\n\n.disabled .help-icon {\n color: var(--color-neutral-300, #d0d5dd);\n cursor: not-allowed;\n}\n","import { Component, Prop, h, Element, State, Event, EventEmitter } from '@stencil/core';\n\nexport type LabelLayout = 'block' | 'inline' | 'inline-start' | 'inline-space-between';\n\n@Component({\n tag: 'bh-label',\n styleUrl: 'bh-label.css',\n shadow: true,\n})\nexport class BhLabel {\n @Element() el!: HTMLElement;\n\n private tooltipTimerRef?: ReturnType<typeof setTimeout>;\n\n /**\n * The label text to display\n */\n @Prop() label: string = '';\n\n /**\n * Layout style for the label container\n * - block: Label above content (default for form fields)\n * - inline: Label next to content (label first)\n * - inline-start: Content next to label (content first, for checkboxes/radios)\n * - inline-space-between: Label and content on opposite ends\n */\n @Prop() layout: LabelLayout = 'block';\n\n /**\n * The id of the form element the label is bound to.\n * Use when the labeled element is not a child of this component.\n */\n @Prop() for: string = '';\n\n /**\n * Supporting text displayed below the label (second line)\n * for instructions or additional description\n */\n @Prop() supportingText: string = '';\n\n /**\n * Whether to show the required asterisk\n */\n @Prop() required: boolean = false;\n\n /**\n * Whether to show the help icon\n */\n @Prop() showHelpIcon: boolean = false;\n\n /**\n * Tooltip text for the help icon\n */\n @Prop() helpIconTooltip: string = 'Help';\n\n /**\n * Whether the label is disabled\n */\n @Prop() disabled: boolean = false;\n\n @State() showHelpTooltip: boolean = false;\n\n /**\n * Emitted when the help icon is clicked\n */\n @Event() bhHelpClick!: EventEmitter<void>;\n\n disconnectedCallback() {\n if (this.tooltipTimerRef) {\n clearTimeout(this.tooltipTimerRef);\n }\n }\n\n private handleHelpIconMouseEnter = () => {\n if (this.tooltipTimerRef) {\n clearTimeout(this.tooltipTimerRef);\n }\n this.tooltipTimerRef = setTimeout(() => {\n this.showHelpTooltip = true;\n }, 300);\n };\n\n private handleHelpIconMouseLeave = () => {\n if (this.tooltipTimerRef) {\n clearTimeout(this.tooltipTimerRef);\n this.tooltipTimerRef = undefined;\n }\n this.showHelpTooltip = false;\n };\n\n private handleHelpIconClick = () => {\n this.bhHelpClick.emit();\n };\n\n render() {\n const wrapperClasses = {\n 'label-container': true,\n [`layout-${this.layout}`]: true,\n 'disabled': this.disabled,\n };\n\n const labelClasses = {\n 'label-text': true,\n 'disabled': this.disabled,\n };\n\n const supportingClasses = {\n 'supporting-text': true,\n 'disabled': this.disabled,\n };\n\n const labelWrapper = (\n <div class=\"label-wrapper\">\n {this.label && (\n <label class={labelClasses} htmlFor={this.for || undefined}>\n {this.label}\n </label>\n )}\n {this.required && <span class=\"asterisk\">*</span>}\n {this.showHelpIcon && (\n <div class=\"icon-with-tooltip\">\n <span\n class=\"help-icon material-symbols-outlined\"\n onClick={this.handleHelpIconClick}\n onMouseEnter={this.handleHelpIconMouseEnter}\n onMouseLeave={this.handleHelpIconMouseLeave}\n >\n help\n </span>\n <bh-tooltip\n text={this.helpIconTooltip}\n position=\"top\"\n visible={this.showHelpTooltip}\n />\n </div>\n )}\n </div>\n );\n\n const supportingTextEl = this.supportingText && (\n <p class={supportingClasses}>{this.supportingText}</p>\n );\n\n const contentSlot = (\n <div class=\"label-content\">\n <slot></slot>\n </div>\n );\n\n // For inline-start layout, content comes first (used for checkbox/radio)\n if (this.layout === 'inline-start') {\n return (\n <div class={wrapperClasses}>\n {contentSlot}\n <div class=\"label-text-group\">\n {labelWrapper}\n {supportingTextEl}\n </div>\n </div>\n );\n }\n\n // Default layout: label wrapper first, then content\n return (\n <div class={wrapperClasses}>\n {labelWrapper}\n {supportingTextEl}\n {contentSlot}\n </div>\n );\n }\n}\n","/* ==========================================================================\n BH-TOOLTIP COMPONENT STYLES\n ========================================================================== */\n\n:host {\n display: inline-block;\n}\n\n.tooltip {\n position: absolute;\n z-index: 10000;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n white-space: nowrap;\n}\n\n.tooltip-visible {\n opacity: 1;\n}\n\n.tooltip-content {\n background-color: var(--color-neutral-900);\n color: var(--color-white);\n font-family: var(--font-inter);\n font-weight: var(--weight-semibold);\n font-size: 12px;\n line-height: 1.5em;\n padding: 8px 12px;\n border-radius: 8px;\n box-shadow: var(--shadow-popover);\n position: relative;\n}\n\n/* Position variants */\n.tooltip-top {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-bottom: 6px;\n}\n\n.tooltip-bottom {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 6px;\n}\n\n.tooltip-left {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-right: 6px;\n}\n\n.tooltip-right {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: 6px;\n}\n\n/* Multiline support */\n.tooltip.multiline {\n white-space: normal;\n}\n\n.tooltip.multiline .tooltip-content {\n max-width: 240px;\n}\n\n/* Icon variant - positioning adjustments for tooltips on icons */\n.tooltip-icon.tooltip-top {\n margin-bottom: 4px;\n}\n\n.tooltip-icon.tooltip-bottom {\n margin-top: 4px;\n}\n\n.tooltip-icon.tooltip-left {\n margin-right: 4px;\n}\n\n.tooltip-icon.tooltip-right {\n margin-left: 4px;\n}\n","import { Component, Prop, h } from '@stencil/core';\n\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type TooltipVariant = 'default' | 'icon';\n\n@Component({\n tag: 'bh-tooltip',\n styleUrl: 'bh-tooltip.css',\n shadow: true,\n})\nexport class BhTooltip {\n /**\n * The tooltip text content\n */\n @Prop() text: string = '';\n\n /**\n * Position of the tooltip relative to its target\n */\n @Prop() position: TooltipPosition = 'top';\n\n /**\n * Variant of the tooltip (default or icon)\n */\n @Prop() variant: TooltipVariant = 'default';\n\n /**\n * Whether the tooltip is visible\n */\n @Prop() visible: boolean = false;\n\n /**\n * Maximum width in pixels (enables multiline if > 240)\n */\n @Prop() maxWidth?: number;\n\n render() {\n const tooltipClasses = {\n 'tooltip': true,\n [`tooltip-${this.position}`]: true,\n [`tooltip-${this.variant}`]: true,\n 'tooltip-visible': this.visible,\n 'multiline': this.maxWidth !== undefined && this.maxWidth > 240,\n };\n\n const tooltipStyles = this.maxWidth ? { maxWidth: `${this.maxWidth}px` } : {};\n\n return (\n <div class={tooltipClasses} style={tooltipStyles} role=\"tooltip\" part=\"tooltip\">\n <div class=\"tooltip-content\">{this.text}</div>\n </div>\n );\n }\n}\n"],"names":[],"mappings":"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"}
|