@purpur/library 9.10.0 → 10.0.0
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/CHANGELOG.json +124 -0
- package/CHANGELOG.md +53 -1
- package/dist/LICENSE.txt +270 -175
- package/dist/{RichText-BAVZadzi.js → RichText-B865Qkzj.js} +2 -2
- package/dist/{RichText-BAVZadzi.js.map → RichText-B865Qkzj.js.map} +1 -1
- package/dist/{RichText-D4vznH1B.mjs → RichText-CPkBwXNI.mjs} +3 -3
- package/dist/{RichText-D4vznH1B.mjs.map → RichText-CPkBwXNI.mjs.map} +1 -1
- package/dist/accordion-aEZas0k1.mjs +122 -0
- package/dist/accordion-aEZas0k1.mjs.map +1 -0
- package/dist/accordion-zwsF1oUj.js +2 -0
- package/dist/accordion-zwsF1oUj.js.map +1 -0
- package/dist/accordion.cjs.js +1 -1
- package/dist/accordion.es.js +1 -1
- package/dist/button-C5CYysw5.js +2 -0
- package/dist/button-C5CYysw5.js.map +1 -0
- package/dist/button-mHw_J7JU.mjs +106 -0
- package/dist/button-mHw_J7JU.mjs.map +1 -0
- package/dist/button.cjs.js +1 -1
- package/dist/button.es.js +1 -1
- package/dist/{calendar-Cru-p6gC.mjs → calendar-DTL_g0ue.mjs} +4 -14
- package/dist/{calendar-Cru-p6gC.mjs.map → calendar-DTL_g0ue.mjs.map} +1 -1
- package/dist/{calendar-DDR8CQYo.js → calendar-DVOrK53J.js} +2 -2
- package/dist/{calendar-DDR8CQYo.js.map → calendar-DVOrK53J.js.map} +1 -1
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.es.js +1 -1
- package/dist/{card-t2ZkZ82G.mjs → card-C0yhMN5d.mjs} +3 -3
- package/dist/card-C0yhMN5d.mjs.map +1 -0
- package/dist/{card-pdsBEJif.js → card-CIlY38WI.js} +2 -2
- package/dist/card-CIlY38WI.js.map +1 -0
- package/dist/card.cjs.js +1 -1
- package/dist/card.es.js +1 -1
- package/dist/{carousel-BIKcwvYz.mjs → carousel-Dq9yzk_-.mjs} +2 -2
- package/dist/{carousel-BIKcwvYz.mjs.map → carousel-Dq9yzk_-.mjs.map} +1 -1
- package/dist/{carousel-DnSaLDZf.js → carousel-j-s6M1hu.js} +2 -2
- package/dist/{carousel-DnSaLDZf.js.map → carousel-j-s6M1hu.js.map} +1 -1
- package/dist/carousel.cjs.js +1 -1
- package/dist/carousel.es.js +1 -1
- package/dist/{chat-field-Wjvh2J6C.js → chat-field-CLAjIHlM.js} +2 -2
- package/dist/{chat-field-Wjvh2J6C.js.map → chat-field-CLAjIHlM.js.map} +1 -1
- package/dist/{chat-field-CVF4DooY.mjs → chat-field-nxFRXoQx.mjs} +2 -2
- package/dist/{chat-field-CVF4DooY.mjs.map → chat-field-nxFRXoQx.mjs.map} +1 -1
- package/dist/chat-field.cjs.js +1 -1
- package/dist/chat-field.es.js +1 -1
- package/dist/{chip-group-B775zvKD.js → chip-group-BLuG0MC6.js} +2 -2
- package/dist/{chip-group-B775zvKD.js.map → chip-group-BLuG0MC6.js.map} +1 -1
- package/dist/{chip-group-xuOe7nL3.mjs → chip-group-Bo4kJ8Vq.mjs} +2 -2
- package/dist/{chip-group-xuOe7nL3.mjs.map → chip-group-Bo4kJ8Vq.mjs.map} +1 -1
- package/dist/chip-group.cjs.js +1 -1
- package/dist/chip-group.es.js +1 -1
- package/dist/color-dot-BEE5rKco.js.map +1 -1
- package/dist/color-dot-Dz9yzVX3.mjs.map +1 -1
- package/dist/{comparison-table-Dtqxz8vL.js → comparison-table-CRWRijfG.js} +2 -2
- package/dist/{comparison-table-Dtqxz8vL.js.map → comparison-table-CRWRijfG.js.map} +1 -1
- package/dist/{comparison-table-D1evE0ri.mjs → comparison-table-DYaRaP9Z.mjs} +3 -3
- package/dist/{comparison-table-D1evE0ri.mjs.map → comparison-table-DYaRaP9Z.mjs.map} +1 -1
- package/dist/comparison-table.cjs.js +1 -1
- package/dist/comparison-table.es.js +1 -1
- package/dist/components/accordion/src/accordion-item.d.ts +3 -3
- package/dist/components/accordion/src/accordion-item.d.ts.map +1 -1
- package/dist/components/accordion/src/accordion.d.ts +3 -7
- package/dist/components/accordion/src/accordion.d.ts.map +1 -1
- package/dist/components/accordion/src/accordion.visual.fixtures.d.ts.map +1 -1
- package/dist/components/alert-badge/src/alert-badge.d.ts +1 -1
- package/dist/components/avatar/src/avatar.d.ts +1 -1
- package/dist/components/badge/src/badge.d.ts +1 -1
- package/dist/components/button/src/button.d.ts +7 -8
- package/dist/components/button/src/button.d.ts.map +1 -1
- package/dist/components/button/src/button.visual.fixtures.d.ts +1 -1
- package/dist/components/calendar/src/calendar.d.ts.map +1 -1
- package/dist/components/card/src/card-content-container.d.ts +1 -1
- package/dist/components/card/src/card-content.d.ts +1 -1
- package/dist/components/card/src/card-cta.d.ts +1 -1
- package/dist/components/card/src/card-heading.d.ts +4 -4
- package/dist/components/card/src/card-heading.d.ts.map +1 -1
- package/dist/components/card/src/card-media-layout.d.ts +1 -1
- package/dist/components/card/src/card-media.d.ts +1 -1
- package/dist/components/card/src/card-root.d.ts +1 -1
- package/dist/components/checkbox/src/checkbox.d.ts +1 -1
- package/dist/components/color-dot/src/color-dot.d.ts +2 -1
- package/dist/components/color-dot/src/color-dot.d.ts.map +1 -1
- package/dist/components/content-block/src/content-block-group.d.ts +1 -1
- package/dist/components/content-block/src/content-block.d.ts +3 -3
- package/dist/components/content-block/src/content-block.d.ts.map +1 -1
- package/dist/components/country-flag-icon/src/all-country-flag-assets.d.ts +0 -1
- package/dist/components/country-flag-icon/src/all-country-flag-assets.d.ts.map +1 -1
- package/dist/components/country-flag-icon/src/country-flag-icon.d.ts +2 -2
- package/dist/components/cta-link/src/cta-link.d.ts +10 -10
- package/dist/components/date-picker/src/date-picker.d.ts +5 -5
- package/dist/components/date-range-field/src/date-range-field.d.ts +2 -2
- package/dist/components/date-range-field/src/date-range-field.d.ts.map +1 -1
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group-item.d.ts +1 -1
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts +4 -4
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts.map +1 -1
- package/dist/components/drawer/src/drawer-container.d.ts +1 -1
- package/dist/components/drawer/src/drawer-container.d.ts.map +1 -1
- package/dist/components/drawer/src/drawer-content.d.ts +2 -2
- package/dist/components/drawer/src/drawer-frame.d.ts +1 -1
- package/dist/components/drawer/src/drawer-handle.d.ts +1 -1
- package/dist/components/drawer/src/drawer-header.d.ts +1 -1
- package/dist/components/drawer/src/drawer-scroll-area.d.ts +1 -1
- package/dist/components/drawer/src/drawer.context.d.ts +2 -0
- package/dist/components/drawer/src/drawer.context.d.ts.map +1 -1
- package/dist/components/drawer/src/drawer.d.ts +2 -0
- package/dist/components/drawer/src/drawer.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-combobox.d.ts +2 -34
- package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-select.d.ts +2 -34
- package/dist/components/dropdown/src/dropdown-select.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-shared.d.ts +2 -1
- package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown.types.d.ts +24 -13
- package/dist/components/dropdown/src/dropdown.types.d.ts.map +1 -1
- package/dist/components/dropdown/src/useDropdown.d.ts +1 -1
- package/dist/components/dropdown/src/useDropdown.d.ts.map +1 -1
- package/dist/components/dropdown/src/useDropdownFilter.d.ts.map +1 -1
- package/dist/components/dropdown/src/useDropdownInput.d.ts.map +1 -1
- package/dist/components/field-error-text/src/field-error-text.d.ts +2 -2
- package/dist/components/file-upload/src/file-upload-button.d.ts +22 -0
- package/dist/components/file-upload/src/file-upload-button.d.ts.map +1 -0
- package/dist/components/file-upload/src/file-upload-drag-and-drop.d.ts +10 -0
- package/dist/components/file-upload/src/file-upload-drag-and-drop.d.ts.map +1 -0
- package/dist/components/file-upload/src/file-upload-file-name-label.d.ts +8 -0
- package/dist/components/file-upload/src/file-upload-file-name-label.d.ts.map +1 -0
- package/dist/components/file-upload/src/file-upload-icon.d.ts +8 -0
- package/dist/components/file-upload/src/file-upload-icon.d.ts.map +1 -0
- package/dist/components/file-upload/src/file-upload-types.d.ts +82 -0
- package/dist/components/file-upload/src/file-upload-types.d.ts.map +1 -0
- package/dist/components/file-upload/src/file-upload-utils.d.ts +7 -0
- package/dist/components/file-upload/src/file-upload-utils.d.ts.map +1 -0
- package/dist/components/file-upload/src/file-upload.d.ts +6 -0
- package/dist/components/file-upload/src/file-upload.d.ts.map +1 -0
- package/dist/components/file-upload/src/file-upload.visual.fixtures.d.ts +14 -0
- package/dist/components/file-upload/src/file-upload.visual.fixtures.d.ts.map +1 -0
- package/dist/components/footer/src/footer-navigation.d.ts +1 -1
- package/dist/components/footer/src/footer.d.ts +3 -3
- package/dist/components/grid/src/grid.item.d.ts +1 -1
- package/dist/components/heading/src/heading.d.ts +20 -2
- package/dist/components/heading/src/heading.d.ts.map +1 -1
- package/dist/components/hero-banner/src/hero-banner-actions.d.ts +1 -1
- package/dist/components/hero-banner/src/hero-banner-media.d.ts +1 -1
- package/dist/components/hero-banner/src/hero-banner-types.d.ts +2 -2
- package/dist/components/hero-banner/src/hero-banner-types.d.ts.map +1 -1
- package/dist/components/hero-banner/src/hero-banner.d.ts +1 -1
- package/dist/components/hero-banner/src/hero-banner.d.ts.map +1 -1
- package/dist/components/icon/src/icon.d.ts +2 -2
- package/dist/components/label/src/label.d.ts +1 -1
- package/dist/components/listbox/src/listbox-item.d.ts +1 -1
- package/dist/components/loading/src/loading-illustrative.d.ts +1 -1
- package/dist/components/logo/src/logo.types.d.ts +2 -2
- package/dist/components/modal/src/modal-content.d.ts +1 -1
- package/dist/components/modal/src/modal-content.d.ts.map +1 -1
- package/dist/components/notification-banner/src/notification-banner.d.ts +5 -5
- package/dist/components/notification-banner/src/notification-banner.d.ts.map +1 -1
- package/dist/components/pagination/src/pagination-page-selector.d.ts +2 -2
- package/dist/components/pagination/src/pagination-page-trigger.d.ts +1 -1
- package/dist/components/pagination/src/pagination-step-trigger.d.ts +2 -2
- package/dist/components/pagination/src/pagination-truncation-separator.d.ts +1 -1
- package/dist/components/pagination/src/types.d.ts +1 -1
- package/dist/components/pagination/src/use-page-options.hook.d.ts +1 -1
- package/dist/components/pagination/src/use-page-size-options.hook.d.ts +1 -1
- package/dist/components/password-field/src/password-strength-indicator.d.ts +1 -1
- package/dist/components/password-field/src/password-strength.d.ts +2 -2
- package/dist/components/promotion-card/src/promotion-card.d.ts +9 -9
- package/dist/components/promotion-card/src/promotion-card.d.ts.map +1 -1
- package/dist/components/quantity-selector/src/quantity-selector-button.d.ts +2 -3
- package/dist/components/quantity-selector/src/quantity-selector-button.d.ts.map +1 -1
- package/dist/components/quantity-selector/src/quantity-selector.d.ts +2 -5
- package/dist/components/quantity-selector/src/quantity-selector.d.ts.map +1 -1
- package/dist/components/radio-card-group/src/radio-card-group.d.ts +2 -2
- package/dist/components/radio-card-group/src/radio-card-item.d.ts +1 -1
- package/dist/components/rich-text/src/types.d.ts +3 -3
- package/dist/components/search-field/src/search-field.d.ts +6 -6
- package/dist/components/skeleton/src/skeleton.d.ts +1 -1
- package/dist/components/spinner/src/spinner.d.ts +2 -2
- package/dist/components/stepper/src/stepper-container.d.ts +1 -1
- package/dist/components/stepper/src/stepper-content.d.ts +1 -1
- package/dist/components/stepper/src/{stepper-button.d.ts → stepper-link.d.ts} +5 -4
- package/dist/components/stepper/src/stepper-link.d.ts.map +1 -0
- package/dist/components/stepper/src/stepper-nav-items.d.ts +1 -0
- package/dist/components/stepper/src/stepper-nav-items.d.ts.map +1 -1
- package/dist/components/stepper/src/stepper.d.ts.map +1 -1
- package/dist/components/stepper/src/types.d.ts +2 -2
- package/dist/components/stepper/src/types.d.ts.map +1 -1
- package/dist/components/stepper/src/use-content-focus.hook.d.ts.map +1 -1
- package/dist/components/table/src/cell-types/button-group-cell.d.ts +3 -3
- package/dist/components/table/src/draggable-table.d.ts.map +1 -1
- package/dist/components/table/src/table-column-header-cell.d.ts +1 -2
- package/dist/components/table/src/table-column-header-cell.d.ts.map +1 -1
- package/dist/components/table/src/table-content.d.ts +1 -1
- package/dist/components/table/src/table-headers.d.ts +2 -3
- package/dist/components/table/src/table-headers.d.ts.map +1 -1
- package/dist/components/table/src/table-settings-drawer.d.ts +11 -20
- package/dist/components/table/src/table-settings-drawer.d.ts.map +1 -1
- package/dist/components/table/src/table.d.ts +2 -9
- package/dist/components/table/src/table.d.ts.map +1 -1
- package/dist/components/table/src/test-utils/helpers.d.ts +10 -19
- package/dist/components/table/src/test-utils/helpers.d.ts.map +1 -1
- package/dist/components/table/src/test-utils/table-data.d.ts +3 -3
- package/dist/components/tabs/src/tab-content.d.ts +3 -1
- package/dist/components/tabs/src/tab-content.d.ts.map +1 -1
- package/dist/components/text-area/src/text-area.d.ts +1 -1
- package/dist/components/text-field/src/text-field-ai.d.ts +4 -4
- package/dist/components/text-field/src/text-field-base.d.ts +4 -4
- package/dist/components/text-field/src/text-field.d.ts +5 -5
- package/dist/components/text-spacing/src/text-spacing.d.ts +2 -2
- package/dist/components/tooltip/src/tooltip.d.ts +4 -6
- package/dist/components/tooltip/src/tooltip.d.ts.map +1 -1
- package/dist/components-metadata.js +20 -10
- package/dist/{content-block-CDMrz41K.mjs → content-block-BCM0I3Y2.mjs} +2 -2
- package/dist/content-block-BCM0I3Y2.mjs.map +1 -0
- package/dist/{content-block-DyYAnL2e.js → content-block-DQppQumZ.js} +2 -2
- package/dist/content-block-DQppQumZ.js.map +1 -0
- package/dist/content-block.cjs.js +1 -1
- package/dist/content-block.es.js +1 -1
- package/dist/core.esm-BmIwrKkJ.js +6 -0
- package/dist/core.esm-BmIwrKkJ.js.map +1 -0
- package/dist/core.esm-CKGHpLM_.mjs +2892 -0
- package/dist/core.esm-CKGHpLM_.mjs.map +1 -0
- package/dist/country-flag-icon/LICENSE.txt +11 -0
- package/dist/country-flag-icon/all-country-flag-assets.cjs.js +1 -1
- package/dist/country-flag-icon/all-country-flag-assets.cjs.js.map +1 -1
- package/dist/country-flag-icon/all-country-flag-assets.d.ts +0 -1
- package/dist/country-flag-icon/all-country-flag-assets.d.ts.map +1 -1
- package/dist/country-flag-icon/all-country-flag-assets.es.js +0 -1
- package/dist/country-flag-icon/all-country-flag-assets.es.js.map +1 -1
- package/dist/country-flag-icon/dynamic-country-flag-icon.cjs.js +2 -0
- package/dist/country-flag-icon/dynamic-country-flag-icon.cjs.js.map +1 -0
- package/dist/country-flag-icon/dynamic-country-flag-icon.es.js +366 -0
- package/dist/country-flag-icon/dynamic-country-flag-icon.es.js.map +1 -0
- package/dist/{date-field-hA79n6mP.js → date-field-CtpWDaSh.js} +2 -2
- package/dist/{date-field-hA79n6mP.js.map → date-field-CtpWDaSh.js.map} +1 -1
- package/dist/{date-field-DVp_RMNm.mjs → date-field-_rCuf15v.mjs} +2 -2
- package/dist/{date-field-DVp_RMNm.mjs.map → date-field-_rCuf15v.mjs.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/{date-picker-Dzoo_hhQ.js → date-picker-BYlszX1W.js} +2 -2
- package/dist/{date-picker-Dzoo_hhQ.js.map → date-picker-BYlszX1W.js.map} +1 -1
- package/dist/{date-picker-B8ta-Q8V.mjs → date-picker-sqcNAplg.mjs} +6 -6
- package/dist/{date-picker-B8ta-Q8V.mjs.map → date-picker-sqcNAplg.mjs.map} +1 -1
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/date-range-field-B33XeBW8.js +2 -0
- package/dist/date-range-field-B33XeBW8.js.map +1 -0
- package/dist/{date-range-field-BZUjfftV.mjs → date-range-field-BmjQeiOv.mjs} +23 -23
- package/dist/date-range-field-BmjQeiOv.mjs.map +1 -0
- package/dist/date-range-field.cjs.js +1 -1
- package/dist/date-range-field.es.js +1 -1
- package/dist/{dismissable-chip-group-2updhyuR.js → dismissable-chip-group-5ALErhD2.js} +2 -2
- package/dist/dismissable-chip-group-5ALErhD2.js.map +1 -0
- package/dist/{dismissable-chip-group-Cfs2s2BH.mjs → dismissable-chip-group-DMNU7g5e.mjs} +3 -3
- package/dist/dismissable-chip-group-DMNU7g5e.mjs.map +1 -0
- package/dist/dismissable-chip-group.cjs.js +1 -1
- package/dist/dismissable-chip-group.es.js +1 -1
- package/dist/{drawer-cIUx6WSZ.mjs → drawer-Chx3H8EU.mjs} +241 -233
- package/dist/drawer-Chx3H8EU.mjs.map +1 -0
- package/dist/drawer-oFJcxW58.js +2 -0
- package/dist/drawer-oFJcxW58.js.map +1 -0
- package/dist/drawer.cjs.js +1 -1
- package/dist/drawer.es.js +1 -1
- package/dist/dropdown-Bn7WvsL2.js +2 -0
- package/dist/dropdown-Bn7WvsL2.js.map +1 -0
- package/dist/dropdown-CrufJnb4.mjs +945 -0
- package/dist/dropdown-CrufJnb4.mjs.map +1 -0
- package/dist/dropdown.cjs.js +1 -1
- package/dist/dropdown.es.js +1 -1
- package/dist/file-upload-Ctw6LCTU.mjs +589 -0
- package/dist/file-upload-Ctw6LCTU.mjs.map +1 -0
- package/dist/file-upload-MvNuX4ks.js +2 -0
- package/dist/file-upload-MvNuX4ks.js.map +1 -0
- package/dist/file-upload.cjs.js +2 -0
- package/dist/file-upload.cjs.js.map +1 -0
- package/dist/file-upload.es.js +5 -0
- package/dist/file-upload.es.js.map +1 -0
- package/dist/{floating-ui.react-dom-EredA301.mjs → floating-ui.react-dom-1kwKo24Z.mjs} +15 -15
- package/dist/{floating-ui.react-dom-EredA301.mjs.map → floating-ui.react-dom-1kwKo24Z.mjs.map} +1 -1
- package/dist/footer-Bbemct3Z.js +2 -0
- package/dist/footer-Bbemct3Z.js.map +1 -0
- package/dist/{footer-D-2b7UIB.mjs → footer-DkVmTd-f.mjs} +25 -25
- package/dist/footer-DkVmTd-f.mjs.map +1 -0
- package/dist/footer.cjs.js +1 -1
- package/dist/footer.es.js +1 -1
- package/dist/{heading-xwBuT_-9.mjs → heading-BG7JTFO1.mjs} +25 -24
- package/dist/heading-BG7JTFO1.mjs.map +1 -0
- package/dist/{heading-drD5ugCC.js → heading-BPeRwNYu.js} +2 -2
- package/dist/heading-BPeRwNYu.js.map +1 -0
- package/dist/heading.cjs.js +1 -1
- package/dist/heading.es.js +6 -5
- package/dist/{hero-banner-n9K-Jsdz.mjs → hero-banner-ChDoFRhq.mjs} +4 -4
- package/dist/hero-banner-ChDoFRhq.mjs.map +1 -0
- package/dist/{hero-banner--v-ezYMr.js → hero-banner-Mag1OwL4.js} +2 -2
- package/dist/hero-banner-Mag1OwL4.js.map +1 -0
- package/dist/hero-banner.cjs.js +1 -1
- package/dist/hero-banner.es.js +1 -1
- package/dist/index-BPY_9ddu.js +2 -0
- package/dist/index-BPY_9ddu.js.map +1 -0
- package/dist/index-Fewa56cA.mjs +440 -0
- package/dist/index-Fewa56cA.mjs.map +1 -0
- package/dist/libraries/library/src/calendar.d.ts +1 -1
- package/dist/libraries/library/src/card.d.ts +1 -1
- package/dist/libraries/library/src/container.d.ts +1 -1
- package/dist/libraries/library/src/content-block.d.ts +1 -1
- package/dist/libraries/library/src/dismissable-chip-group.d.ts +1 -1
- package/dist/libraries/library/src/drawer.d.ts +1 -1
- package/dist/libraries/library/src/file-upload.d.ts +6 -0
- package/dist/libraries/library/src/file-upload.d.ts.map +1 -0
- package/dist/libraries/library/src/library.d.ts +2 -1
- package/dist/libraries/library/src/library.d.ts.map +1 -1
- package/dist/libraries/library/src/notification-banner.d.ts +1 -1
- package/dist/libraries/library/src/notification.d.ts +1 -1
- package/dist/libraries/library/src/password-field.d.ts +6 -2
- package/dist/libraries/library/src/password-field.d.ts.map +1 -1
- package/dist/libraries/library/src/radio-button-group.d.ts +1 -1
- package/dist/libraries/library/src/radio-card-group.d.ts +1 -1
- package/dist/libraries/library/src/spinner.d.ts +1 -1
- package/dist/libraries/library/src/stepper.d.ts +1 -1
- package/dist/libraries/library/src/tooltip.d.ts +1 -1
- package/dist/libraries/library/src/visually-hidden.d.ts +1 -1
- package/dist/libraries/theme/src/ThemeProvider.d.ts +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +603 -601
- package/dist/library.es.js.map +1 -1
- package/dist/link-Dzqd0QuD.js +2 -0
- package/dist/{link-DhWVrkTz.js.map → link-Dzqd0QuD.js.map} +1 -1
- package/dist/link-ccCdDvBc.mjs +72 -0
- package/dist/{link-DY5WLpyc.mjs.map → link-ccCdDvBc.mjs.map} +1 -1
- package/dist/link.cjs.js +1 -1
- package/dist/link.es.js +1 -1
- package/dist/main-B501z9Ql.js +2 -0
- package/dist/main-B501z9Ql.js.map +1 -0
- package/dist/main-L71Sqg3s.mjs +1016 -0
- package/dist/main-L71Sqg3s.mjs.map +1 -0
- package/dist/{modal-D0Qxrvx5.js → modal-CXOYUsJm.js} +2 -2
- package/dist/modal-CXOYUsJm.js.map +1 -0
- package/dist/{modal-Bu1Zv5Ic.mjs → modal-Pwvhrzn-.mjs} +31 -31
- package/dist/modal-Pwvhrzn-.mjs.map +1 -0
- package/dist/modal.cjs.js +1 -1
- package/dist/modal.es.js +1 -1
- package/dist/{notification-D2oClkX2.js → notification-BkM2vLzI.js} +2 -2
- package/dist/{notification-D2oClkX2.js.map → notification-BkM2vLzI.js.map} +1 -1
- package/dist/{notification-DiVdy6E_.mjs → notification-Cbn0UN1p.mjs} +3 -3
- package/dist/{notification-DiVdy6E_.mjs.map → notification-Cbn0UN1p.mjs.map} +1 -1
- package/dist/notification-banner-B9RhXAZ8.js +2 -0
- package/dist/notification-banner-B9RhXAZ8.js.map +1 -0
- package/dist/{notification-banner-CZTQZ5Le.mjs → notification-banner-C4NVekCZ.mjs} +5 -5
- package/dist/notification-banner-C4NVekCZ.mjs.map +1 -0
- package/dist/notification-banner.cjs.js +1 -1
- package/dist/notification-banner.es.js +1 -1
- package/dist/notification.cjs.js +1 -1
- package/dist/notification.es.js +1 -1
- package/dist/password-field-Cy_E-D_G.mjs +200 -0
- package/dist/password-field-Cy_E-D_G.mjs.map +1 -0
- package/dist/password-field-lKyWHjQS.js +2 -0
- package/dist/password-field-lKyWHjQS.js.map +1 -0
- package/dist/password-field.cjs.js +2 -0
- package/dist/password-field.cjs.js.map +1 -0
- package/dist/password-field.es.js +6 -0
- package/dist/password-field.es.js.map +1 -0
- package/dist/popover-B6ntmuEK.mjs +614 -0
- package/dist/popover-B6ntmuEK.mjs.map +1 -0
- package/dist/popover-DJHMEFXP.js +2 -0
- package/dist/popover-DJHMEFXP.js.map +1 -0
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/{product-card-CxfHfJVV.mjs → product-card-BMseoNrG.mjs} +3 -3
- package/dist/{product-card-CxfHfJVV.mjs.map → product-card-BMseoNrG.mjs.map} +1 -1
- package/dist/{product-card-XxBwuxM-.js → product-card-D0jX5-up.js} +2 -2
- package/dist/{product-card-XxBwuxM-.js.map → product-card-D0jX5-up.js.map} +1 -1
- package/dist/product-card.cjs.js +1 -1
- package/dist/product-card.es.js +1 -1
- package/dist/{promotion-card-C1UoxzcV.js → promotion-card-B3mz__m7.js} +2 -2
- package/dist/promotion-card-B3mz__m7.js.map +1 -0
- package/dist/{promotion-card-CooYPpFo.mjs → promotion-card-Co6qAkTZ.mjs} +5 -5
- package/dist/promotion-card-Co6qAkTZ.mjs.map +1 -0
- package/dist/promotion-card.cjs.js +1 -1
- package/dist/promotion-card.es.js +1 -1
- package/dist/purpur.css +1 -1
- package/dist/quantity-selector-Cy0aJGGX.js +2 -0
- package/dist/quantity-selector-Cy0aJGGX.js.map +1 -0
- package/dist/quantity-selector-k6ZaVrk1.mjs +162 -0
- package/dist/quantity-selector-k6ZaVrk1.mjs.map +1 -0
- package/dist/quantity-selector.cjs.js +1 -1
- package/dist/quantity-selector.es.js +2 -3
- package/dist/{radio-button-group-D_F6kWD6.mjs → radio-button-group-DjiTo3b1.mjs} +2 -2
- package/dist/{radio-button-group-D_F6kWD6.mjs.map → radio-button-group-DjiTo3b1.mjs.map} +1 -1
- package/dist/{radio-button-group-CdUrC7h9.js → radio-button-group-uCRGh1H5.js} +2 -2
- package/dist/{radio-button-group-CdUrC7h9.js.map → radio-button-group-uCRGh1H5.js.map} +1 -1
- package/dist/radio-button-group.cjs.js +1 -1
- package/dist/radio-button-group.es.js +1 -1
- package/dist/{radio-card-group-B9_jOJnM.mjs → radio-card-group-DoM7qYO1.mjs} +2 -2
- package/dist/{radio-card-group-B9_jOJnM.mjs.map → radio-card-group-DoM7qYO1.mjs.map} +1 -1
- package/dist/{radio-card-group-DcdGkfOp.js → radio-card-group-_9wJC-s3.js} +2 -2
- package/dist/{radio-card-group-DcdGkfOp.js.map → radio-card-group-_9wJC-s3.js.map} +1 -1
- package/dist/radio-card-group.cjs.js +1 -1
- package/dist/radio-card-group.es.js +1 -1
- package/dist/rich-text.cjs.js +1 -1
- package/dist/rich-text.es.js +1 -1
- package/dist/{search-field-afhtC6q5.mjs → search-field-BTJtRyw5.mjs} +3 -3
- package/dist/{search-field-afhtC6q5.mjs.map → search-field-BTJtRyw5.mjs.map} +1 -1
- package/dist/{search-field-WJBtiK0K.js → search-field-nzVXak1a.js} +2 -2
- package/dist/{search-field-WJBtiK0K.js.map → search-field-nzVXak1a.js.map} +1 -1
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +1 -1
- package/dist/stepper-D59T-Y2_.mjs +469 -0
- package/dist/stepper-D59T-Y2_.mjs.map +1 -0
- package/dist/stepper-Dao4XaDV.js +2 -0
- package/dist/stepper-Dao4XaDV.js.map +1 -0
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/table-DRSgesQ4.mjs +4545 -0
- package/dist/table-DRSgesQ4.mjs.map +1 -0
- package/dist/table-zBs9JALh.js +5 -0
- package/dist/table-zBs9JALh.js.map +1 -0
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/tabs-D2__wbCs.js +2 -0
- package/dist/tabs-D2__wbCs.js.map +1 -0
- package/dist/tabs-DOG5g2wf.mjs +440 -0
- package/dist/tabs-DOG5g2wf.mjs.map +1 -0
- package/dist/tabs.cjs.js +1 -1
- package/dist/tabs.es.js +1 -1
- package/dist/{text-field-VW8ObP83.js → text-field-BSgqJjpv.js} +2 -2
- package/dist/text-field-BSgqJjpv.js.map +1 -0
- package/dist/{text-field-D0e-cRbG.mjs → text-field-MQHeITxy.mjs} +3 -3
- package/dist/text-field-MQHeITxy.mjs.map +1 -0
- package/dist/text-field.cjs.js +1 -1
- package/dist/text-field.es.js +1 -1
- package/dist/tooltip-DeP1UsPW.js +2 -0
- package/dist/{tooltip-B-11qk-0.js.map → tooltip-DeP1UsPW.js.map} +1 -1
- package/dist/{tooltip-DngYHn5W.mjs → tooltip-bqdd2lJL.mjs} +347 -309
- package/dist/{tooltip-DngYHn5W.mjs.map → tooltip-bqdd2lJL.mjs.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/package.json +21 -26
- package/scripts/generate.mts +1 -4
- package/src/aliases.ts +8 -4
- package/src/entries.js +2 -1
- package/src/{autocomplete.ts → file-upload.ts} +1 -1
- package/src/library.ts +2 -2
- package/src/password-field.ts +0 -1
- package/src/purpur.css +4 -0
- package/dist/accordion-B6OoQ4uZ.mjs +0 -128
- package/dist/accordion-B6OoQ4uZ.mjs.map +0 -1
- package/dist/accordion-BfpN5h4C.js +0 -2
- package/dist/accordion-BfpN5h4C.js.map +0 -1
- package/dist/autocomplete-BX1KDZqL.js +0 -2
- package/dist/autocomplete-BX1KDZqL.js.map +0 -1
- package/dist/autocomplete-CmLzmWp4.mjs +0 -228
- package/dist/autocomplete-CmLzmWp4.mjs.map +0 -1
- package/dist/autocomplete.cjs.js +0 -2
- package/dist/autocomplete.cjs.js.map +0 -1
- package/dist/autocomplete.es.js +0 -6
- package/dist/autocomplete.es.js.map +0 -1
- package/dist/button-4-yWOgtD.mjs +0 -109
- package/dist/button-4-yWOgtD.mjs.map +0 -1
- package/dist/button-DmybVApa.js +0 -2
- package/dist/button-DmybVApa.js.map +0 -1
- package/dist/card-pdsBEJif.js.map +0 -1
- package/dist/card-t2ZkZ82G.mjs.map +0 -1
- package/dist/components/autocomplete/src/autocomplete.d.ts +0 -18
- package/dist/components/autocomplete/src/autocomplete.d.ts.map +0 -1
- package/dist/components/autocomplete/src/useAutocomplete.d.ts +0 -59
- package/dist/components/autocomplete/src/useAutocomplete.d.ts.map +0 -1
- package/dist/components/autocomplete/src/utils.d.ts +0 -7
- package/dist/components/autocomplete/src/utils.d.ts.map +0 -1
- package/dist/components/stepper/src/stepper-button.d.ts.map +0 -1
- package/dist/content-block-CDMrz41K.mjs.map +0 -1
- package/dist/content-block-DyYAnL2e.js.map +0 -1
- package/dist/date-range-field-BZUjfftV.mjs.map +0 -1
- package/dist/date-range-field-Dqqgj41u.js +0 -2
- package/dist/date-range-field-Dqqgj41u.js.map +0 -1
- package/dist/dismissable-chip-group-2updhyuR.js.map +0 -1
- package/dist/dismissable-chip-group-Cfs2s2BH.mjs.map +0 -1
- package/dist/drawer-DyLQfvEh.js +0 -2
- package/dist/drawer-DyLQfvEh.js.map +0 -1
- package/dist/drawer-cIUx6WSZ.mjs.map +0 -1
- package/dist/dropdown-C8VsfTQw.mjs +0 -936
- package/dist/dropdown-C8VsfTQw.mjs.map +0 -1
- package/dist/dropdown-p4R2yCnJ.js +0 -2
- package/dist/dropdown-p4R2yCnJ.js.map +0 -1
- package/dist/footer-Cn1-zG1v.js +0 -2
- package/dist/footer-Cn1-zG1v.js.map +0 -1
- package/dist/footer-D-2b7UIB.mjs.map +0 -1
- package/dist/heading-drD5ugCC.js.map +0 -1
- package/dist/heading-xwBuT_-9.mjs.map +0 -1
- package/dist/hero-banner--v-ezYMr.js.map +0 -1
- package/dist/hero-banner-n9K-Jsdz.mjs.map +0 -1
- package/dist/libraries/library/src/autocomplete.d.ts +0 -6
- package/dist/libraries/library/src/autocomplete.d.ts.map +0 -1
- package/dist/link-DY5WLpyc.mjs +0 -72
- package/dist/link-DhWVrkTz.js +0 -2
- package/dist/modal-Bu1Zv5Ic.mjs.map +0 -1
- package/dist/modal-D0Qxrvx5.js.map +0 -1
- package/dist/notification-banner-BxHwTFnH.js +0 -2
- package/dist/notification-banner-BxHwTFnH.js.map +0 -1
- package/dist/notification-banner-CZTQZ5Le.mjs.map +0 -1
- package/dist/popover-CY75TnbA.js +0 -2
- package/dist/popover-CY75TnbA.js.map +0 -1
- package/dist/popover-wiiwtqWE.mjs +0 -1043
- package/dist/popover-wiiwtqWE.mjs.map +0 -1
- package/dist/promotion-card-C1UoxzcV.js.map +0 -1
- package/dist/promotion-card-CooYPpFo.mjs.map +0 -1
- package/dist/quantity-selector-BEYMDsBM.js +0 -2
- package/dist/quantity-selector-BEYMDsBM.js.map +0 -1
- package/dist/quantity-selector-Cp-e5xKJ.mjs +0 -172
- package/dist/quantity-selector-Cp-e5xKJ.mjs.map +0 -1
- package/dist/stepper-20s8dnPA.mjs +0 -449
- package/dist/stepper-20s8dnPA.mjs.map +0 -1
- package/dist/stepper-VDiR2I8F.js +0 -2
- package/dist/stepper-VDiR2I8F.js.map +0 -1
- package/dist/table-B5ZitZoL.js +0 -9
- package/dist/table-B5ZitZoL.js.map +0 -1
- package/dist/table-CNIL-60s.mjs +0 -7428
- package/dist/table-CNIL-60s.mjs.map +0 -1
- package/dist/tabs-Bye5lgZ1.mjs +0 -424
- package/dist/tabs-Bye5lgZ1.mjs.map +0 -1
- package/dist/tabs-D-nfZHIA.js +0 -2
- package/dist/tabs-D-nfZHIA.js.map +0 -1
- package/dist/text-field-D0e-cRbG.mjs.map +0 -1
- package/dist/text-field-VW8ObP83.js.map +0 -1
- package/dist/tooltip-B-11qk-0.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"heading-xwBuT_-9.mjs","sources":["../../../components/heading/src/heading.tsx"],"sourcesContent":["import React, { type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames\";\n\nimport styles from \"./heading.module.scss\";\n\nexport const HeadingTag = {\n H1: \"h1\",\n H2: \"h2\",\n H3: \"h3\",\n H4: \"h4\",\n H5: \"h5\",\n H6: \"h6\",\n} as const;\n\nexport type HeadingTagType = (typeof HeadingTag)[keyof typeof HeadingTag];\n\nexport const TitleVariant = {\n TITLE100: \"title-100\",\n TITLE200: \"title-200\",\n TITLE300: \"title-300\",\n TITLE400: \"title-400\",\n TITLE500: \"title-500\",\n TITLE600: \"title-600\",\n TITLE700: \"title-700\",\n SUBSECTION100: \"subsection-100\",\n} as const;\n\nexport type TitleVariantType = (typeof TitleVariant)[keyof typeof TitleVariant];\n\nexport const DisplayVariant = {\n DISPLAY5: \"display-5\",\n DISPLAY10: \"display-10\",\n DISPLAY15: \"display-15\",\n DISPLAY20: \"display-20\",\n DISPLAY25: \"display-25\",\n DISPLAY50: \"display-50\",\n DISPLAY100: \"display-100\",\n DISPLAY200: \"display-200\",\n} as const;\n\nexport type DisplayVariantType = (typeof DisplayVariant)[keyof typeof DisplayVariant];\n\nexport type HeadingVariant = TitleVariantType | DisplayVariantType;\n\nexport type HeadingProps<T extends HeadingTagType> = Omit<BaseProps<T>, \"children\"> & {\n children: ReactNode;\n enableHyphenation?: boolean;\n negative?: boolean;\n tag: HeadingTagType;\n variant?: HeadingVariant;\n};\n\nconst rootClassName = \"purpur-heading\";\n\nexport const Heading = <T extends HeadingTagType>({\n children,\n className = \"\",\n enableHyphenation = false,\n negative = false,\n tag,\n variant = TitleVariant.TITLE100,\n ...props\n}: HeadingProps<T>) => {\n const Tag = tag;\n const classes = c([\n className,\n styles[rootClassName],\n styles[`${rootClassName}--${variant}`],\n {\n [styles[`${rootClassName}--hyphens`]]: enableHyphenation,\n [styles[`${rootClassName}--negative`]]: negative,\n },\n ]);\n\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n};\n\nHeading.displayName = \"Heading\";\n"],"names":["HeadingTag","TitleVariant","DisplayVariant","rootClassName","Heading","children","className","enableHyphenation","negative","tag","variant","props","Tag","classes","c","styles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;GAMaA,IAAa;AAAA,EACxB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAIaC,IAAe;AAAA,EAC1B,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AACjB,GAIaC,IAAiB;AAAA,EAC5B,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,YAAY;AACd,GAcMC,IAAgB,kBAETC,IAAU,CAA2B;AAAA,EAChD,UAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,mBAAAC,IAAoB;AAAA,EACpB,UAAAC,IAAW;AAAA,EACX,KAAAC;AAAA,EACA,SAAAC,IAAUT,EAAa;AAAA,EACvB,GAAGU;AACL,MAAuB;AACrB,QAAMC,IAAMH,GACNI,IAAUC,EAAE;AAAA,IAChBR;AAAA,IACAS,EAAOZ,CAAa;AAAA,IACpBY,EAAO,GAAGZ,CAAa,KAAKO,CAAO,EAAE;AAAA,IACrC;AAAA,MACE,CAACK,EAAO,GAAGZ,CAAa,WAAW,CAAC,GAAGI;AAAA,MACvC,CAACQ,EAAO,GAAGZ,CAAa,YAAY,CAAC,GAAGK;AAAA,IAAA;AAAA,EAC1C,CACD;AAED,2BACGI,GAAA,EAAI,WAAWC,GAAU,GAAGF,GAC1B,UAAAN,GACH;AAEJ;AAEAD,EAAQ,cAAc;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hero-banner--v-ezYMr.js","sources":["../../../components/hero-banner/src/hero-banner-actions.tsx","../../../components/icon/dist/assets/play-filled.es.js","../../../components/icon/dist/assets/tv-pause.es.js","../../../components/hero-banner/src/hero-banner-media.tsx","../../../components/hero-banner/src/hero-banner-types.ts","../../../components/hero-banner/src/hero-banner.tsx"],"sourcesContent":["import React, { type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./hero-banner.module.scss\";\n\ntype HeroBannerActionProps = Omit<BaseProps, \"children\"> & {\n /** One or several CTA links or buttons */\n children: ReactNode;\n};\n\nconst rootClassName = \"purpur-hero-banner\";\n\nconst cx = c.bind(styles);\n\nexport const HeroBannerActions = ({ children, className, ...props }: HeroBannerActionProps) => {\n return (\n <div {...props} className={cx(`${rootClassName}__actions`, className)}>\n {children}\n </div>\n );\n};\n","const l = {\n name: \"play-filled\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 12 5.5 19.794V4.206L19 12Z\"/><path fill-rule=\"evenodd\" d=\"M19.875 12a.875.875 0 0 1-.438.758l-13.5 7.794a.875.875 0 0 1-1.312-.758V4.206a.875.875 0 0 1 1.313-.758l13.5 7.794c.27.156.437.445.437.758Zm-13.5-6.279V18.28L17.25 12 6.375 5.721Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"play-filled\"],\n category: \"action\"\n};\nexport {\n l as playFilled\n};\n//# sourceMappingURL=play-filled.es.js.map\n","const a = {\n name: \"tv-pause\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 20h-3V4h3v16ZM8 20H5V4h3v16Z\"/><path fill-rule=\"evenodd\" d=\"M4.1 4a.9.9 0 0 1 .9-.9h3a.9.9 0 0 1 .9.9v16a.9.9 0 0 1-.9.9H5a.9.9 0 0 1-.9-.9V4Zm1.8.9v14.2h1.2V4.9H5.9Zm9.2-.9a.9.9 0 0 1 .9-.9h3a.9.9 0 0 1 .9.9v16a.9.9 0 0 1-.9.9h-3a.9.9 0 0 1-.9-.9V4Zm1.8.9v14.2h1.2V4.9h-1.2Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"tv-pause\"],\n category: \"action\"\n};\nexport {\n a as tvPause\n};\n//# sourceMappingURL=tv-pause.es.js.map\n","import React from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Icon } from \"@purpur/icon\";\nimport { playFilled } from \"@purpur/icon/assets/play-filled\";\nimport { tvPause } from \"@purpur/icon/assets/tv-pause\";\n\nimport styles from \"./hero-banner.module.scss\";\n\nconst rootClassName = \"purpur-hero-banner\";\n\ntype WithVideo = {\n /** Video pause/play button callback (your implementation should handle the state) */\n togglePausePlay: () => void;\n /** Video pause/play button status (your implementation should handle the state) */\n isPlaying?: boolean;\n /** Aria label for the pause/play button, when the video is playing */\n videoPauseAriaLabel: string;\n /** Aria label for the pause/play button, when the video is not playing */\n videoPlayAriaLabel: string;\n};\n\ntype WithoutVideo = {\n togglePausePlay?: never;\n isPlaying?: never;\n videoPauseAriaLabel?: never;\n videoPlayAriaLabel?: never;\n};\n\nexport type HeroBannerMediaProps = BaseProps & (WithVideo | WithoutVideo);\n\nexport const HeroBannerMedia = ({\n children,\n isPlaying,\n togglePausePlay,\n videoPauseAriaLabel,\n videoPlayAriaLabel,\n className,\n ...props\n}: HeroBannerMediaProps) =>\n children && (\n <div className={className} {...props}>\n {children}\n {!!togglePausePlay && (\n <Button\n variant=\"primary\"\n negative\n iconOnly\n onClick={() => {\n togglePausePlay();\n }}\n className={styles[`${rootClassName}__video-button`]}\n aria-label={isPlaying ? videoPauseAriaLabel : videoPlayAriaLabel}\n >\n <Icon size=\"xs\" svg={isPlaying ? tvPause : playFilled} />\n </Button>\n )}\n </div>\n );\n","import type { ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport type { ColorScheme } from \"@purpur/theme\";\n\nexport const TitleHyphenVariant = {\n default: \"default\",\n enabled: \"enabled\",\n disabled: \"disabled\",\n} as const;\n\nexport type TitleHyphens = (typeof TitleHyphenVariant)[keyof typeof TitleHyphenVariant];\n\nexport type HeroBannerProps = BaseProps & {\n /**\n * Custom content slot\n * Add your CTAs here with <HeroBanner.CTAs> component\n */\n children?: ReactNode;\n /**\n * Breadcrumbs: <br/>\n * - Slot for your Breadcrumbs component\n */\n breadcrumbs?: ReactNode;\n forceColorScheme?: ColorScheme;\n /**\n * Content to display before the main heading\n */\n beforeTitle?: ReactNode;\n /**\n * Main heading of the component\n */\n title: string;\n /**\n * Main heading tag\n */\n titleTag?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n titleHyphens?: TitleHyphens;\n /**\n * Preamble text\n */\n preamble?: string;\n /**\n * Additional text under the CTAs, recommended to limit element to simple text with text decorations\n */\n additionalText?: ReactNode;\n /**\n * <HeroBanner.Media /> component (images and videos)\n */\n media?: ReactNode;\n};\n","import React from \"react\";\nimport { Grid } from \"@purpur/grid\";\nimport { Heading } from \"@purpur/heading\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { useTheme } from \"@purpur/theme\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./hero-banner.module.scss\";\nimport { HeroBannerActions } from \"./hero-banner-actions\";\nimport { HeroBannerMedia } from \"./hero-banner-media\";\nimport type { HeroBannerProps } from \"./hero-banner-types\";\n\nexport type { HeroBannerMediaProps } from \"./hero-banner-media\";\nexport type { HeroBannerProps, TitleHyphens } from \"./hero-banner-types\";\nexport { TitleHyphenVariant } from \"./hero-banner-types\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-hero-banner\";\n\nexport const HeroBanner = ({\n children,\n className,\n breadcrumbs,\n forceColorScheme,\n beforeTitle,\n title,\n titleTag = \"h1\",\n titleHyphens = \"default\",\n preamble,\n additionalText,\n media,\n ...props\n}: HeroBannerProps) => {\n const { options } = useTheme();\n const classes = cx([rootClassName, className]);\n\n const hasMedia = Boolean(media);\n const hasBreadcrumbs = Boolean(breadcrumbs);\n const hasAdditionalText = Boolean(additionalText);\n\n const resolvedColorScheme = forceColorScheme ?? options?.heroBannerColorScheme;\n\n return (\n <section data-color-scheme={resolvedColorScheme} className={classes} {...props}>\n <Grid\n noGap\n className={cx([\n `${rootClassName}__container`,\n {\n [`${rootClassName}__container--with-media`]: hasMedia,\n [`${rootClassName}__container--no-media`]: !hasMedia,\n },\n ])}\n containerClassName={cx(`${rootClassName}__grid-container`)}\n >\n {breadcrumbs && <div className={cx(`${rootClassName}__breadcrumbs`)}>{breadcrumbs}</div>}\n\n <div className={cx([`${rootClassName}__media`, `${rootClassName}__media--sm`])}>\n {media}\n </div>\n\n <div\n className={cx([\n `${rootClassName}__content`,\n {\n [`${rootClassName}__content--no-media`]: !hasMedia,\n [`${rootClassName}__content--no-breadcrumbs`]: !hasBreadcrumbs,\n [`${rootClassName}__content--no-additional-text`]: !hasAdditionalText,\n },\n ])}\n >\n <div\n className={cx([\n `${rootClassName}__main-content`,\n {\n [`${rootClassName}__main-content--no-media`]: !hasMedia,\n },\n ])}\n >\n {beforeTitle}\n {title && (\n <Heading\n negative\n tag={titleTag}\n variant=\"display-50\"\n className={cx([\n `${rootClassName}__title`,\n `${rootClassName}__title--hyphens-${titleHyphens}`,\n ])}\n >\n {title}\n </Heading>\n )}\n {preamble && (\n <Paragraph\n negative\n variant=\"preamble-100\"\n className={cx(`${rootClassName}__preamble`)}\n >\n {preamble}\n </Paragraph>\n )}\n {children && <div className={cx(`${rootClassName}__custom-content`)}>{children}</div>}\n </div>\n\n {additionalText && (\n <Paragraph\n negative\n variant=\"additional-100\"\n className={styles[`${rootClassName}__additional-text`]}\n >\n {additionalText}\n </Paragraph>\n )}\n </div>\n\n <div className={cx([`${rootClassName}__media`, `${rootClassName}__media--lg`])}>\n {media}\n </div>\n </Grid>\n </section>\n );\n};\n\nHeroBanner.displayName = \"HeroBanner\";\n\nHeroBanner.Media = HeroBannerMedia;\nHeroBanner.Actions = HeroBannerActions;\n"],"names":["rootClassName","cx","c","styles","HeroBannerActions","children","className","props","jsx","l","a","HeroBannerMedia","isPlaying","togglePausePlay","videoPauseAriaLabel","videoPlayAriaLabel","jsxs","Button","Icon","tvPause","playFilled","TitleHyphenVariant","HeroBanner","breadcrumbs","forceColorScheme","beforeTitle","title","titleTag","titleHyphens","preamble","additionalText","media","options","useTheme","classes","hasMedia","hasBreadcrumbs","hasAdditionalText","resolvedColorScheme","Grid","Heading","Paragraph"],"mappings":"kyEAWMA,EAAgB,qBAEhBC,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAEXC,EAAoB,CAAC,CAAE,SAAAC,EAAU,UAAAC,EAAW,GAAGC,KAExDC,EAAAA,IAAC,MAAA,CAAK,GAAGD,EAAO,UAAWN,EAAG,GAAGD,CAAa,YAAaM,CAAS,EACjE,SAAAD,CAAA,CACH,ECnBEI,EAAI,CACR,KAAM,cACN,IAAK,2WACL,SAAU,CAAC,aAAa,EACxB,SAAU,QACZ,ECLMC,EAAI,CACR,KAAM,WACN,IAAK,gZACL,SAAU,CAAC,UAAU,EACrB,SAAU,QACZ,ECIMV,EAAgB,qBAsBTW,EAAkB,CAAC,CAC9B,SAAAN,EACA,UAAAO,EACA,gBAAAC,EACA,oBAAAC,EACA,mBAAAC,EACA,UAAAT,EACA,GAAGC,CACL,IACEF,GACEW,EAAAA,KAAC,MAAA,CAAI,UAAAV,EAAuB,GAAGC,EAC5B,SAAA,CAAAF,EACA,CAAC,CAACQ,GACDL,EAAAA,IAACS,EAAAA,OAAA,CACC,QAAQ,UACR,SAAQ,GACR,SAAQ,GACR,QAAS,IAAM,CACbJ,EAAA,CACF,EACA,UAAWV,EAAO,GAAGH,CAAa,gBAAgB,EAClD,aAAYY,EAAYE,EAAsBC,EAE9C,eAACG,EAAAA,EAAA,CAAK,KAAK,KAAK,IAAKN,EAAYO,EAAUC,CAAA,CAAY,CAAA,CAAA,CACzD,EAEJ,ECrDSC,EAAqB,CAChC,QAAS,UACT,QAAS,UACT,SAAU,UACZ,ECQMpB,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAElBH,EAAgB,qBAETsB,EAAa,CAAC,CACzB,SAAAjB,EACA,UAAAC,EACA,YAAAiB,EACA,iBAAAC,EACA,YAAAC,EACA,MAAAC,EACA,SAAAC,EAAW,KACX,aAAAC,EAAe,UACf,SAAAC,EACA,eAAAC,EACA,MAAAC,EACA,GAAGxB,CACL,IAAuB,CACrB,KAAM,CAAE,QAAAyB,CAAA,EAAYC,WAAA,EACdC,EAAUjC,EAAG,CAACD,EAAeM,CAAS,CAAC,EAEvC6B,EAAW,EAAQJ,EACnBK,EAAiB,EAAQb,EACzBc,EAAoB,EAAQP,EAE5BQ,EAAsBd,GAAoBQ,GAAS,sBAEzD,aACG,UAAA,CAAQ,oBAAmBM,EAAqB,UAAWJ,EAAU,GAAG3B,EACvE,SAAAS,EAAAA,KAACuB,EAAAA,KAAA,CACC,MAAK,GACL,UAAWtC,EAAG,CACZ,GAAGD,CAAa,cAChB,CACE,CAAC,GAAGA,CAAa,yBAAyB,EAAGmC,EAC7C,CAAC,GAAGnC,CAAa,uBAAuB,EAAG,CAACmC,CAAA,CAC9C,CACD,EACD,mBAAoBlC,EAAG,GAAGD,CAAa,kBAAkB,EAExD,SAAA,CAAAuB,GAAef,EAAAA,IAAC,OAAI,UAAWP,EAAG,GAAGD,CAAa,eAAe,EAAI,SAAAuB,CAAA,CAAY,EAElFf,EAAAA,IAAC,MAAA,CAAI,UAAWP,EAAG,CAAC,GAAGD,CAAa,UAAW,GAAGA,CAAa,aAAa,CAAC,EAC1E,SAAA+B,EACH,EAEAf,EAAAA,KAAC,MAAA,CACC,UAAWf,EAAG,CACZ,GAAGD,CAAa,YAChB,CACE,CAAC,GAAGA,CAAa,qBAAqB,EAAG,CAACmC,EAC1C,CAAC,GAAGnC,CAAa,2BAA2B,EAAG,CAACoC,EAChD,CAAC,GAAGpC,CAAa,+BAA+B,EAAG,CAACqC,CAAA,CACtD,CACD,EAED,SAAA,CAAArB,EAAAA,KAAC,MAAA,CACC,UAAWf,EAAG,CACZ,GAAGD,CAAa,iBAChB,CACE,CAAC,GAAGA,CAAa,0BAA0B,EAAG,CAACmC,CAAA,CACjD,CACD,EAEA,SAAA,CAAAV,EACAC,GACClB,EAAAA,IAACgC,EAAAA,QAAA,CACC,SAAQ,GACR,IAAKb,EACL,QAAQ,aACR,UAAW1B,EAAG,CACZ,GAAGD,CAAa,UAChB,GAAGA,CAAa,oBAAoB4B,CAAY,EAAA,CACjD,EAEA,SAAAF,CAAA,CAAA,EAGJG,GACCrB,EAAAA,IAACiC,EAAAA,UAAA,CACC,SAAQ,GACR,QAAQ,eACR,UAAWxC,EAAG,GAAGD,CAAa,YAAY,EAEzC,SAAA6B,CAAA,CAAA,EAGJxB,SAAa,MAAA,CAAI,UAAWJ,EAAG,GAAGD,CAAa,kBAAkB,EAAI,SAAAK,CAAA,CAAS,CAAA,CAAA,CAAA,EAGhFyB,GACCtB,EAAAA,IAACiC,EAAAA,UAAA,CACC,SAAQ,GACR,QAAQ,iBACR,UAAWtC,EAAO,GAAGH,CAAa,mBAAmB,EAEpD,SAAA8B,CAAA,CAAA,CACH,CAAA,CAAA,EAIJtB,EAAAA,IAAC,MAAA,CAAI,UAAWP,EAAG,CAAC,GAAGD,CAAa,UAAW,GAAGA,CAAa,aAAa,CAAC,EAC1E,SAAA+B,CAAA,CACH,CAAA,CAAA,CAAA,EAEJ,CAEJ,EAEAT,EAAW,YAAc,aAEzBA,EAAW,MAAQX,EACnBW,EAAW,QAAUlB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hero-banner-n9K-Jsdz.mjs","sources":["../../../components/hero-banner/src/hero-banner-actions.tsx","../../../components/icon/dist/assets/play-filled.es.js","../../../components/icon/dist/assets/tv-pause.es.js","../../../components/hero-banner/src/hero-banner-media.tsx","../../../components/hero-banner/src/hero-banner-types.ts","../../../components/hero-banner/src/hero-banner.tsx"],"sourcesContent":["import React, { type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./hero-banner.module.scss\";\n\ntype HeroBannerActionProps = Omit<BaseProps, \"children\"> & {\n /** One or several CTA links or buttons */\n children: ReactNode;\n};\n\nconst rootClassName = \"purpur-hero-banner\";\n\nconst cx = c.bind(styles);\n\nexport const HeroBannerActions = ({ children, className, ...props }: HeroBannerActionProps) => {\n return (\n <div {...props} className={cx(`${rootClassName}__actions`, className)}>\n {children}\n </div>\n );\n};\n","const l = {\n name: \"play-filled\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 12 5.5 19.794V4.206L19 12Z\"/><path fill-rule=\"evenodd\" d=\"M19.875 12a.875.875 0 0 1-.438.758l-13.5 7.794a.875.875 0 0 1-1.312-.758V4.206a.875.875 0 0 1 1.313-.758l13.5 7.794c.27.156.437.445.437.758Zm-13.5-6.279V18.28L17.25 12 6.375 5.721Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"play-filled\"],\n category: \"action\"\n};\nexport {\n l as playFilled\n};\n//# sourceMappingURL=play-filled.es.js.map\n","const a = {\n name: \"tv-pause\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19 20h-3V4h3v16ZM8 20H5V4h3v16Z\"/><path fill-rule=\"evenodd\" d=\"M4.1 4a.9.9 0 0 1 .9-.9h3a.9.9 0 0 1 .9.9v16a.9.9 0 0 1-.9.9H5a.9.9 0 0 1-.9-.9V4Zm1.8.9v14.2h1.2V4.9H5.9Zm9.2-.9a.9.9 0 0 1 .9-.9h3a.9.9 0 0 1 .9.9v16a.9.9 0 0 1-.9.9h-3a.9.9 0 0 1-.9-.9V4Zm1.8.9v14.2h1.2V4.9h-1.2Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"tv-pause\"],\n category: \"action\"\n};\nexport {\n a as tvPause\n};\n//# sourceMappingURL=tv-pause.es.js.map\n","import React from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Icon } from \"@purpur/icon\";\nimport { playFilled } from \"@purpur/icon/assets/play-filled\";\nimport { tvPause } from \"@purpur/icon/assets/tv-pause\";\n\nimport styles from \"./hero-banner.module.scss\";\n\nconst rootClassName = \"purpur-hero-banner\";\n\ntype WithVideo = {\n /** Video pause/play button callback (your implementation should handle the state) */\n togglePausePlay: () => void;\n /** Video pause/play button status (your implementation should handle the state) */\n isPlaying?: boolean;\n /** Aria label for the pause/play button, when the video is playing */\n videoPauseAriaLabel: string;\n /** Aria label for the pause/play button, when the video is not playing */\n videoPlayAriaLabel: string;\n};\n\ntype WithoutVideo = {\n togglePausePlay?: never;\n isPlaying?: never;\n videoPauseAriaLabel?: never;\n videoPlayAriaLabel?: never;\n};\n\nexport type HeroBannerMediaProps = BaseProps & (WithVideo | WithoutVideo);\n\nexport const HeroBannerMedia = ({\n children,\n isPlaying,\n togglePausePlay,\n videoPauseAriaLabel,\n videoPlayAriaLabel,\n className,\n ...props\n}: HeroBannerMediaProps) =>\n children && (\n <div className={className} {...props}>\n {children}\n {!!togglePausePlay && (\n <Button\n variant=\"primary\"\n negative\n iconOnly\n onClick={() => {\n togglePausePlay();\n }}\n className={styles[`${rootClassName}__video-button`]}\n aria-label={isPlaying ? videoPauseAriaLabel : videoPlayAriaLabel}\n >\n <Icon size=\"xs\" svg={isPlaying ? tvPause : playFilled} />\n </Button>\n )}\n </div>\n );\n","import type { ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport type { ColorScheme } from \"@purpur/theme\";\n\nexport const TitleHyphenVariant = {\n default: \"default\",\n enabled: \"enabled\",\n disabled: \"disabled\",\n} as const;\n\nexport type TitleHyphens = (typeof TitleHyphenVariant)[keyof typeof TitleHyphenVariant];\n\nexport type HeroBannerProps = BaseProps & {\n /**\n * Custom content slot\n * Add your CTAs here with <HeroBanner.CTAs> component\n */\n children?: ReactNode;\n /**\n * Breadcrumbs: <br/>\n * - Slot for your Breadcrumbs component\n */\n breadcrumbs?: ReactNode;\n forceColorScheme?: ColorScheme;\n /**\n * Content to display before the main heading\n */\n beforeTitle?: ReactNode;\n /**\n * Main heading of the component\n */\n title: string;\n /**\n * Main heading tag\n */\n titleTag?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n titleHyphens?: TitleHyphens;\n /**\n * Preamble text\n */\n preamble?: string;\n /**\n * Additional text under the CTAs, recommended to limit element to simple text with text decorations\n */\n additionalText?: ReactNode;\n /**\n * <HeroBanner.Media /> component (images and videos)\n */\n media?: ReactNode;\n};\n","import React from \"react\";\nimport { Grid } from \"@purpur/grid\";\nimport { Heading } from \"@purpur/heading\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { useTheme } from \"@purpur/theme\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./hero-banner.module.scss\";\nimport { HeroBannerActions } from \"./hero-banner-actions\";\nimport { HeroBannerMedia } from \"./hero-banner-media\";\nimport type { HeroBannerProps } from \"./hero-banner-types\";\n\nexport type { HeroBannerMediaProps } from \"./hero-banner-media\";\nexport type { HeroBannerProps, TitleHyphens } from \"./hero-banner-types\";\nexport { TitleHyphenVariant } from \"./hero-banner-types\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-hero-banner\";\n\nexport const HeroBanner = ({\n children,\n className,\n breadcrumbs,\n forceColorScheme,\n beforeTitle,\n title,\n titleTag = \"h1\",\n titleHyphens = \"default\",\n preamble,\n additionalText,\n media,\n ...props\n}: HeroBannerProps) => {\n const { options } = useTheme();\n const classes = cx([rootClassName, className]);\n\n const hasMedia = Boolean(media);\n const hasBreadcrumbs = Boolean(breadcrumbs);\n const hasAdditionalText = Boolean(additionalText);\n\n const resolvedColorScheme = forceColorScheme ?? options?.heroBannerColorScheme;\n\n return (\n <section data-color-scheme={resolvedColorScheme} className={classes} {...props}>\n <Grid\n noGap\n className={cx([\n `${rootClassName}__container`,\n {\n [`${rootClassName}__container--with-media`]: hasMedia,\n [`${rootClassName}__container--no-media`]: !hasMedia,\n },\n ])}\n containerClassName={cx(`${rootClassName}__grid-container`)}\n >\n {breadcrumbs && <div className={cx(`${rootClassName}__breadcrumbs`)}>{breadcrumbs}</div>}\n\n <div className={cx([`${rootClassName}__media`, `${rootClassName}__media--sm`])}>\n {media}\n </div>\n\n <div\n className={cx([\n `${rootClassName}__content`,\n {\n [`${rootClassName}__content--no-media`]: !hasMedia,\n [`${rootClassName}__content--no-breadcrumbs`]: !hasBreadcrumbs,\n [`${rootClassName}__content--no-additional-text`]: !hasAdditionalText,\n },\n ])}\n >\n <div\n className={cx([\n `${rootClassName}__main-content`,\n {\n [`${rootClassName}__main-content--no-media`]: !hasMedia,\n },\n ])}\n >\n {beforeTitle}\n {title && (\n <Heading\n negative\n tag={titleTag}\n variant=\"display-50\"\n className={cx([\n `${rootClassName}__title`,\n `${rootClassName}__title--hyphens-${titleHyphens}`,\n ])}\n >\n {title}\n </Heading>\n )}\n {preamble && (\n <Paragraph\n negative\n variant=\"preamble-100\"\n className={cx(`${rootClassName}__preamble`)}\n >\n {preamble}\n </Paragraph>\n )}\n {children && <div className={cx(`${rootClassName}__custom-content`)}>{children}</div>}\n </div>\n\n {additionalText && (\n <Paragraph\n negative\n variant=\"additional-100\"\n className={styles[`${rootClassName}__additional-text`]}\n >\n {additionalText}\n </Paragraph>\n )}\n </div>\n\n <div className={cx([`${rootClassName}__media`, `${rootClassName}__media--lg`])}>\n {media}\n </div>\n </Grid>\n </section>\n );\n};\n\nHeroBanner.displayName = \"HeroBanner\";\n\nHeroBanner.Media = HeroBannerMedia;\nHeroBanner.Actions = HeroBannerActions;\n"],"names":["rootClassName","cx","c","styles","HeroBannerActions","children","className","props","jsx","l","a","HeroBannerMedia","isPlaying","togglePausePlay","videoPauseAriaLabel","videoPlayAriaLabel","jsxs","Button","Icon","tvPause","playFilled","TitleHyphenVariant","HeroBanner","breadcrumbs","forceColorScheme","beforeTitle","title","titleTag","titleHyphens","preamble","additionalText","media","options","useTheme","classes","hasMedia","hasBreadcrumbs","hasAdditionalText","resolvedColorScheme","Grid","Heading","Paragraph"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../../../src/autocomplete.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,sBAAsB,CAAC"}
|
package/dist/link-DY5WLpyc.mjs
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
-
import { c as v } from "./bind-CU-R61T-.mjs";
|
|
3
|
-
const g = {
|
|
4
|
-
"purpur-link": "_purpur-link_5pram_1",
|
|
5
|
-
"purpur-link--text": "_purpur-link--text_5pram_18",
|
|
6
|
-
"purpur-link--standalone": "_purpur-link--standalone_5pram_18",
|
|
7
|
-
"purpur-link--navigation": "_purpur-link--navigation_5pram_18",
|
|
8
|
-
"purpur-link--disable-visited": "_purpur-link--disable-visited_5pram_29",
|
|
9
|
-
"purpur-link--text-negative": "_purpur-link--text-negative_5pram_32",
|
|
10
|
-
"purpur-link--standalone-negative": "_purpur-link--standalone-negative_5pram_32",
|
|
11
|
-
"purpur-link--navigation-negative": "_purpur-link--navigation-negative_5pram_32",
|
|
12
|
-
"purpur-link--ensure-target-area": "_purpur-link--ensure-target-area_5pram_71",
|
|
13
|
-
"purpur-link--silent": "_purpur-link--silent_5pram_77"
|
|
14
|
-
}, c = v.bind(g), a = "purpur-link", N = {
|
|
15
|
-
TEXT: "text",
|
|
16
|
-
STANDALONE: "standalone",
|
|
17
|
-
NAVIGATION: "navigation"
|
|
18
|
-
}, b = Object.values(N), x = ({
|
|
19
|
-
["data-testid"]: r,
|
|
20
|
-
children: i,
|
|
21
|
-
className: _,
|
|
22
|
-
disableVisited: k = !0,
|
|
23
|
-
ensureTargetArea: o,
|
|
24
|
-
href: n,
|
|
25
|
-
negative: t = !1,
|
|
26
|
-
onClick: p,
|
|
27
|
-
rel: d,
|
|
28
|
-
silent: e,
|
|
29
|
-
target: m,
|
|
30
|
-
variant: u,
|
|
31
|
-
...l
|
|
32
|
-
}) => (
|
|
33
|
-
/* eslint-disable-next-line jsx-a11y/click-events-have-key-events */
|
|
34
|
-
/* @__PURE__ */ s(
|
|
35
|
-
"span",
|
|
36
|
-
{
|
|
37
|
-
className: c(
|
|
38
|
-
_,
|
|
39
|
-
a,
|
|
40
|
-
`${a}--${t ? `${u}-negative` : u}`,
|
|
41
|
-
{
|
|
42
|
-
[`${a}--silent`]: e,
|
|
43
|
-
[`${a}--negative`]: t,
|
|
44
|
-
[`${a}--disable-visited`]: k ?? e,
|
|
45
|
-
[`${a}--ensure-target-area`]: o
|
|
46
|
-
}
|
|
47
|
-
),
|
|
48
|
-
"data-testid": r,
|
|
49
|
-
onClick: n ? void 0 : p,
|
|
50
|
-
...n ? {} : l,
|
|
51
|
-
children: n ? /* @__PURE__ */ s(
|
|
52
|
-
"a",
|
|
53
|
-
{
|
|
54
|
-
href: n,
|
|
55
|
-
target: m,
|
|
56
|
-
rel: d,
|
|
57
|
-
onClick: p,
|
|
58
|
-
"data-testid": r ? `${r} a` : void 0,
|
|
59
|
-
...l,
|
|
60
|
-
children: i
|
|
61
|
-
}
|
|
62
|
-
) : i
|
|
63
|
-
}
|
|
64
|
-
)
|
|
65
|
-
);
|
|
66
|
-
x.displayName = "Link";
|
|
67
|
-
export {
|
|
68
|
-
N as L,
|
|
69
|
-
x as a,
|
|
70
|
-
b as l
|
|
71
|
-
};
|
|
72
|
-
//# sourceMappingURL=link-DY5WLpyc.mjs.map
|
package/dist/link-DhWVrkTz.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const l=require("react/jsx-runtime"),c=require("./bind-DeUYJ6m9.js"),N={"purpur-link":"_purpur-link_5pram_1","purpur-link--text":"_purpur-link--text_5pram_18","purpur-link--standalone":"_purpur-link--standalone_5pram_18","purpur-link--navigation":"_purpur-link--navigation_5pram_18","purpur-link--disable-visited":"_purpur-link--disable-visited_5pram_29","purpur-link--text-negative":"_purpur-link--text-negative_5pram_32","purpur-link--standalone-negative":"_purpur-link--standalone-negative_5pram_32","purpur-link--navigation-negative":"_purpur-link--navigation-negative_5pram_32","purpur-link--ensure-target-area":"_purpur-link--ensure-target-area_5pram_71","purpur-link--silent":"_purpur-link--silent_5pram_77"},x=c.c.bind(N),n="purpur-link",_={TEXT:"text",STANDALONE:"standalone",NAVIGATION:"navigation"},A=Object.values(_),k=({["data-testid"]:r,children:a,className:o,disableVisited:d=!0,ensureTargetArea:v,href:i,negative:t=!1,onClick:e,rel:g,silent:p,target:m,variant:u,...s})=>l.jsx("span",{className:x(o,n,`${n}--${t?`${u}-negative`:u}`,{[`${n}--silent`]:p,[`${n}--negative`]:t,[`${n}--disable-visited`]:d??p,[`${n}--ensure-target-area`]:v}),"data-testid":r,onClick:i?void 0:e,...i?{}:s,children:i?l.jsx("a",{href:i,target:m,rel:g,onClick:e,"data-testid":r?`${r} a`:void 0,...s,children:a}):a});k.displayName="Link";exports.LINK_VARIANT=_;exports.Link=k;exports.linkVariants=A;
|
|
2
|
-
//# sourceMappingURL=link-DhWVrkTz.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modal-Bu1Zv5Ic.mjs","sources":["../../../components/modal/src/modal-content.tsx","../../../components/modal/src/modal-trigger.tsx","../../../components/modal/src/modal.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Heading } from \"@purpur/heading\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { useThemePortalContainer } from \"@purpur/theme\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport {\n Close as RadixClose,\n Content as RadixContent,\n Description as RadixDescription,\n Overlay as RadixOverlay,\n Portal as RadixPortal,\n Title as RadixTitle,\n} from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport \"@purpur/notification/styles\";\nimport styles from \"./modal-content.module.scss\";\n\nexport type DefaultProps = Omit<BaseProps, \"children\"> & {\n /**\n * One or several CTA links or buttons\n * */\n actions?: ReactNode;\n children: ReactNode;\n /**\n * An optional accessible description to be announced when the dialog is opened.\n * */\n description?: string;\n /**\n * Prevents the modal from closing on click outside if set to `true`.\n * */\n disableCloseOnClickOutside?: boolean;\n /**\n * Visually hides the description if set to `true`.\n * */\n hideDescription?: boolean;\n /**\n * An optional image to be displayed at the top of the modal.\n * */\n image?: ReactNode;\n /**\n * Provide a Purpur Notification which will render beneath the modal buttons, otherwise leave it undefined.\n * */\n notification?: ReactNode;\n /**\n * Determines whether the button group should be fixed at the bottom or scroll with the content.\n * */\n stickyButtons?: boolean;\n /**\n * An accessible title to be announced when the dialog is opened.\n * */\n title: string;\n /**\n * z-index of the modal\n * */\n zIndex?: number;\n /**\n * Optional DOM element to portal the modal content into. When omitted,\n * the modal renders inside the nearest `ThemeProvider` so it inherits\n * the active color scheme. Pass `document.body` (or any other element) to\n * override. Pass `null` to fall back to Radix' default (`document.body`).\n * */\n container?: HTMLElement | null;\n /**\n * Event handler called when focus moves to the trigger after closing.\n * */\n onCloseAutoFocus?: (e: Event) => void;\n};\n\ntype NoCloseButtonProps = {\n /**\n * An accessible label for the close button.\n * */\n closeButtonAriaLabel?: never;\n /**\n * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.\n * */\n showCloseButton?: false;\n};\n\ntype CloseButtonProps = {\n /**\n * An accessible label for the close button.\n * */\n closeButtonAriaLabel: string;\n /**\n * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.\n * */\n showCloseButton: true;\n};\n\nexport type ModalContentProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);\n\nconst hasCloseButtonProps = (\n props: CloseButtonProps | NoCloseButtonProps\n): props is CloseButtonProps => (props as CloseButtonProps).showCloseButton === true;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-modal-content\";\n\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n actions,\n children,\n className,\n description,\n disableCloseOnClickOutside,\n hideDescription,\n image,\n stickyButtons = true,\n title,\n notification = undefined,\n zIndex,\n container,\n onCloseAutoFocus,\n ...props\n },\n ref\n ) => {\n const { closeButtonAriaLabel, showCloseButton, ...rest } = props;\n const [contentOverflow, setContentOverflow] = useState(false);\n const [scrollbarWidth, setScrollbarWidth] = useState(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const wrapperInnerRef = useRef<HTMLDivElement>(null);\n const themePortalContainer = useThemePortalContainer();\n const portalContainer =\n container === undefined ? themePortalContainer : container ?? undefined;\n\n const classes = cx(\n rootClassName,\n { [`${rootClassName}--with-image`]: !!image },\n { [`${rootClassName}--overflow`]: contentOverflow },\n { [`${rootClassName}--sticky-footer`]: stickyButtons },\n className\n );\n\n const getTestId = (id: string) => (dataTestId ? `${dataTestId} ${id}` : undefined);\n\n const handlePointerDownOutside = (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n if (disableCloseOnClickOutside) {\n event.preventDefault();\n }\n };\n\n const handleContentOverflow = useCallback(() => {\n if (!wrapperRef.current || !wrapperInnerRef.current) {\n return;\n }\n\n const computedStyle = window.getComputedStyle(wrapperRef.current, null);\n const wrapperHeight = parseFloat(computedStyle.getPropertyValue(\"height\"));\n const innerHeight = wrapperInnerRef.current.offsetHeight;\n\n setContentOverflow(wrapperHeight < innerHeight);\n\n setScrollbarWidth(\n (wrapperRef.current.offsetWidth ?? 0) - (wrapperRef.current.clientWidth ?? 0)\n );\n }, []);\n\n const handleInitialFocus = () => {\n const frame = wrapperInnerRef.current;\n if (frame) {\n const heading = frame.querySelector(\"h2\");\n\n heading &&\n setTimeout(() => {\n heading.focus();\n });\n }\n };\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (disableCloseOnClickOutside && !showCloseButton) {\n event.preventDefault();\n }\n };\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleContentOverflow);\n\n return () => {\n window.removeEventListener(\"resize\", handleContentOverflow);\n };\n }, [handleContentOverflow]);\n\n useEffect(() => {\n handleContentOverflow();\n }, [notification, children, handleContentOverflow]);\n\n return (\n <RadixPortal container={portalContainer}>\n <RadixOverlay className={cx(`${rootClassName}__overlay`)} style={{ zIndex }} />\n <RadixContent\n {...rest}\n className={classes}\n data-testid={dataTestId}\n ref={ref}\n {...(!description && { [\"aria-describedby\"]: undefined })}\n onPointerDownOutside={handlePointerDownOutside}\n onOpenAutoFocus={() => {\n handleContentOverflow();\n handleInitialFocus();\n }}\n onEscapeKeyDown={handleEscapeKeyDown}\n onCloseAutoFocus={onCloseAutoFocus}\n style={{ zIndex: `calc(${zIndex} + 1)` }}\n >\n <div ref={wrapperRef} className={cx(`${rootClassName}__wrapper`)}>\n {hasCloseButtonProps(props) && closeButtonAriaLabel && image && (\n <CloseButton\n aria-label={closeButtonAriaLabel}\n hasImage\n scrollbarWidth={scrollbarWidth}\n data-testid={getTestId(\"close-button\")}\n />\n )}\n <div ref={wrapperInnerRef} className={cx(`${rootClassName}__wrapper-inner`)}>\n <div className={cx(`${rootClassName}__header`)}>\n {hasCloseButtonProps(props) && closeButtonAriaLabel && !image && (\n <CloseButton\n aria-label={closeButtonAriaLabel}\n data-testid={getTestId(\"close-button\")}\n />\n )}\n <RadixTitle\n asChild\n className={cx(`${rootClassName}__title`)}\n data-testid={getTestId(\"title\")}\n >\n <Heading\n tag=\"h2\"\n variant=\"display-10\"\n tabIndex={-1}\n className={cx(`${rootClassName}__heading`)}\n >\n {title}\n </Heading>\n </RadixTitle>\n </div>\n {image && (\n <div\n className={cx(`${rootClassName}__image-wrapper`)}\n data-testid={getTestId(\"image\")}\n >\n {image}\n </div>\n )}\n <div className={cx(`${rootClassName}__body`)}>\n <div className={cx(`${rootClassName}__body-inner`)}>\n {description && hideDescription && (\n <VisuallyHidden asChild>\n <RadixDescription data-testid={getTestId(\"description\")}>\n {description}\n </RadixDescription>\n </VisuallyHidden>\n )}\n {description && !hideDescription && (\n <RadixDescription\n asChild\n className={cx(`${rootClassName}__description`)}\n data-testid={getTestId(\"description\")}\n >\n <Paragraph variant=\"paragraph-100\">{description}</Paragraph>\n </RadixDescription>\n )}\n <div>{children}</div>\n {!stickyButtons && <ModalActions actions={actions} notification={notification} />}\n </div>\n </div>\n </div>\n </div>\n\n {stickyButtons && <ModalActions actions={actions} notification={notification} />}\n </RadixContent>\n </RadixPortal>\n );\n }\n);\n\nconst CloseButton = ({\n [\"aria-label\"]: ariaLabel,\n hasImage,\n scrollbarWidth,\n [\"data-testid\"]: dataTestId,\n}: {\n [\"aria-label\"]: string;\n hasImage?: boolean;\n scrollbarWidth?: number;\n [\"data-testid\"]?: string;\n}) => (\n <RadixClose asChild>\n <Button\n variant={hasImage ? \"primary\" : \"tertiary-purple\"}\n negative={hasImage}\n size=\"sm\"\n iconOnly\n aria-label={ariaLabel}\n className={cx(`${rootClassName}__close-button`)}\n style={{ right: `calc(var(--purpur-spacing-100) + ${scrollbarWidth || 0}px)` }}\n data-testid={dataTestId}\n >\n <IconClose />\n </Button>\n </RadixClose>\n);\n\nexport const MAX_NUMBER_OF_ACTIONS = 3;\n\nexport const ModalActions = ({\n actions,\n notification,\n}: Pick<ModalContentProps, \"actions\" | \"notification\">) => {\n const notificationRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (notification) {\n notificationRef?.current?.scrollIntoView?.(false);\n }\n }, [notification]);\n\n return actions ? (\n <div className={cx(`${rootClassName}__actions`)}>\n <div className={cx(`${rootClassName}__actions-buttons`)} data-testid=\"modal actions\">\n {actions}\n </div>\n {notification && (\n <div className={cx(`${rootClassName}__notification`)} ref={notificationRef}>\n {notification}\n </div>\n )}\n <span className={cx(`${rootClassName}__actions-separator`)} />\n </div>\n ) : null;\n};\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Trigger as RadixTrigger } from \"@radix-ui/react-dialog\";\n\nexport type ModalTriggerProps = Omit<BaseProps<\"button\">, \"children\"> & {\n children: ReactNode;\n};\n\nexport const ModalTrigger = forwardRef<HTMLButtonElement, ModalTriggerProps>(\n ({ children, ...props }, ref) => {\n return (\n <RadixTrigger asChild ref={ref} {...props}>\n {children}\n </RadixTrigger>\n );\n }\n);\n","import React, { type ReactNode } from \"react\";\nimport { Root as RadixRoot } from \"@radix-ui/react-dialog\";\n\nimport { ModalContent } from \"./modal-content\";\nimport { ModalTrigger } from \"./modal-trigger\";\n\nexport type ModalProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * Event handler called when the open state of the dialog changes.\n * */\n onOpenChange?: (value: boolean) => void;\n /**\n * The controlled open state of the dialog. Must be used in conjunction with `onOpenChange`.\n * */\n open?: boolean;\n};\n\nexport const Modal = ({\n [\"data-testid\"]: dataTestId,\n children,\n open,\n onOpenChange,\n}: ModalProps) => (\n <RadixRoot open={open} onOpenChange={onOpenChange} data-testid={dataTestId}>\n {children}\n </RadixRoot>\n);\n\nModal.Trigger = ModalTrigger;\nModal.Content = ModalContent;\n\nModal.displayName = \"Modal\";\n"],"names":["hasCloseButtonProps","props","cx","c","styles","rootClassName","ModalContent","forwardRef","dataTestId","actions","children","className","description","disableCloseOnClickOutside","hideDescription","image","stickyButtons","title","notification","zIndex","container","onCloseAutoFocus","ref","closeButtonAriaLabel","showCloseButton","rest","contentOverflow","setContentOverflow","useState","scrollbarWidth","setScrollbarWidth","wrapperRef","useRef","wrapperInnerRef","themePortalContainer","useThemePortalContainer","portalContainer","classes","getTestId","id","handlePointerDownOutside","event","handleContentOverflow","useCallback","computedStyle","wrapperHeight","innerHeight","handleInitialFocus","frame","heading","handleEscapeKeyDown","useEffect","jsxs","RadixPortal","jsx","RadixOverlay","RadixContent","CloseButton","RadixTitle","Heading","VisuallyHidden","RadixDescription","Paragraph","ModalActions","ariaLabel","hasImage","RadixClose","Button","IconClose","notificationRef","ModalTrigger","RadixTrigger","Modal","open","onOpenChange","RadixRoot"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modal-D0Qxrvx5.js","sources":["../../../components/modal/src/modal-content.tsx","../../../components/modal/src/modal-trigger.tsx","../../../components/modal/src/modal.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Heading } from \"@purpur/heading\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { useThemePortalContainer } from \"@purpur/theme\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport {\n Close as RadixClose,\n Content as RadixContent,\n Description as RadixDescription,\n Overlay as RadixOverlay,\n Portal as RadixPortal,\n Title as RadixTitle,\n} from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport \"@purpur/notification/styles\";\nimport styles from \"./modal-content.module.scss\";\n\nexport type DefaultProps = Omit<BaseProps, \"children\"> & {\n /**\n * One or several CTA links or buttons\n * */\n actions?: ReactNode;\n children: ReactNode;\n /**\n * An optional accessible description to be announced when the dialog is opened.\n * */\n description?: string;\n /**\n * Prevents the modal from closing on click outside if set to `true`.\n * */\n disableCloseOnClickOutside?: boolean;\n /**\n * Visually hides the description if set to `true`.\n * */\n hideDescription?: boolean;\n /**\n * An optional image to be displayed at the top of the modal.\n * */\n image?: ReactNode;\n /**\n * Provide a Purpur Notification which will render beneath the modal buttons, otherwise leave it undefined.\n * */\n notification?: ReactNode;\n /**\n * Determines whether the button group should be fixed at the bottom or scroll with the content.\n * */\n stickyButtons?: boolean;\n /**\n * An accessible title to be announced when the dialog is opened.\n * */\n title: string;\n /**\n * z-index of the modal\n * */\n zIndex?: number;\n /**\n * Optional DOM element to portal the modal content into. When omitted,\n * the modal renders inside the nearest `ThemeProvider` so it inherits\n * the active color scheme. Pass `document.body` (or any other element) to\n * override. Pass `null` to fall back to Radix' default (`document.body`).\n * */\n container?: HTMLElement | null;\n /**\n * Event handler called when focus moves to the trigger after closing.\n * */\n onCloseAutoFocus?: (e: Event) => void;\n};\n\ntype NoCloseButtonProps = {\n /**\n * An accessible label for the close button.\n * */\n closeButtonAriaLabel?: never;\n /**\n * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.\n * */\n showCloseButton?: false;\n};\n\ntype CloseButtonProps = {\n /**\n * An accessible label for the close button.\n * */\n closeButtonAriaLabel: string;\n /**\n * Shows the close button if set to `true`. Must be used in conjunction with `closeButtonAriaLabel`.\n * */\n showCloseButton: true;\n};\n\nexport type ModalContentProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);\n\nconst hasCloseButtonProps = (\n props: CloseButtonProps | NoCloseButtonProps\n): props is CloseButtonProps => (props as CloseButtonProps).showCloseButton === true;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-modal-content\";\n\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n actions,\n children,\n className,\n description,\n disableCloseOnClickOutside,\n hideDescription,\n image,\n stickyButtons = true,\n title,\n notification = undefined,\n zIndex,\n container,\n onCloseAutoFocus,\n ...props\n },\n ref\n ) => {\n const { closeButtonAriaLabel, showCloseButton, ...rest } = props;\n const [contentOverflow, setContentOverflow] = useState(false);\n const [scrollbarWidth, setScrollbarWidth] = useState(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const wrapperInnerRef = useRef<HTMLDivElement>(null);\n const themePortalContainer = useThemePortalContainer();\n const portalContainer =\n container === undefined ? themePortalContainer : container ?? undefined;\n\n const classes = cx(\n rootClassName,\n { [`${rootClassName}--with-image`]: !!image },\n { [`${rootClassName}--overflow`]: contentOverflow },\n { [`${rootClassName}--sticky-footer`]: stickyButtons },\n className\n );\n\n const getTestId = (id: string) => (dataTestId ? `${dataTestId} ${id}` : undefined);\n\n const handlePointerDownOutside = (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n if (disableCloseOnClickOutside) {\n event.preventDefault();\n }\n };\n\n const handleContentOverflow = useCallback(() => {\n if (!wrapperRef.current || !wrapperInnerRef.current) {\n return;\n }\n\n const computedStyle = window.getComputedStyle(wrapperRef.current, null);\n const wrapperHeight = parseFloat(computedStyle.getPropertyValue(\"height\"));\n const innerHeight = wrapperInnerRef.current.offsetHeight;\n\n setContentOverflow(wrapperHeight < innerHeight);\n\n setScrollbarWidth(\n (wrapperRef.current.offsetWidth ?? 0) - (wrapperRef.current.clientWidth ?? 0)\n );\n }, []);\n\n const handleInitialFocus = () => {\n const frame = wrapperInnerRef.current;\n if (frame) {\n const heading = frame.querySelector(\"h2\");\n\n heading &&\n setTimeout(() => {\n heading.focus();\n });\n }\n };\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (disableCloseOnClickOutside && !showCloseButton) {\n event.preventDefault();\n }\n };\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleContentOverflow);\n\n return () => {\n window.removeEventListener(\"resize\", handleContentOverflow);\n };\n }, [handleContentOverflow]);\n\n useEffect(() => {\n handleContentOverflow();\n }, [notification, children, handleContentOverflow]);\n\n return (\n <RadixPortal container={portalContainer}>\n <RadixOverlay className={cx(`${rootClassName}__overlay`)} style={{ zIndex }} />\n <RadixContent\n {...rest}\n className={classes}\n data-testid={dataTestId}\n ref={ref}\n {...(!description && { [\"aria-describedby\"]: undefined })}\n onPointerDownOutside={handlePointerDownOutside}\n onOpenAutoFocus={() => {\n handleContentOverflow();\n handleInitialFocus();\n }}\n onEscapeKeyDown={handleEscapeKeyDown}\n onCloseAutoFocus={onCloseAutoFocus}\n style={{ zIndex: `calc(${zIndex} + 1)` }}\n >\n <div ref={wrapperRef} className={cx(`${rootClassName}__wrapper`)}>\n {hasCloseButtonProps(props) && closeButtonAriaLabel && image && (\n <CloseButton\n aria-label={closeButtonAriaLabel}\n hasImage\n scrollbarWidth={scrollbarWidth}\n data-testid={getTestId(\"close-button\")}\n />\n )}\n <div ref={wrapperInnerRef} className={cx(`${rootClassName}__wrapper-inner`)}>\n <div className={cx(`${rootClassName}__header`)}>\n {hasCloseButtonProps(props) && closeButtonAriaLabel && !image && (\n <CloseButton\n aria-label={closeButtonAriaLabel}\n data-testid={getTestId(\"close-button\")}\n />\n )}\n <RadixTitle\n asChild\n className={cx(`${rootClassName}__title`)}\n data-testid={getTestId(\"title\")}\n >\n <Heading\n tag=\"h2\"\n variant=\"display-10\"\n tabIndex={-1}\n className={cx(`${rootClassName}__heading`)}\n >\n {title}\n </Heading>\n </RadixTitle>\n </div>\n {image && (\n <div\n className={cx(`${rootClassName}__image-wrapper`)}\n data-testid={getTestId(\"image\")}\n >\n {image}\n </div>\n )}\n <div className={cx(`${rootClassName}__body`)}>\n <div className={cx(`${rootClassName}__body-inner`)}>\n {description && hideDescription && (\n <VisuallyHidden asChild>\n <RadixDescription data-testid={getTestId(\"description\")}>\n {description}\n </RadixDescription>\n </VisuallyHidden>\n )}\n {description && !hideDescription && (\n <RadixDescription\n asChild\n className={cx(`${rootClassName}__description`)}\n data-testid={getTestId(\"description\")}\n >\n <Paragraph variant=\"paragraph-100\">{description}</Paragraph>\n </RadixDescription>\n )}\n <div>{children}</div>\n {!stickyButtons && <ModalActions actions={actions} notification={notification} />}\n </div>\n </div>\n </div>\n </div>\n\n {stickyButtons && <ModalActions actions={actions} notification={notification} />}\n </RadixContent>\n </RadixPortal>\n );\n }\n);\n\nconst CloseButton = ({\n [\"aria-label\"]: ariaLabel,\n hasImage,\n scrollbarWidth,\n [\"data-testid\"]: dataTestId,\n}: {\n [\"aria-label\"]: string;\n hasImage?: boolean;\n scrollbarWidth?: number;\n [\"data-testid\"]?: string;\n}) => (\n <RadixClose asChild>\n <Button\n variant={hasImage ? \"primary\" : \"tertiary-purple\"}\n negative={hasImage}\n size=\"sm\"\n iconOnly\n aria-label={ariaLabel}\n className={cx(`${rootClassName}__close-button`)}\n style={{ right: `calc(var(--purpur-spacing-100) + ${scrollbarWidth || 0}px)` }}\n data-testid={dataTestId}\n >\n <IconClose />\n </Button>\n </RadixClose>\n);\n\nexport const MAX_NUMBER_OF_ACTIONS = 3;\n\nexport const ModalActions = ({\n actions,\n notification,\n}: Pick<ModalContentProps, \"actions\" | \"notification\">) => {\n const notificationRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (notification) {\n notificationRef?.current?.scrollIntoView?.(false);\n }\n }, [notification]);\n\n return actions ? (\n <div className={cx(`${rootClassName}__actions`)}>\n <div className={cx(`${rootClassName}__actions-buttons`)} data-testid=\"modal actions\">\n {actions}\n </div>\n {notification && (\n <div className={cx(`${rootClassName}__notification`)} ref={notificationRef}>\n {notification}\n </div>\n )}\n <span className={cx(`${rootClassName}__actions-separator`)} />\n </div>\n ) : null;\n};\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Trigger as RadixTrigger } from \"@radix-ui/react-dialog\";\n\nexport type ModalTriggerProps = Omit<BaseProps<\"button\">, \"children\"> & {\n children: ReactNode;\n};\n\nexport const ModalTrigger = forwardRef<HTMLButtonElement, ModalTriggerProps>(\n ({ children, ...props }, ref) => {\n return (\n <RadixTrigger asChild ref={ref} {...props}>\n {children}\n </RadixTrigger>\n );\n }\n);\n","import React, { type ReactNode } from \"react\";\nimport { Root as RadixRoot } from \"@radix-ui/react-dialog\";\n\nimport { ModalContent } from \"./modal-content\";\nimport { ModalTrigger } from \"./modal-trigger\";\n\nexport type ModalProps = {\n [\"data-testid\"]?: string;\n children: ReactNode;\n /**\n * Event handler called when the open state of the dialog changes.\n * */\n onOpenChange?: (value: boolean) => void;\n /**\n * The controlled open state of the dialog. Must be used in conjunction with `onOpenChange`.\n * */\n open?: boolean;\n};\n\nexport const Modal = ({\n [\"data-testid\"]: dataTestId,\n children,\n open,\n onOpenChange,\n}: ModalProps) => (\n <RadixRoot open={open} onOpenChange={onOpenChange} data-testid={dataTestId}>\n {children}\n </RadixRoot>\n);\n\nModal.Trigger = ModalTrigger;\nModal.Content = ModalContent;\n\nModal.displayName = \"Modal\";\n"],"names":["hasCloseButtonProps","props","cx","c","styles","rootClassName","ModalContent","forwardRef","dataTestId","actions","children","className","description","disableCloseOnClickOutside","hideDescription","image","stickyButtons","title","notification","zIndex","container","onCloseAutoFocus","ref","closeButtonAriaLabel","showCloseButton","rest","contentOverflow","setContentOverflow","useState","scrollbarWidth","setScrollbarWidth","wrapperRef","useRef","wrapperInnerRef","themePortalContainer","useThemePortalContainer","portalContainer","classes","getTestId","id","handlePointerDownOutside","event","handleContentOverflow","useCallback","computedStyle","wrapperHeight","innerHeight","handleInitialFocus","frame","heading","handleEscapeKeyDown","useEffect","jsxs","RadixPortal","jsx","RadixOverlay","RadixContent","CloseButton","RadixTitle","Heading","VisuallyHidden","RadixDescription","Paragraph","ModalActions","ariaLabel","hasImage","RadixClose","Button","IconClose","notificationRef","ModalTrigger","RadixTrigger","Modal","open","onOpenChange","RadixRoot"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const n=require("react/jsx-runtime"),m=require("react"),x=require("./button-DmybVApa.js"),N=require("./grid-uGMD2euo.js"),j=require("./heading-drD5ugCC.js"),v=require("./close.es-VL3lKi1O.js"),q=require("./info.es-Br84jly5.js"),$=require("./bind-DeUYJ6m9.js"),y={"purpur-notification-banner":"_purpur-notification-banner_nh2gd_1","purpur-notification-banner__container":"_purpur-notification-banner__container_nh2gd_6","purpur-notification-banner__content":"_purpur-notification-banner__content_nh2gd_11","purpur-notification-banner__icon":"_purpur-notification-banner__icon_nh2gd_16","purpur-notification-banner__heading":"_purpur-notification-banner__heading_nh2gd_20","purpur-notification-banner__heading--no-overlap":"_purpur-notification-banner__heading--no-overlap_nh2gd_23","purpur-notification-banner__close-button":"_purpur-notification-banner__close-button_nh2gd_26"},r=$.c.bind(y),i="purpur-notification-banner",o=m.forwardRef(({["data-testid"]:e,children:c,className:s,closeButtonAriaLabel:_,description:u,hideIcon:p,icon:a,link:d,onClose:t,titleTag:l="h4",title:b,...h},f)=>{const g=r(s,i);return n.jsx("div",{...h,className:g,role:"alert",ref:f,"data-testid":e,children:n.jsx(N.Grid,{children:n.jsxs("div",{className:r(`${i}__container`),children:[p?null:a?n.jsx("span",{className:r(`${i}__icon`),children:a}):n.jsx(q.r,{className:r(`${i}__icon`),size:"sm"}),n.jsxs("div",{className:r(`${i}__content`),children:[n.jsx(j.Heading,{tag:l,variant:"subsection-100",className:r([`${i}__heading`,{[`${i}__heading--no-overlap`]:t}]),children:b}),n.jsxs("div",{children:[u," ",d]}),c]}),t&&n.jsx(x.Button,{"data-testid":e?`${e}-close-button`:void 0,variant:"tertiary-purple",size:"sm",iconOnly:!0,"aria-label":_,onClick:t,className:r(`${i}__close-button`),children:n.jsx(v.r,{size:"sm"})})]})})})});o.displayName="NotificationBanner";exports.NotificationBanner=o;
|
|
2
|
-
//# sourceMappingURL=notification-banner-BxHwTFnH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notification-banner-BxHwTFnH.js","sources":["../../../components/notification-banner/src/notification-banner.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Grid } from \"@purpur/grid\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { IconInfo } from \"@purpur/icon/info\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./notification-banner.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type DefaultProps = BaseProps & {\n closeButtonAriaLabel?: string;\n description?: string;\n hideIcon?: boolean;\n icon?: ReactNode;\n link?: ReactNode;\n titleTag?: HeadingTagType;\n title?: string;\n};\n\ntype CloseButtonProps = {\n onClose: () => void;\n closeButtonAriaLabel: string;\n};\n\ntype NoCloseButtonProps = {\n onClose?: never;\n closeButtonAriaLabel?: never;\n};\n\nexport type NotificationBannerProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);\n\nconst rootClassName = \"purpur-notification-banner\";\n\nexport const NotificationBanner = forwardRef<HTMLDivElement, NotificationBannerProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n children,\n className,\n closeButtonAriaLabel,\n description,\n hideIcon,\n icon,\n link,\n onClose,\n titleTag = \"h4\",\n title,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <div {...props} className={classes} role=\"alert\" ref={ref} data-testid={dataTestId}>\n <Grid>\n <div className={cx(`${rootClassName}__container`)}>\n {!hideIcon ? (\n icon ? (\n <span className={cx(`${rootClassName}__icon`)}>{icon}</span>\n ) : (\n <IconInfo className={cx(`${rootClassName}__icon`)} size=\"sm\" />\n )\n ) : null}\n <div className={cx(`${rootClassName}__content`)}>\n <Heading\n tag={titleTag}\n variant=\"subsection-100\"\n className={cx([\n `${rootClassName}__heading`,\n { [`${rootClassName}__heading--no-overlap`]: onClose },\n ])}\n >\n {title}\n </Heading>\n <div>\n {description} {link}\n </div>\n {children}\n </div>\n {onClose && (\n <Button\n data-testid={dataTestId ? `${dataTestId}-close-button` : undefined}\n variant=\"tertiary-purple\"\n size=\"sm\"\n iconOnly\n aria-label={closeButtonAriaLabel}\n onClick={onClose}\n className={cx(`${rootClassName}__close-button`)}\n >\n <IconClose size=\"sm\" />\n </Button>\n )}\n </div>\n </Grid>\n </div>\n );\n }\n);\n\nNotificationBanner.displayName = \"NotificationBanner\";\n"],"names":["cx","c","styles","rootClassName","NotificationBanner","forwardRef","dataTestId","children","className","closeButtonAriaLabel","description","hideIcon","icon","link","onClose","titleTag","title","props","ref","classes","jsx","Grid","IconInfo","Heading","Button","IconClose"],"mappings":"23BAWMA,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAwBlBC,EAAgB,6BAETC,EAAqBC,EAAAA,WAChC,CACE,CACE,CAAC,eAAgBC,EACjB,SAAAC,EACA,UAAAC,EACA,qBAAAC,EACA,YAAAC,EACA,SAAAC,EACA,KAAAC,EACA,KAAAC,EACA,QAAAC,EACA,SAAAC,EAAW,KACX,MAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUnB,EAAGQ,EAAWL,CAAa,EAE3C,OACEiB,MAAC,OAAK,GAAGH,EAAO,UAAWE,EAAS,KAAK,QAAQ,IAAAD,EAAU,cAAaZ,EACtE,SAAAc,MAACC,EAAAA,KAAA,CACC,gBAAC,MAAA,CAAI,UAAWrB,EAAG,GAAGG,CAAa,aAAa,EAC7C,SAAA,CAACQ,EAME,KALFC,EACEQ,EAAAA,IAAC,OAAA,CAAK,UAAWpB,EAAG,GAAGG,CAAa,QAAQ,EAAI,SAAAS,EAAK,EAErDQ,EAAAA,IAACE,EAAAA,EAAA,CAAS,UAAWtB,EAAG,GAAGG,CAAa,QAAQ,EAAG,KAAK,IAAA,CAAK,SAGhE,MAAA,CAAI,UAAWH,EAAG,GAAGG,CAAa,WAAW,EAC5C,SAAA,CAAAiB,EAAAA,IAACG,EAAAA,QAAA,CACC,IAAKR,EACL,QAAQ,iBACR,UAAWf,EAAG,CACZ,GAAGG,CAAa,YAChB,CAAE,CAAC,GAAGA,CAAa,uBAAuB,EAAGW,CAAA,CAAQ,CACtD,EAEA,SAAAE,CAAA,CAAA,SAEF,MAAA,CACE,SAAA,CAAAN,EAAY,IAAEG,CAAA,EACjB,EACCN,CAAA,EACH,EACCO,GACCM,EAAAA,IAACI,EAAAA,OAAA,CACC,cAAalB,EAAa,GAAGA,CAAU,gBAAkB,OACzD,QAAQ,kBACR,KAAK,KACL,SAAQ,GACR,aAAYG,EACZ,QAASK,EACT,UAAWd,EAAG,GAAGG,CAAa,gBAAgB,EAE9C,SAAAiB,EAAAA,IAACK,EAAAA,EAAA,CAAU,KAAK,IAAA,CAAK,CAAA,CAAA,CACvB,CAAA,CAEJ,EACF,EACF,CAEJ,CACF,EAEArB,EAAmB,YAAc"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notification-banner-CZTQZ5Le.mjs","sources":["../../../components/notification-banner/src/notification-banner.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Grid } from \"@purpur/grid\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { IconInfo } from \"@purpur/icon/info\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./notification-banner.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type DefaultProps = BaseProps & {\n closeButtonAriaLabel?: string;\n description?: string;\n hideIcon?: boolean;\n icon?: ReactNode;\n link?: ReactNode;\n titleTag?: HeadingTagType;\n title?: string;\n};\n\ntype CloseButtonProps = {\n onClose: () => void;\n closeButtonAriaLabel: string;\n};\n\ntype NoCloseButtonProps = {\n onClose?: never;\n closeButtonAriaLabel?: never;\n};\n\nexport type NotificationBannerProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);\n\nconst rootClassName = \"purpur-notification-banner\";\n\nexport const NotificationBanner = forwardRef<HTMLDivElement, NotificationBannerProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n children,\n className,\n closeButtonAriaLabel,\n description,\n hideIcon,\n icon,\n link,\n onClose,\n titleTag = \"h4\",\n title,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <div {...props} className={classes} role=\"alert\" ref={ref} data-testid={dataTestId}>\n <Grid>\n <div className={cx(`${rootClassName}__container`)}>\n {!hideIcon ? (\n icon ? (\n <span className={cx(`${rootClassName}__icon`)}>{icon}</span>\n ) : (\n <IconInfo className={cx(`${rootClassName}__icon`)} size=\"sm\" />\n )\n ) : null}\n <div className={cx(`${rootClassName}__content`)}>\n <Heading\n tag={titleTag}\n variant=\"subsection-100\"\n className={cx([\n `${rootClassName}__heading`,\n { [`${rootClassName}__heading--no-overlap`]: onClose },\n ])}\n >\n {title}\n </Heading>\n <div>\n {description} {link}\n </div>\n {children}\n </div>\n {onClose && (\n <Button\n data-testid={dataTestId ? `${dataTestId}-close-button` : undefined}\n variant=\"tertiary-purple\"\n size=\"sm\"\n iconOnly\n aria-label={closeButtonAriaLabel}\n onClick={onClose}\n className={cx(`${rootClassName}__close-button`)}\n >\n <IconClose size=\"sm\" />\n </Button>\n )}\n </div>\n </Grid>\n </div>\n );\n }\n);\n\nNotificationBanner.displayName = \"NotificationBanner\";\n"],"names":["cx","c","styles","rootClassName","NotificationBanner","forwardRef","dataTestId","children","className","closeButtonAriaLabel","description","hideIcon","icon","link","onClose","titleTag","title","props","ref","classes","jsx","Grid","IconInfo","Heading","Button","IconClose"],"mappings":";;;;;;;;;;;;;;;;GAWMA,IAAKC,EAAE,KAAKC,CAAM,GAwBlBC,IAAgB,8BAETC,IAAqBC;AAAA,EAChC,CACE;AAAA,IACE,CAAC,gBAAgBC;AAAA,IACjB,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAUnB,EAAGQ,GAAWL,CAAa;AAE3C,WACE,gBAAAiB,EAAC,SAAK,GAAGH,GAAO,WAAWE,GAAS,MAAK,SAAQ,KAAAD,GAAU,eAAaZ,GACtE,UAAA,gBAAAc,EAACC,GAAA,EACC,4BAAC,OAAA,EAAI,WAAWrB,EAAG,GAAGG,CAAa,aAAa,GAC7C,UAAA;AAAA,MAACQ,IAME,OALFC,IACE,gBAAAQ,EAAC,QAAA,EAAK,WAAWpB,EAAG,GAAGG,CAAa,QAAQ,GAAI,UAAAS,GAAK,IAErD,gBAAAQ,EAACE,GAAA,EAAS,WAAWtB,EAAG,GAAGG,CAAa,QAAQ,GAAG,MAAK,KAAA,CAAK;AAAA,wBAGhE,OAAA,EAAI,WAAWH,EAAG,GAAGG,CAAa,WAAW,GAC5C,UAAA;AAAA,QAAA,gBAAAiB;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,KAAKR;AAAA,YACL,SAAQ;AAAA,YACR,WAAWf,EAAG;AAAA,cACZ,GAAGG,CAAa;AAAA,cAChB,EAAE,CAAC,GAAGA,CAAa,uBAAuB,GAAGW,EAAA;AAAA,YAAQ,CACtD;AAAA,YAEA,UAAAE;AAAA,UAAA;AAAA,QAAA;AAAA,0BAEF,OAAA,EACE,UAAA;AAAA,UAAAN;AAAA,UAAY;AAAA,UAAEG;AAAA,QAAA,GACjB;AAAA,QACCN;AAAA,MAAA,GACH;AAAA,MACCO,KACC,gBAAAM;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,eAAalB,IAAa,GAAGA,CAAU,kBAAkB;AAAA,UACzD,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,UAAQ;AAAA,UACR,cAAYG;AAAA,UACZ,SAASK;AAAA,UACT,WAAWd,EAAG,GAAGG,CAAa,gBAAgB;AAAA,UAE9C,UAAA,gBAAAiB,EAACK,GAAA,EAAU,MAAK,KAAA,CAAK;AAAA,QAAA;AAAA,MAAA;AAAA,IACvB,EAAA,CAEJ,GACF,GACF;AAAA,EAEJ;AACF;AAEArB,EAAmB,cAAc;"}
|
package/dist/popover-CY75TnbA.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const a=require("react/jsx-runtime"),oe=require("./button-DmybVApa.js"),p=require("react"),dt=require("./variables-Buqm4JZc.js"),O=require("./index-DlMXYAr3.js"),re=require("./index-_XxjJPRD.js"),K=require("./index-kcwFA4Dv.js"),q=require("./index-DA01QPpC.js"),ft=require("./index-BtWPC8xc.js"),k=require("./floating-ui.react-dom-Cc_YSprQ.js"),ht=require("./index-DOFLOnao.js"),Oe=require("./index-CleLBinl.js"),gt=require("./close.es-VL3lKi1O.js"),Ae=require("./paragraph-B8HFdNne.js");require("./ThemeProvider-BJGm3zai.js");const vt=require("./useThemePortalContainer-CUcqV327.js"),Y=require("./bind-DeUYJ6m9.js"),_t=require("./heading-drD5ugCC.js");function mt(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const g=mt(p),de=p.createContext(null),fe=()=>{const e=p.useContext(de);if(!e)throw new Error("usePopoverFlow must be used within a PopoverFlow provider");return e},X=()=>p.useContext(de),wt=({children:e,initialStep:t=1,onComplete:o,onDismiss:r,separatorText:n,stepText:s,backLabel:i,nextLabel:l,finishLabel:u,openDelay:d=0})=>{const[v,f]=p.useState(t),[h,P]=p.useState(new Set),m=p.useCallback(w=>{P(j=>{const R=new Set(j);return R.add(w),R})},[]),S=p.useCallback(w=>{P(j=>{const R=new Set(j);return R.delete(w),R})},[]),_=p.useCallback(()=>{f(w=>{const j=w+1;return j>h.size?(o?.(),w):j})},[h.size,o]),y=p.useCallback(()=>{f(w=>Math.max(1,w-1))},[]),E=p.useCallback(()=>{f(0),r?.()},[r]),A=p.useMemo(()=>({currentStep:v,totalSteps:h.size,next:_,back:y,dismiss:E,registerStep:m,unregisterStep:S,separatorText:n,stepText:s,backLabel:i,nextLabel:l,finishLabel:u,openDelay:d}),[v,h.size,_,y,E,m,S,n,s,i,l,u,d]);return a.jsx(de.Provider,{value:A,children:e})},he=p.createContext(null),ne=()=>p.useContext(he),Re=p.createContext({negative:!1}),ge=()=>p.useContext(Re),xt=150,ye={MAX_MD:`(max-width: ${dt.purpurBreakpointMd})`},ve=()=>{const e=window.matchMedia(ye.MAX_MD);function t(){r(e.matches)}const[o,r]=p.useState(()=>typeof window>"u"?!1:window.matchMedia(ye.MAX_MD).matches),n=p.useCallback(()=>{let s;return()=>{clearTimeout(s),s=setTimeout(()=>t(),xt)}},[t]);return p.useEffect(()=>{if(!(typeof window>"u"))return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[n]),{isMdOrSmaller:o}},_e=({children:e,onClick:t})=>{const{back:o}=fe(),{negative:r}=ge(),{isMdOrSmaller:n}=ve(),s=!r,i=()=>{t?.(),o()};return a.jsx(oe.Button,{size:"sm",variant:"secondary",onClick:i,negative:s,fullWidth:n,children:e})};_e.displayName="PopoverBack";var Pt="Arrow",Ee=g.forwardRef((e,t)=>{const{children:o,width:r=10,height:n=5,...s}=e;return a.jsx(O.Primitive.svg,{...s,ref:t,width:r,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?o:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ee.displayName=Pt;var Ct=Ee,me="Popper",[Ne,Fe]=K.createContextScope(me),[St,ke]=Ne(me),Te=e=>{const{__scopePopper:t,children:o}=e,[r,n]=g.useState(null);return a.jsx(St,{scope:t,anchor:r,onAnchorChange:n,children:o})};Te.displayName=me;var Me="PopperAnchor",De=g.forwardRef((e,t)=>{const{__scopePopper:o,virtualRef:r,...n}=e,s=ke(Me,o),i=g.useRef(null),l=re.useComposedRefs(t,i),u=g.useRef(null);return g.useEffect(()=>{const d=u.current;u.current=r?.current||i.current,d!==u.current&&s.onAnchorChange(u.current)}),r?null:a.jsx(O.Primitive.div,{...n,ref:l})});De.displayName=Me;var we="PopperContent",[bt,yt]=Ne(we),Ie=g.forwardRef((e,t)=>{const{__scopePopper:o,side:r="bottom",sideOffset:n=0,align:s="center",alignOffset:i=0,arrowPadding:l=0,avoidCollisions:u=!0,collisionBoundary:d=[],collisionPadding:v=0,sticky:f="partial",hideWhenDetached:h=!1,updatePositionStrategy:P="optimized",onPlaced:m,...S}=e,_=ke(we,o),[y,E]=g.useState(null),A=re.useComposedRefs(t,W=>E(W)),[w,j]=g.useState(null),R=ht.useSize(w),ie=R?.width??0,V=R?.height??0,Z=r+(s!=="center"?"-"+s:""),Q=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},L=Array.isArray(d)?d:[d],ae=L.length>0,$={padding:Q,boundary:L.filter(Ot),altBoundary:ae},{refs:ce,floatingStyles:J,placement:le,isPositioned:H,middlewareData:c}=k.useFloating({strategy:"fixed",placement:Z,whileElementsMounted:(...W)=>k.autoUpdate(...W,{animationFrame:P==="always"}),elements:{reference:_.anchor},middleware:[k.offset({mainAxis:n+V,alignmentAxis:i}),u&&k.shift({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?k.limitShift():void 0,...$}),u&&k.flip({...$}),k.size({...$,apply:({elements:W,rects:be,availableWidth:ct,availableHeight:lt})=>{const{width:pt,height:ut}=be.reference,te=W.floating.style;te.setProperty("--radix-popper-available-width",`${ct}px`),te.setProperty("--radix-popper-available-height",`${lt}px`),te.setProperty("--radix-popper-anchor-width",`${pt}px`),te.setProperty("--radix-popper-anchor-height",`${ut}px`)}}),w&&k.arrow({element:w,padding:l}),At({arrowWidth:ie,arrowHeight:V}),h&&k.hide({strategy:"referenceHidden",...$})]}),[x,C]=Be(le),N=K.useCallbackRef(m);K.useLayoutEffect2(()=>{H&&N?.()},[H,N]);const D=c.arrow?.x,b=c.arrow?.y,F=c.arrow?.centerOffset!==0,[I,ee]=g.useState();return K.useLayoutEffect2(()=>{y&&ee(window.getComputedStyle(y).zIndex)},[y]),a.jsx("div",{ref:ce.setFloating,"data-radix-popper-content-wrapper":"",style:{...J,transform:H?J.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:I,"--radix-popper-transform-origin":[c.transformOrigin?.x,c.transformOrigin?.y].join(" "),...c.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(bt,{scope:o,placedSide:x,onArrowChange:j,arrowX:D,arrowY:b,shouldHideArrow:F,children:a.jsx(O.Primitive.div,{"data-side":x,"data-align":C,...S,ref:A,style:{...S.style,animation:H?void 0:"none"}})})})});Ie.displayName=we;var $e="PopperArrow",jt={top:"bottom",right:"left",bottom:"top",left:"right"},He=g.forwardRef(function(t,o){const{__scopePopper:r,...n}=t,s=yt($e,r),i=jt[s.placedSide];return a.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:a.jsx(Ct,{...n,ref:o,style:{...n.style,display:"block"}})})});He.displayName=$e;function Ot(e){return e!==null}var At=e=>({name:"transformOrigin",options:e,fn(t){const{placement:o,rects:r,middlewareData:n}=t,i=n.arrow?.centerOffset!==0,l=i?0:e.arrowWidth,u=i?0:e.arrowHeight,[d,v]=Be(o),f={start:"0%",center:"50%",end:"100%"}[v],h=(n.arrow?.x??0)+l/2,P=(n.arrow?.y??0)+u/2;let m="",S="";return d==="bottom"?(m=i?f:`${h}px`,S=`${-u}px`):d==="top"?(m=i?f:`${h}px`,S=`${r.floating.height+u}px`):d==="right"?(m=`${-u}px`,S=i?f:`${P}px`):d==="left"&&(m=`${r.floating.width+u}px`,S=i?f:`${P}px`),{data:{x:m,y:S}}}});function Be(e){const[t,o="center"]=e.split("-");return[t,o]}var Rt=Te,qe=De,Et=Ie,Nt=He,se="Popover",[ze]=K.createContextScope(se,[Fe]),U=Fe(),[Ft,M]=ze(se),Le=e=>{const{__scopePopover:t,children:o,open:r,defaultOpen:n,onOpenChange:s,modal:i=!1}=e,l=U(t),u=g.useRef(null),[d,v]=g.useState(!1),[f,h]=O.useControllableState({prop:r,defaultProp:n??!1,onChange:s,caller:se});return a.jsx(Rt,{...l,children:a.jsx(Ft,{scope:t,contentId:ft.useId(),triggerRef:u,open:f,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(P=>!P),[h]),hasCustomAnchor:d,onCustomAnchorAdd:g.useCallback(()=>v(!0),[]),onCustomAnchorRemove:g.useCallback(()=>v(!1),[]),modal:i,children:o})})};Le.displayName=se;var We="PopoverAnchor",kt=g.forwardRef((e,t)=>{const{__scopePopover:o,...r}=e,n=M(We,o),s=U(o),{onCustomAnchorAdd:i,onCustomAnchorRemove:l}=n;return g.useEffect(()=>(i(),()=>l()),[i,l]),a.jsx(qe,{...s,...r,ref:t})});kt.displayName=We;var Ke="PopoverTrigger",Ye=g.forwardRef((e,t)=>{const{__scopePopover:o,...r}=e,n=M(Ke,o),s=U(o),i=re.useComposedRefs(t,n.triggerRef),l=a.jsx(O.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":Je(n.open),...r,ref:i,onClick:O.composeEventHandlers(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?l:a.jsx(qe,{asChild:!0,...s,children:l})});Ye.displayName=Ke;var xe="PopoverPortal",[Tt,Mt]=ze(xe,{forceMount:void 0}),Xe=e=>{const{__scopePopover:t,forceMount:o,children:r,container:n}=e,s=M(xe,t);return a.jsx(Tt,{scope:t,forceMount:o,children:a.jsx(Oe.Presence,{present:o||s.open,children:a.jsx(q.Portal,{asChild:!0,container:n,children:r})})})};Xe.displayName=xe;var z="PopoverContent",Ue=g.forwardRef((e,t)=>{const o=Mt(z,e.__scopePopover),{forceMount:r=o.forceMount,...n}=e,s=M(z,e.__scopePopover);return a.jsx(Oe.Presence,{present:r||s.open,children:s.modal?a.jsx(It,{...n,ref:t}):a.jsx($t,{...n,ref:t})})});Ue.displayName=z;var Dt=O.createSlot("PopoverContent.RemoveScroll"),It=g.forwardRef((e,t)=>{const o=M(z,e.__scopePopover),r=g.useRef(null),n=re.useComposedRefs(t,r),s=g.useRef(!1);return g.useEffect(()=>{const i=r.current;if(i)return q.hideOthers(i)},[]),a.jsx(q.ReactRemoveScroll,{as:Dt,allowPinchZoom:!0,children:a.jsx(Ge,{...e,ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:O.composeEventHandlers(e.onCloseAutoFocus,i=>{i.preventDefault(),s.current||o.triggerRef.current?.focus()}),onPointerDownOutside:O.composeEventHandlers(e.onPointerDownOutside,i=>{const l=i.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0,d=l.button===2||u;s.current=d},{checkForDefaultPrevented:!1}),onFocusOutside:O.composeEventHandlers(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1})})})}),$t=g.forwardRef((e,t)=>{const o=M(z,e.__scopePopover),r=g.useRef(!1),n=g.useRef(!1);return a.jsx(Ge,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||o.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,n.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const i=s.target;o.triggerRef.current?.contains(i)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&n.current&&s.preventDefault()}})}),Ge=g.forwardRef((e,t)=>{const{__scopePopover:o,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:i,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:v,...f}=e,h=M(z,o),P=U(o);return q.useFocusGuards(),a.jsx(q.FocusScope,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:n,onUnmountAutoFocus:s,children:a.jsx(q.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:v,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onDismiss:()=>h.onOpenChange(!1),children:a.jsx(Et,{"data-state":Je(h.open),role:"dialog",id:h.contentId,...P,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),Ve="PopoverClose",Ze=g.forwardRef((e,t)=>{const{__scopePopover:o,...r}=e,n=M(Ve,o);return a.jsx(O.Primitive.button,{type:"button",...r,ref:t,onClick:O.composeEventHandlers(e.onClick,()=>n.onOpenChange(!1))})});Ze.displayName=Ve;var Ht="PopoverArrow",Qe=g.forwardRef((e,t)=>{const{__scopePopover:o,...r}=e,n=U(o);return a.jsx(Nt,{...n,...r,ref:t})});Qe.displayName=Ht;function Je(e){return e?"open":"closed"}var et=Le,Bt=Ye,qt=Xe,zt=Ue,tt=Ze,Lt=Qe;const Pe=({children:e,asChild:t,onClick:o,variant:r="primary",dismiss:n=!0,fullWidth:s})=>{const i=X(),{isMdOrSmaller:l}=ve(),{negative:u}=ge(),d=!u,v=()=>{o?.(),n&&i?.dismiss()},f=s??l,h=t?e:a.jsx(oe.Button,{variant:r,size:"sm",fullWidth:f,negative:d,onClick:v,children:e});return n?a.jsx(tt,{asChild:!0,children:h}):h};Pe.displayName="PopoverButton";const Wt="_highlightState1_1w9je_1",Kt="_fadeIn_1w9je_1",Yt="_slideFromTop_1w9je_1",Xt="_slideFromBottom_1w9je_1",Ut="_slideFromLeft_1w9je_1",Gt="_slideFromRight_1w9je_1",Vt="_fadeOut_1w9je_1",Zt="_slideToTop_1w9je_1",Qt="_slideToBottom_1w9je_1",Jt="_slideToLeft_1w9je_1",eo="_slideToRight_1w9je_1",G={"purpur-popover__trigger":"_purpur-popover__trigger_1w9je_1","purpur-popover__trigger-highlight":"_purpur-popover__trigger-highlight_1w9je_5","purpur-popover__trigger-highlight--state1":"_purpur-popover__trigger-highlight--state1_1w9je_14",highlightState1:Wt,"purpur-popover__trigger-highlight--negative":"_purpur-popover__trigger-highlight--negative_1w9je_29","purpur-popover__trigger-highlight--state2":"_purpur-popover__trigger-highlight--state2_1w9je_33","purpur-popover__inner":"_purpur-popover__inner_1w9je_45","purpur-popover__content":"_purpur-popover__content_1w9je_52",fadeIn:Kt,slideFromTop:Yt,slideFromBottom:Xt,slideFromLeft:Ut,slideFromRight:Gt,fadeOut:Vt,slideToTop:Zt,slideToBottom:Qt,slideToLeft:Jt,slideToRight:eo,"purpur-popover__arrow":"_purpur-popover__arrow_1w9je_103","purpur-popover__body":"_purpur-popover__body_1w9je_106","purpur-popover__icon":"_purpur-popover__icon_1w9je_107","purpur-popover__steps":"_purpur-popover__steps_1w9je_108","purpur-popover__title":"_purpur-popover__title_1w9je_109","purpur-popover__content--negative":"_purpur-popover__content--negative_1w9je_112","purpur-popover__header-content":"_purpur-popover__header-content_1w9je_124","purpur-popover__close":"_purpur-popover__close_1w9je_137","purpur-popover__footer":"_purpur-popover__footer_1w9je_142","purpur-popover__footer-button-group":"_purpur-popover__footer-button-group_1w9je_155"},to=Y.c.bind(G),ot=()=>{const e=fe(),o=ne()?.walkthroughStep||e.currentStep,{totalSteps:r,separatorText:n,stepText:s}=e;return a.jsx(a.Fragment,{children:a.jsxs(Ae.Paragraph,{className:to("purpur-popover__steps"),role:"status","aria-live":"polite","aria-atomic":"true",children:[s," ",o," ",n," ",r]})})};ot.displayName="PopoverSteps";const je=Y.c.bind(G),Ce=({children:e,className:t})=>{const o=X(),r=ne(),n=o&&r&&r.walkthroughStep>0;return a.jsxs("div",{className:je("purpur-popover__footer",t),children:[n&&a.jsx(ot,{}),a.jsx("div",{className:je("purpur-popover__footer-button-group"),children:e})]})};Ce.displayName="PopoverFooter";const pe=Y.c.bind(G),rt=p.forwardRef(({title:e,icon:t},o)=>a.jsxs("div",{ref:o,className:pe("purpur-popover__header-content"),children:[t&&a.jsx("span",{className:pe("purpur-popover__icon"),children:t}),a.jsx(_t.Heading,{tag:"h2",variant:"title-100",className:pe("purpur-popover__title"),id:"popover-heading",children:e})]}));rt.displayName="PopoverHeader";const Se=({children:e,onClick:t})=>{const{next:o}=fe(),{negative:r}=ge(),{isMdOrSmaller:n}=ve(),s=!r,i=()=>{t?.(),o()};return a.jsx(oe.Button,{size:"sm",variant:"primary",onClick:i,negative:s,fullWidth:n,children:e})};Se.displayName="PopoverNext";const B=Y.c.bind(G),nt=p.forwardRef(({children:e,className:t,beakPosition:o="down",align:r="center",alignOffset:n=0,sideOffset:s=5,negative:i=!1,closeIconAriaLabel:l,title:u,icon:d,body:v,onAction:f,zIndex:h=210,container:P,...m},S)=>{const _=X(),y=ne(),E=p.useRef(null),A=p.useRef(!1),w=vt.useThemePortalContainer(),j=P===void 0?w:P??void 0,ie={up:"bottom",right:"left",down:"top",left:"right",none:"bottom"}[o],V=o!=="none",Z=c=>Array.from(c.querySelectorAll("button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex='-1'])")).filter(C=>!C.hasAttribute("aria-hidden")),Q=(c,x,C)=>{const N=Z(document.body),D=N.indexOf(x);if(D===-1)return;const b=C==="next"?1:-1;for(let F=D+b;F>=0&&F<N.length;F+=b){const I=N[F];if(!c.contains(I)){I.focus();return}}};let L=e;if(_&&!e){const c=y?.walkthroughStep||_.currentStep,x=c===1,C=c===_.totalSteps;L=a.jsxs(Ce,{children:[!x&&a.jsx(_e,{onClick:()=>f?.({type:"back",step:c}),children:_.backLabel}),C?a.jsx(Pe,{onClick:()=>f?.({type:"finish",step:c}),dismiss:!0,children:_.finishLabel}):a.jsx(Se,{onClick:()=>f?.({type:"next",step:c}),children:_.nextLabel})]})}const ae=c=>{c.preventDefault();const x=c.currentTarget,C=E.current?.querySelector("#popover-heading");setTimeout(()=>{if(_&&C){C.setAttribute("tabindex","-1"),C.focus();return}x.setAttribute("tabindex","-1"),x.focus()},0),m.onOpenAutoFocus?.(c)},$=c=>{if(c.key!=="Tab"){m.onKeyDown?.(c);return}const x=c.currentTarget,C=Z(x);if(C.length===0){m.onKeyDown?.(c);return}const N=C[0],D=C[C.length-1],b=document.activeElement,F=b===N,I=b===D,ee=b!==null&&x.contains(b)&&b.tabIndex===-1;if(!_){b!==null&&(c.shiftKey&&F?(c.preventDefault(),Q(x,b,"previous")):!c.shiftKey&&I&&(c.preventDefault(),Q(x,b,"next"))),m.onKeyDown?.(c);return}c.shiftKey&&(F||ee)?(c.preventDefault(),D.focus()):!c.shiftKey&&(I||ee)&&(c.preventDefault(),N.focus()),m.onKeyDown?.(c)},ce=c=>{_&&!A.current&&c.preventDefault(),A.current&&(A.current=!1),m.onCloseAutoFocus?.(c)},J=c=>{_&&(A.current=!0,c.preventDefault()),f?.({type:"dismiss",step:_?.currentStep}),_?.dismiss()},le=c=>{_&&(A.current=!0,c.preventDefault()),f?.({type:"dismiss",step:_?.currentStep}),_?.dismiss()},H=c=>{if(y?.disableClickOutside){c.preventDefault();return}if(_){const x=c.target;x.closest("[role='dialog']")||x.closest(".purpur-popover__trigger")||x.closest("button[aria-haspopup='dialog']")||(f?.({type:"dismiss",step:_.currentStep}),setTimeout(()=>{_.dismiss()},0))}};return a.jsx(qt,{container:j,children:a.jsxs(zt,{"data-testid":"popover-content",role:"dialog","aria-modal":"true","aria-labelledby":m["aria-label"]?void 0:"popover-heading",ref:S,side:ie,sideOffset:s,align:r,alignOffset:n,style:{"--popover-z-index":h},className:B("purpur-popover__content",{"purpur-popover__content--negative":i},t),onOpenAutoFocus:ae,onCloseAutoFocus:ce,onKeyDown:$,onEscapeKeyDown:le,onInteractOutside:H,...m,children:[a.jsxs(Re.Provider,{value:{negative:i},children:[a.jsxs("div",{className:B("purpur-popover__inner"),children:[a.jsx(rt,{ref:E,title:u,icon:d}),a.jsx(Ae.Paragraph,{className:B("purpur-popover__body"),children:v})]}),L,a.jsx(tt,{asChild:!0,onClick:J,children:a.jsx(oe.Button,{variant:i?"text":"tertiary-purple",size:"sm","aria-label":l,className:B("purpur-popover__close"),negative:!i,iconOnly:!0,children:a.jsx(gt.r,{size:"xs",className:B("purpur-popover__icon")})})})]}),V&&a.jsx(Lt,{className:B("purpur-popover__arrow"),"aria-hidden":"true",tabIndex:-1})]})})});nt.displayName="PopoverContent";const st=({children:e,open:t,defaultOpen:o=!1,onOpenChange:r,disableClickOutside:n,...s})=>{const[i,l]=p.useState(o),u=t!==void 0,d=u?t:i,v=f=>{u||l(f),r?.(f)};return a.jsx(et,{open:d,onOpenChange:v,...s,children:a.jsx(he.Provider,{value:{isOpen:d,walkthroughStep:0,disableClickOutside:n},children:e})})};st.displayName="PopoverStandalone";const oo=e=>{const t=p.useRef(null),o=p.useCallback(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)},[]);return{scrollToElement:p.useCallback((n,s=600)=>{const i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,l=n.getBoundingClientRect(),u=l.top+window.pageYOffset,d=l.height,v=window.innerHeight;let f=u-v/2+d/2;const h=document.documentElement.scrollHeight,P=Math.max(0,h-v);if(f=Math.max(0,Math.min(f,P)),i){window.scrollTo(0,f),e?.();return}const m=window.pageYOffset,S=f-m,_=performance.now(),y=E=>{const A=E-_,w=Math.min(A/s,1),j=w<.5?2*w*w:1-Math.pow(-2*w+2,2)/2,R=m+S*j;window.scrollTo(0,R),w<1?t.current=requestAnimationFrame(y):(t.current=null,e?.())};o(),t.current=requestAnimationFrame(y)},[e,o]),cancelScroll:o}};function ro(e){const t=p.useRef(null),o=ne(),r=X(),n=p.useRef(!1),{scrollToElement:s,cancelScroll:i}=oo(o?.onScrollComplete);return p.useEffect(()=>{typeof e=="function"?e(t.current):e&&(e.current=t.current)},[e]),p.useEffect(()=>{if(r&&o?.walkthroughStep!==void 0&&r.currentStep===o.walkthroughStep&&t.current&&!n.current){const u=t.current,d=u.getBoundingClientRect(),v=100;d.top>=-v&&d.bottom<=window.innerHeight+v&&d.left>=-v&&d.right<=window.innerWidth+v?o?.onScrollComplete?.():(o?.onScrollStart?.(),s(u)),n.current=!0}else r?.currentStep!==o?.walkthroughStep&&(n.current=!1,i())},[r?.currentStep,o?.walkthroughStep,r,s,i,o]),p.useEffect(()=>{t.current&&t.current.removeAttribute("aria-expanded")},[o?.isOpen]),p.useEffect(()=>i,[i]),{triggerRef:t,context:o}}const ue=Y.c.bind(G),it=p.forwardRef(({children:e,className:t,highlight:o=!0,negative:r=!1,...n},s)=>{const{triggerRef:i,context:l}=ro(s);return a.jsxs("div",{className:ue("purpur-popover__trigger",{"purpur-popover__trigger--highlight":l?.isOpen&&o},t),children:[l?.isOpen&&o&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ue("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state1",{"purpur-popover__trigger-highlight--negative":r}),"aria-hidden":"true"}),a.jsx("div",{className:ue("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state2",{"purpur-popover__trigger-highlight--negative":r}),"aria-hidden":"true"})]}),a.jsx(Bt,{ref:i,asChild:!0,"aria-haspopup":"dialog",...n,children:e})]})});it.displayName="PopoverTrigger";function no(e){const t=X(),[o,r]=p.useState(!1),[n,s]=p.useState(!1),i=p.useRef(null),l=p.useRef(0);p.useEffect(()=>t?(t.registerStep(e),()=>t.unregisterStep(e)):()=>{},[t,e]);const u=t?.currentStep===e,d=p.useCallback(()=>{s(!0)},[]),v=p.useCallback(()=>{if(s(!1),u){const h=t.openDelay;i.current=window.setTimeout(()=>{r(!0),l.current=Date.now()},h)}},[u,t]);p.useEffect(()=>{if(i.current&&(clearTimeout(i.current),i.current=null),u){if(!n){const h=t.openDelay;i.current=window.setTimeout(()=>{r(!0),l.current=Date.now()},h)}}else r(!1),s(!1),l.current=0;return()=>{i.current&&(clearTimeout(i.current),i.current=null)}},[u,n,t]);const f=p.useCallback((h,P)=>{if(P?.(h),!h&&o&&t&&t.currentStep===e){if(Date.now()-l.current<10||i.current!==null)return;t.dismiss()}},[o,t,e]);return{actuallyOpen:o,onScrollStart:d,onScrollComplete:v,handleOpenChange:f}}const at=({children:e,step:t,onOpenChange:o,disableClickOutside:r=!0,...n})=>{const{actuallyOpen:s,onScrollStart:i,onScrollComplete:l,handleOpenChange:u}=no(t);return a.jsx(et,{modal:!0,open:s,onOpenChange:d=>u(d,o),...n,children:a.jsx(he.Provider,{value:{isOpen:s,walkthroughStep:t,onScrollStart:i,onScrollComplete:l,disableClickOutside:r},children:e})})};at.displayName="PopoverWalkthrough";const T=e=>{const{multistep:t=!1,disableClickOutside:o,...r}=e;return t?a.jsx(at,{...r,disableClickOutside:o??!0}):a.jsx(st,{...r,disableClickOutside:o})};T.Back=_e;T.Button=Pe;T.Content=nt;T.Flow=wt;T.Footer=Ce;T.Next=Se;T.Trigger=it;T.displayName="Popover";exports.Popover=T;
|
|
2
|
-
//# sourceMappingURL=popover-CY75TnbA.js.map
|