@purpur/library 9.10.1 → 10.0.1
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 +118 -0
- package/CHANGELOG.md +51 -1
- package/dist/LICENSE.txt +234 -179
- package/dist/{RichText-IejAKqm2.js → RichText-B865Qkzj.js} +2 -2
- package/dist/{RichText-IejAKqm2.js.map → RichText-B865Qkzj.js.map} +1 -1
- package/dist/{RichText-2_z57EYi.mjs → RichText-CPkBwXNI.mjs} +2 -2
- package/dist/{RichText-2_z57EYi.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-CTWhxuS4.mjs → calendar-DTL_g0ue.mjs} +4 -14
- package/dist/{calendar-CTWhxuS4.mjs.map → calendar-DTL_g0ue.mjs.map} +1 -1
- package/dist/{calendar-Cwzqytai.js → calendar-DVOrK53J.js} +2 -2
- package/dist/{calendar-Cwzqytai.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-DiKGSL-7.mjs → carousel-Dq9yzk_-.mjs} +2 -2
- package/dist/{carousel-DiKGSL-7.mjs.map → carousel-Dq9yzk_-.mjs.map} +1 -1
- package/dist/{carousel-Dz_bUGo4.js → carousel-j-s6M1hu.js} +2 -2
- package/dist/{carousel-Dz_bUGo4.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-B2jmpVNr.js → chat-field-CLAjIHlM.js} +2 -2
- package/dist/{chat-field-B2jmpVNr.js.map → chat-field-CLAjIHlM.js.map} +1 -1
- package/dist/{chat-field-8cKqYcKi.mjs → chat-field-nxFRXoQx.mjs} +2 -2
- package/dist/{chat-field-8cKqYcKi.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-N5G3k2kr.js → comparison-table-CRWRijfG.js} +2 -2
- package/dist/{comparison-table-N5G3k2kr.js.map → comparison-table-CRWRijfG.js.map} +1 -1
- package/dist/{comparison-table-CmtSOUfK.mjs → comparison-table-DYaRaP9Z.mjs} +3 -3
- package/dist/{comparison-table-CmtSOUfK.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 +5 -5
- package/dist/components/accordion/src/accordion-item.d.ts.map +1 -1
- package/dist/components/accordion/src/accordion.d.ts +2 -6
- 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/badge/src/badge.d.ts +1 -1
- package/dist/components/button/src/button.d.ts +3 -4
- 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-badge.d.ts +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-heading.d.ts +5 -5
- package/dist/components/card/src/card-heading.d.ts.map +1 -1
- package/dist/components/card/src/card-root.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/comparison-table/src/components/OptionCard/option-card.d.ts +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 +2 -2
- package/dist/components/content-block/src/content-block.d.ts.map +1 -1
- package/dist/components/counter-badge/src/counter-badge.d.ts +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 +1 -1
- package/dist/components/cta-link/src/cta-link.d.ts +10 -10
- package/dist/components/date-field/src/date-field.d.ts +1 -1
- package/dist/components/date-picker/src/date-picker.d.ts +1 -1
- 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.d.ts +2 -2
- 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-frame.d.ts +2 -2
- 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-trigger.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-helper-text/src/field-helper-text.d.ts +1 -1
- 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-social-link.d.ts +3 -3
- package/dist/components/heading/src/heading.d.ts +22 -4
- package/dist/components/heading/src/heading.d.ts.map +1 -1
- package/dist/components/hero-banner/src/hero-banner-types.d.ts +4 -4
- 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/illustrative-icon/src/static-illustrative-icon.d.ts +2 -2
- package/dist/components/label/src/label.d.ts +1 -1
- package/dist/components/listbox/src/listbox.d.ts +1 -1
- package/dist/components/loading/src/loading-illustrative.d.ts +1 -1
- package/dist/components/logo/src/logo.types.d.ts +1 -1
- 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 +3 -3
- package/dist/components/notification-banner/src/notification-banner.d.ts.map +1 -1
- package/dist/components/pagination/src/pagination-page-size-selector.d.ts +2 -2
- package/dist/components/pagination/src/pagination-page-trigger.d.ts +1 -1
- package/dist/components/pagination/src/pagination-pages.d.ts +2 -2
- 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/paragraph/src/paragraph.d.ts +1 -1
- package/dist/components/password-field/src/password-strength-indicator.d.ts +1 -1
- package/dist/components/popover/src/popover-button.d.ts +2 -2
- package/dist/components/product-card/src/product-card.d.ts +1 -1
- package/dist/components/promotion-card/src/promotion-card.d.ts +10 -10
- 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 +3 -6
- package/dist/components/quantity-selector/src/quantity-selector.d.ts.map +1 -1
- package/dist/components/radio-button-group/src/radio-button-group-root.d.ts +1 -1
- 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-autocomplete.d.ts +1 -1
- package/dist/components/search-field/src/search-field-base.d.ts +1 -1
- package/dist/components/select/src/select.d.ts +1 -1
- package/dist/components/skeleton/src/skeleton.d.ts +1 -1
- package/dist/components/spacer/src/spacer.d.ts +2 -2
- package/dist/components/spinner/src/spinner.d.ts +3 -3
- package/dist/components/stepper/src/stepper-container.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 +2 -2
- 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 +2 -2
- package/dist/components/table/src/draggable-table.d.ts.map +1 -1
- package/dist/components/table/src/empty-table.d.ts +2 -2
- 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 +1 -8
- 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/tabs/src/tab-content.d.ts +4 -2
- package/dist/components/tabs/src/tab-content.d.ts.map +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 +1 -1
- package/dist/components/toggle/src/toggle.d.ts +1 -1
- 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-CwZ64buh.js → date-field-CtpWDaSh.js} +2 -2
- package/dist/{date-field-CwZ64buh.js.map → date-field-CtpWDaSh.js.map} +1 -1
- package/dist/{date-field-ChYx0N2j.mjs → date-field-_rCuf15v.mjs} +2 -2
- package/dist/{date-field-ChYx0N2j.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-BWMKTOq6.js → date-picker-BYlszX1W.js} +2 -2
- package/dist/{date-picker-BWMKTOq6.js.map → date-picker-BYlszX1W.js.map} +1 -1
- package/dist/{date-picker-CTyqgBRB.mjs → date-picker-sqcNAplg.mjs} +6 -6
- package/dist/{date-picker-CTyqgBRB.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-DDr-qEGX.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-Cnk2OKgi.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-D5YkHmCo.mjs → footer-DkVmTd-f.mjs} +24 -24
- 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-BXRArPWP.mjs → hero-banner-ChDoFRhq.mjs} +4 -4
- package/dist/hero-banner-ChDoFRhq.mjs.map +1 -0
- package/dist/{hero-banner-CW7DIEZe.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 +1 -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/theme/src/ThemeProvider.d.ts +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +595 -596
- package/dist/{modal-CnC4Zyjk.js → modal-CXOYUsJm.js} +2 -2
- package/dist/modal-CXOYUsJm.js.map +1 -0
- package/dist/{modal-BuUQrUYJ.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-CeoAXDXq.js → notification-BkM2vLzI.js} +2 -2
- package/dist/{notification-CeoAXDXq.js.map → notification-BkM2vLzI.js.map} +1 -1
- package/dist/{notification-C3f3N1K1.mjs → notification-Cbn0UN1p.mjs} +3 -3
- package/dist/{notification-C3f3N1K1.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-BvAy8dlg.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-C_E4563x.mjs → password-field-Cy_E-D_G.mjs} +29 -29
- package/dist/{password-field-C_E4563x.mjs.map → password-field-Cy_E-D_G.mjs.map} +1 -1
- package/dist/{password-field-BjKdBoIK.js → password-field-lKyWHjQS.js} +2 -2
- package/dist/{password-field-BjKdBoIK.js.map → password-field-lKyWHjQS.js.map} +1 -1
- package/dist/password-field.cjs.js +1 -1
- package/dist/password-field.es.js +1 -1
- 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-BTqVE1-l.mjs → search-field-BTJtRyw5.mjs} +3 -3
- package/dist/{search-field-BTqVE1-l.mjs.map → search-field-BTJtRyw5.mjs.map} +1 -1
- package/dist/{search-field-DkJrwzJB.js → search-field-nzVXak1a.js} +2 -2
- package/dist/{search-field-DkJrwzJB.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-CS0PT5T6.js → text-field-BSgqJjpv.js} +2 -2
- package/dist/text-field-BSgqJjpv.js.map +1 -0
- package/dist/{text-field-C9LX7LBf.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-COFCRUKv.js.map → tooltip-DeP1UsPW.js.map} +1 -1
- package/dist/{tooltip-FH9R2MAA.mjs → tooltip-bqdd2lJL.mjs} +347 -309
- package/dist/{tooltip-FH9R2MAA.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 +25 -25
- package/src/aliases.ts +4 -4
- package/src/entries.js +1 -1
- package/src/{autocomplete.ts → file-upload.ts} +1 -1
- package/src/library.ts +1 -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-C6AqdYaZ.mjs +0 -228
- package/dist/autocomplete-C6AqdYaZ.mjs.map +0 -1
- package/dist/autocomplete-yrPbF5gq.js +0 -2
- package/dist/autocomplete-yrPbF5gq.js.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-DZgtrGqN.js +0 -2
- package/dist/button-DZgtrGqN.js.map +0 -1
- package/dist/button-EVRfctR8.mjs +0 -109
- package/dist/button-EVRfctR8.mjs.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-CvzOl-eC.js +0 -2
- package/dist/date-range-field-CvzOl-eC.js.map +0 -1
- package/dist/date-range-field-DDr-qEGX.mjs.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-BnqxUIPM.js +0 -2
- package/dist/drawer-BnqxUIPM.js.map +0 -1
- package/dist/drawer-Cnk2OKgi.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-B8rzVSrZ.js +0 -2
- package/dist/footer-B8rzVSrZ.js.map +0 -1
- package/dist/footer-D5YkHmCo.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-BXRArPWP.mjs.map +0 -1
- package/dist/hero-banner-CW7DIEZe.js.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/modal-BuUQrUYJ.mjs.map +0 -1
- package/dist/modal-CnC4Zyjk.js.map +0 -1
- package/dist/notification-banner-BvAy8dlg.mjs.map +0 -1
- package/dist/notification-banner-DUe4fT1r.js +0 -2
- package/dist/notification-banner-DUe4fT1r.js.map +0 -1
- package/dist/popover-4phnhJLj.js +0 -2
- package/dist/popover-4phnhJLj.js.map +0 -1
- package/dist/popover-DhObSx97.mjs +0 -1043
- package/dist/popover-DhObSx97.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-Ds7d4MnV.js +0 -2
- package/dist/quantity-selector-Ds7d4MnV.js.map +0 -1
- package/dist/quantity-selector-DwkKKmFy.mjs +0 -172
- package/dist/quantity-selector-DwkKKmFy.mjs.map +0 -1
- package/dist/stepper-5rQ3cK18.js +0 -2
- package/dist/stepper-5rQ3cK18.js.map +0 -1
- package/dist/stepper-B3p9r3gv.mjs +0 -449
- package/dist/stepper-B3p9r3gv.mjs.map +0 -1
- package/dist/table-BIyaTsOh.js +0 -9
- package/dist/table-BIyaTsOh.js.map +0 -1
- package/dist/table-BtymEUG4.mjs +0 -7428
- package/dist/table-BtymEUG4.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-C9LX7LBf.mjs.map +0 -1
- package/dist/text-field-CS0PT5T6.js.map +0 -1
- package/dist/tooltip-COFCRUKv.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popover-DhObSx97.mjs","sources":["../../../components/popover/src/popover-flow.tsx","../../../components/popover/src/popover-internal-context.tsx","../../../components/popover/src/use-screen-size.hook.ts","../../../components/popover/src/popover-back.tsx","../../../common/temp/node_modules/.pnpm/@radix-ui+react-arrow@1.1.7_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@_e05f2c19a58a99fddf374207b5e3778c/node_modules/@radix-ui/react-arrow/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-popper@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react_13e0521d8aea7ebfbfb8bee1fb615c05/node_modules/@radix-ui/react-popper/dist/index.mjs","../../../common/temp/node_modules/.pnpm/@radix-ui+react-popover@1.1.15_@types+react-dom@19.2.3_@types+react@19.2.14__@types+rea_8b5332f8e883134e9d9ab2856fc4395d/node_modules/@radix-ui/react-popover/dist/index.mjs","../../../components/popover/src/popover-button.tsx","../../../components/popover/src/popover-steps.tsx","../../../components/popover/src/popover-footer.tsx","../../../components/popover/src/popover-header.tsx","../../../components/popover/src/popover-next.tsx","../../../components/popover/src/popover-content.tsx","../../../components/popover/src/popover-standalone.tsx","../../../components/popover/src/use-smooth-scroll.ts","../../../components/popover/src/usePopoverTrigger.ts","../../../components/popover/src/popover-trigger.tsx","../../../components/popover/src/usePopoverWalkthrough.ts","../../../components/popover/src/popover-walkthrough.tsx","../../../components/popover/src/popover.tsx"],"sourcesContent":["import React, {\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\ntype PopoverFlowContextType = {\n currentStep: number;\n totalSteps: number;\n next: () => void;\n back: () => void;\n dismiss: () => void;\n registerStep: (step: number) => void;\n unregisterStep: (step: number) => void;\n separatorText: string;\n stepText: string;\n backLabel: string;\n nextLabel: string;\n finishLabel: string;\n openDelay: number;\n};\n\nconst PopoverFlowContext = createContext<PopoverFlowContextType | null>(null);\n\nexport const usePopoverFlow = () => {\n const context = useContext(PopoverFlowContext);\n if (!context) {\n throw new Error(\"usePopoverFlow must be used within a PopoverFlow provider\");\n }\n return context;\n};\n\nexport const useOptionalPopoverFlow = (): PopoverFlowContextType | null => {\n return useContext(PopoverFlowContext);\n};\n\nexport type PopoverFlowProps = {\n /**\n * Child components, typically multiple Popover components with step numbers.\n */\n children: ReactNode;\n /**\n * The step number to show when the flow starts.\n * @default 1\n */\n initialStep?: number;\n /**\n * Callback fired when the user completes the last step of the flow.\n */\n onComplete?: () => void;\n /**\n * Callback fired when the user dismisses the flow before completing it.\n */\n onDismiss?: () => void;\n /**\n * Text used as separator in the step indicator (e.g., \"of\" in \"1 of 3\").\n */\n separatorText: string;\n /**\n * Text label for \"Step\" in the step indicator.\n */\n stepText: string;\n /**\n * Label for the back navigation button.\n */\n backLabel: string;\n /**\n * Label for the next navigation button.\n */\n nextLabel: string;\n /**\n * Label for the finish button on the last step.\n */\n finishLabel: string;\n /**\n * Delay in milliseconds before opening the next popover in the flow.\n * @default 0\n */\n openDelay?: number;\n};\n\nexport const PopoverFlow = ({\n children,\n initialStep = 1,\n onComplete,\n onDismiss,\n separatorText,\n stepText,\n backLabel,\n nextLabel,\n finishLabel,\n openDelay = 0,\n}: PopoverFlowProps) => {\n const [currentStep, setCurrentStep] = useState(initialStep);\n const [registeredSteps, setRegisteredSteps] = useState<Set<number>>(new Set());\n\n const registerStep = useCallback((step: number) => {\n setRegisteredSteps((prev) => {\n const next = new Set(prev);\n next.add(step);\n return next;\n });\n }, []);\n\n const unregisterStep = useCallback((step: number) => {\n setRegisteredSteps((prev) => {\n const next = new Set(prev);\n next.delete(step);\n return next;\n });\n }, []);\n\n const next = useCallback(() => {\n setCurrentStep((prev) => {\n const nextStep = prev + 1;\n if (nextStep > registeredSteps.size) {\n onComplete?.();\n return prev;\n }\n return nextStep;\n });\n }, [registeredSteps.size, onComplete]);\n\n const back = useCallback(() => {\n setCurrentStep((prev) => Math.max(1, prev - 1));\n }, []);\n\n const dismiss = useCallback(() => {\n setCurrentStep(0);\n onDismiss?.();\n }, [onDismiss]);\n\n const value = useMemo(\n () => ({\n currentStep,\n totalSteps: registeredSteps.size,\n next,\n back,\n dismiss,\n registerStep,\n unregisterStep,\n separatorText,\n stepText,\n backLabel,\n nextLabel,\n finishLabel,\n openDelay,\n }),\n [\n currentStep,\n registeredSteps.size,\n next,\n back,\n dismiss,\n registerStep,\n unregisterStep,\n separatorText,\n stepText,\n backLabel,\n nextLabel,\n finishLabel,\n openDelay,\n ]\n );\n\n return <PopoverFlowContext.Provider value={value}>{children}</PopoverFlowContext.Provider>;\n};\n","import { createContext, useContext } from \"react\";\n\nexport type PopoverInternalContextValue = {\n isOpen: boolean;\n walkthroughStep: number;\n onScrollComplete?: () => void;\n onScrollStart?: () => void;\n disableClickOutside?: boolean;\n};\n\nexport const PopoverInternalContext = createContext<PopoverInternalContextValue | null>(null);\n\nexport const usePopoverInternal = () => {\n const context = useContext(PopoverInternalContext);\n return context;\n};\n\n// Separate context for UI-specific props that are set at the Content level\nexport type PopoverNegativeContextValue = {\n negative: boolean;\n};\n\nexport const PopoverNegativeContext = createContext<PopoverNegativeContextValue>({ negative: false });\n\nexport const usePopoverNegative = () => {\n const context = useContext(PopoverNegativeContext);\n return context;\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { purpurBreakpointMd } from \"@purpur/tokens\";\n\nconst DEBOUNCE_DELAY = 150;\n\nexport const SCREEN_MEDIA_QUERY = {\n MAX_MD: `(max-width: ${purpurBreakpointMd})`,\n} as const;\n\nexport const useScreenSize = () => {\n const maxMediumScreen = window.matchMedia(SCREEN_MEDIA_QUERY.MAX_MD);\n function updateSize() {\n setIsMdOrSmaller(maxMediumScreen.matches);\n }\n\n const [isMdOrSmaller, setIsMdOrSmaller] = useState(() => {\n if (typeof window === \"undefined\") return false;\n return window.matchMedia(SCREEN_MEDIA_QUERY.MAX_MD).matches;\n });\n\n const handleResize = useCallback(() => {\n let timeoutId: ReturnType<typeof setTimeout>;\n\n return () => {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => updateSize(), DEBOUNCE_DELAY);\n };\n }, [updateSize]);\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [handleResize]);\n\n return { isMdOrSmaller };\n};\n","import React, { type ReactNode } from \"react\";\nimport { Button } from \"@purpur/button\";\n\nimport { usePopoverFlow } from \"./popover-flow\";\nimport { usePopoverNegative } from \"./popover-internal-context\";\nimport { useScreenSize } from \"./use-screen-size.hook\";\n\nexport const PopoverBack = ({\n children,\n onClick,\n}: {\n children: ReactNode;\n onClick?: () => void;\n}) => {\n const { back } = usePopoverFlow();\n const { negative: isNegative } = usePopoverNegative();\n const { isMdOrSmaller } = useScreenSize();\n\n // Invert negative: if popover is negative (light), buttons should be normal (dark)\n const negative = isNegative ? false : true;\n\n const handleClick = () => {\n onClick?.();\n back();\n };\n\n return (\n <Button\n size=\"sm\"\n variant=\"secondary\"\n onClick={handleClick}\n negative={negative}\n fullWidth={isMdOrSmaller}\n >\n {children}\n </Button>\n );\n};\n\nPopoverBack.displayName = \"PopoverBack\";\n","// src/arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Arrow\";\nvar Arrow = React.forwardRef((props, forwardedRef) => {\n const { children, width = 10, height = 5, ...arrowProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.svg,\n {\n ...arrowProps,\n ref: forwardedRef,\n width,\n height,\n viewBox: \"0 0 30 10\",\n preserveAspectRatio: \"none\",\n children: props.asChild ? children : /* @__PURE__ */ jsx(\"polygon\", { points: \"0,0 30,0 15,10\" })\n }\n );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\nexport {\n Arrow,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/popper.tsx\nimport * as React from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n shift,\n limitShift,\n hide,\n arrow as floatingUIarrow,\n flip,\n size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props) => {\n const { __scopePopper, children } = props;\n const [anchor, setAnchor] = React.useState(null);\n return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopper, virtualRef, ...anchorProps } = props;\n const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const anchorRef = React.useRef(null);\n React.useEffect(() => {\n const previousAnchor = anchorRef.current;\n anchorRef.current = virtualRef?.current || ref.current;\n if (previousAnchor !== anchorRef.current) {\n context.onAnchorChange(anchorRef.current);\n }\n });\n return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });\n }\n);\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopper,\n side = \"bottom\",\n sideOffset = 0,\n align = \"center\",\n alignOffset = 0,\n arrowPadding = 0,\n avoidCollisions = true,\n collisionBoundary = [],\n collisionPadding: collisionPaddingProp = 0,\n sticky = \"partial\",\n hideWhenDetached = false,\n updatePositionStrategy = \"optimized\",\n onPlaced,\n ...contentProps\n } = props;\n const context = usePopperContext(CONTENT_NAME, __scopePopper);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [arrow, setArrow] = React.useState(null);\n const arrowSize = useSize(arrow);\n const arrowWidth = arrowSize?.width ?? 0;\n const arrowHeight = arrowSize?.height ?? 0;\n const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n const hasExplicitBoundaries = boundary.length > 0;\n const detectOverflowOptions = {\n padding: collisionPadding,\n boundary: boundary.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: hasExplicitBoundaries\n };\n const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: \"fixed\",\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: updatePositionStrategy === \"always\"\n });\n return cleanup;\n },\n elements: {\n reference: context.anchor\n },\n middleware: [\n offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n avoidCollisions && shift({\n mainAxis: true,\n crossAxis: false,\n limiter: sticky === \"partial\" ? limitShift() : void 0,\n ...detectOverflowOptions\n }),\n avoidCollisions && flip({ ...detectOverflowOptions }),\n size({\n ...detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n }\n }),\n arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n transformOrigin({ arrowWidth, arrowHeight }),\n hideWhenDetached && hide({ strategy: \"referenceHidden\", ...detectOverflowOptions })\n ]\n });\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const handlePlaced = useCallbackRef(onPlaced);\n useLayoutEffect(() => {\n if (isPositioned) {\n handlePlaced?.();\n }\n }, [isPositioned, handlePlaced]);\n const arrowX = middlewareData.arrow?.x;\n const arrowY = middlewareData.arrow?.y;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: refs.setFloating,\n \"data-radix-popper-content-wrapper\": \"\",\n style: {\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n // keep off the page when measuring\n minWidth: \"max-content\",\n zIndex: contentZIndex,\n [\"--radix-popper-transform-origin\"]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y\n ].join(\" \"),\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n pointerEvents: \"none\"\n }\n },\n dir: props.dir,\n children: /* @__PURE__ */ jsx(\n PopperContentProvider,\n {\n scope: __scopePopper,\n placedSide,\n onArrowChange: setArrow,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-side\": placedSide,\n \"data-align\": placedAlign,\n ...contentProps,\n ref: composedRefs,\n style: {\n ...contentProps.style,\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? \"none\" : void 0\n }\n }\n )\n }\n )\n }\n );\n }\n);\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nvar PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {\n const { __scopePopper, ...arrowProps } = props;\n const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n return (\n // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n // doesn't report size as we'd expect on SVG elements.\n // it reports their bounding box which is effectively the largest path inside the SVG.\n /* @__PURE__ */ jsx(\n \"span\",\n {\n ref: contentContext.onArrowChange,\n style: {\n position: \"absolute\",\n left: contentContext.arrowX,\n top: contentContext.arrowY,\n [baseSide]: 0,\n transformOrigin: {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\"\n }[contentContext.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: `rotate(180deg)`,\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n }[contentContext.placedSide],\n visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n },\n children: /* @__PURE__ */ jsx(\n ArrowPrimitive.Root,\n {\n ...arrowProps,\n ref: forwardedRef,\n style: {\n ...arrowProps.style,\n // ensures the element can be measured correctly (mostly for if SVG)\n display: \"block\"\n }\n }\n )\n }\n )\n );\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n return value !== null;\n}\nvar transformOrigin = (options) => ({\n name: \"transformOrigin\",\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n});\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n ALIGN_OPTIONS,\n Anchor,\n Arrow,\n Content,\n Popper,\n PopperAnchor,\n PopperArrow,\n PopperContent,\n Root2 as Root,\n SIDE_OPTIONS,\n createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { type ReactNode } from \"react\";\nimport { Button, type ButtonProps } from \"@purpur/button\";\nimport * as RadixPopover from \"@radix-ui/react-popover\";\n\nimport { useOptionalPopoverFlow } from \"./popover-flow\";\nimport { usePopoverNegative } from \"./popover-internal-context\";\nimport { useScreenSize } from \"./use-screen-size.hook\";\n\nexport type PopoverButtonProps = RadixPopover.PopoverCloseProps & {\n /**\n * Button label or content.\n */\n children: ReactNode;\n /**\n * Whether to use the child element as the button instead of wrapping in a Button component.\n * @default false\n */\n asChild?: boolean;\n /**\n * Click handler called when the button is clicked.\n */\n onClick?: () => void;\n /**\n * Visual variant of the button.\n * @default \"primary\"\n */\n variant?: ButtonProps[\"variant\"];\n /**\n * Whether clicking the button should dismiss/close the popover.\n * @default true\n */\n dismiss?: boolean;\n /**\n * Whether the button should take full width. If not specified, defaults to true on mobile (md or smaller).\n */\n fullWidth?: boolean;\n};\n\nexport const PopoverButton = ({\n children,\n asChild,\n onClick,\n variant = \"primary\",\n dismiss = true,\n fullWidth,\n}: PopoverButtonProps) => {\n const flow = useOptionalPopoverFlow();\n const { isMdOrSmaller } = useScreenSize();\n const { negative: isNegative } = usePopoverNegative();\n // Invert negative: if popover is negative (light), buttons should be normal (dark)\n const negative = isNegative ? false : true;\n\n const handleClick = () => {\n onClick?.();\n if (dismiss) {\n flow?.dismiss();\n }\n };\n\n const isFullWidth = fullWidth ?? isMdOrSmaller;\n\n const content = asChild ? (\n children\n ) : (\n <Button\n variant={variant}\n size=\"sm\"\n fullWidth={isFullWidth}\n negative={negative}\n onClick={handleClick}\n >\n {children}\n </Button>\n );\n\n // Always wrap with RadixPopover.Close for proper dismiss behavior\n if (dismiss) {\n return <RadixPopover.Close asChild>{content}</RadixPopover.Close>;\n }\n\n return content;\n};\n\nPopoverButton.displayName = \"PopoverButton\";\n","import React from \"react\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./popover.module.scss\";\nimport { usePopoverFlow } from \"./popover-flow\";\nimport { usePopoverInternal } from \"./popover-internal-context\";\n\nconst cx = c.bind(styles);\n\nexport const PopoverSteps = () => {\n const flow = usePopoverFlow();\n const context = usePopoverInternal();\n\n // Use walkthroughStep from context (each popover knows its own step number)\n const currentStep = context?.walkthroughStep || flow.currentStep;\n const { totalSteps, separatorText, stepText } = flow;\n return (\n <>\n <Paragraph\n className={cx(\"purpur-popover__steps\")}\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {stepText} {currentStep} {separatorText} {totalSteps}\n </Paragraph>\n </>\n );\n};\n\nPopoverSteps.displayName = \"PopoverSteps\";\n","import React, { type ReactNode } from \"react\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./popover.module.scss\";\nimport { useOptionalPopoverFlow } from \"./popover-flow\";\nimport { usePopoverInternal } from \"./popover-internal-context\";\nimport { PopoverSteps } from \"./popover-steps\";\n\nconst cx = c.bind(styles);\n\nexport type PopoverFooterProps = {\n /**\n * Footer content, typically navigation buttons like PopoverButton, PopoverNext, or PopoverBack.\n */\n children: ReactNode;\n /**\n * Optional CSS class name for custom styling.\n */\n className?: string;\n};\n\nexport const PopoverFooter = ({ children, className }: PopoverFooterProps) => {\n const flow = useOptionalPopoverFlow();\n const internal = usePopoverInternal();\n\n // Only show steps if we have a flow context AND this popover is part of the flow (walkthroughStep > 0)\n const showSteps = flow && internal && internal.walkthroughStep > 0;\n\n return (\n <div className={cx(\"purpur-popover__footer\", className)}>\n {showSteps && <PopoverSteps />}\n <div className={cx(\"purpur-popover__footer-button-group\")}>{children}</div>\n </div>\n );\n};\n\nPopoverFooter.displayName = \"PopoverFooter\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport { Heading } from \"@purpur/heading\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./popover.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type PopoverHeaderProps = {\n title: string;\n icon?: ReactNode;\n};\n\nexport const PopoverHeader = forwardRef<HTMLDivElement, PopoverHeaderProps>(\n ({ title, icon }, ref) => {\n return (\n <div ref={ref} className={cx(\"purpur-popover__header-content\")}>\n {icon && <span className={cx(\"purpur-popover__icon\")}>{icon}</span>}\n <Heading\n tag=\"h2\"\n variant=\"title-100\"\n className={cx(\"purpur-popover__title\")}\n id=\"popover-heading\"\n >\n {title}\n </Heading>\n </div>\n );\n }\n);\n\nPopoverHeader.displayName = \"PopoverHeader\";\n","import React, { type ReactNode } from \"react\";\nimport { Button } from \"@purpur/button\";\n\nimport { usePopoverFlow } from \"./popover-flow\";\nimport { usePopoverNegative } from \"./popover-internal-context\";\nimport { useScreenSize } from \"./use-screen-size.hook\";\n\nexport const PopoverNext = ({\n children,\n onClick,\n}: {\n children: ReactNode;\n onClick?: () => void;\n}) => {\n const { next } = usePopoverFlow();\n const { negative: isNegative } = usePopoverNegative();\n const { isMdOrSmaller } = useScreenSize();\n\n // Invert negative: if popover is negative (light), buttons should be normal (dark)\n const negative = isNegative ? false : true;\n\n const handleClick = () => {\n onClick?.();\n next();\n };\n\n return (\n <Button\n size=\"sm\"\n variant=\"primary\"\n onClick={handleClick}\n negative={negative}\n fullWidth={isMdOrSmaller}\n >\n {children}\n </Button>\n );\n};\n\nPopoverNext.displayName = \"PopoverNext\";\n","import React, { forwardRef, type ReactNode, useRef } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { useThemePortalContainer } from \"@purpur/theme\";\nimport * as RadixPopover from \"@radix-ui/react-popover\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./popover.module.scss\";\nimport { PopoverBack } from \"./popover-back\";\nimport { PopoverButton } from \"./popover-button\";\nimport { useOptionalPopoverFlow } from \"./popover-flow\";\nimport { PopoverFooter } from \"./popover-footer\";\nimport { PopoverHeader } from \"./popover-header\";\nimport { PopoverNegativeContext, usePopoverInternal } from \"./popover-internal-context\";\nimport { PopoverNext } from \"./popover-next\";\n\nconst cx = c.bind(styles);\n\nexport type PopoverAction = {\n type: \"next\" | \"back\" | \"finish\" | \"dismiss\";\n step?: number;\n};\n\nexport type PopoverContentProps = RadixPopover.PopoverContentProps & {\n /**\n * Position of the arrow/beak pointing to the trigger element.\n * Set to \"none\" to hide the arrow.\n * @default \"down\"\n */\n beakPosition?: \"up\" | \"right\" | \"down\" | \"left\" | \"none\";\n /**\n * Whether to use negative (light) styling for the popover content.\n * @default false\n */\n negative?: boolean;\n /**\n * Accessible label for the close button icon.\n */\n closeIconAriaLabel: string;\n /**\n * Main title text displayed in the popover header.\n */\n title: string;\n /**\n * Optional icon displayed in the popover header next to the title.\n */\n icon?: ReactNode;\n /**\n * Main body text content of the popover.\n */\n body: string;\n /**\n * Custom footer content. If not provided and used within PopoverFlow,\n * default navigation buttons will be rendered.\n */\n children?: ReactNode;\n /**\n * Callback fired when user interacts with navigation buttons (next, back, finish, dismiss).\n */\n onAction?: (action: PopoverAction) => void;\n /**\n * CSS z-index value for the popover content.\n * @default 210\n */\n zIndex?: number;\n /**\n * Optional DOM element to portal the popover content into. When omitted,\n * the popover 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\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n (\n {\n children,\n className,\n beakPosition = \"down\",\n align = \"center\",\n alignOffset = 0,\n sideOffset = 5, // How close or far the popover is from the trigger\n negative = false,\n closeIconAriaLabel,\n title,\n icon,\n body,\n onAction,\n zIndex = 210,\n container,\n ...props\n },\n ref\n ) => {\n const flow = useOptionalPopoverFlow();\n const context = usePopoverInternal();\n const headerRef = useRef<HTMLDivElement>(null);\n const isFlowDismissRef = useRef(false);\n const themePortalContainer = useThemePortalContainer();\n const portalContainer = container === undefined ? themePortalContainer : container ?? undefined;\n\n // Map beakPosition to Radix side values\n const beakPositionMap: Record<\n \"up\" | \"right\" | \"down\" | \"left\" | \"none\",\n \"bottom\" | \"left\" | \"top\" | \"right\"\n > = {\n up: \"bottom\",\n right: \"left\",\n down: \"top\",\n left: \"right\",\n none: \"bottom\", // Default position when no arrow\n };\n\n const radixSide = beakPositionMap[beakPosition];\n const shouldShowArrow = beakPosition !== \"none\";\n\n const getFocusableElements = (container: HTMLElement): HTMLElement[] => {\n const focusableSelector =\n \"button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex='-1'])\";\n\n return Array.from(container.querySelectorAll<HTMLElement>(focusableSelector)).filter(\n (element) => !element.hasAttribute(\"aria-hidden\")\n );\n };\n\n const focusOutsidePopover = (\n contentElement: HTMLElement,\n activeElement: HTMLElement,\n direction: \"next\" | \"previous\"\n ) => {\n const allFocusableElements = getFocusableElements(document.body);\n const activeIndex = allFocusableElements.indexOf(activeElement);\n\n if (activeIndex === -1) {\n return;\n }\n\n const step = direction === \"next\" ? 1 : -1;\n\n for (\n let currentIndex = activeIndex + step;\n currentIndex >= 0 && currentIndex < allFocusableElements.length;\n currentIndex += step\n ) {\n const candidate = allFocusableElements[currentIndex];\n\n if (!contentElement.contains(candidate)) {\n candidate.focus();\n return;\n }\n }\n };\n\n let footerContent = children;\n\n if (flow && !children) {\n // Use walkthroughStep from context (0 for standalone, actual step for walkthrough)\n const currentStep = context?.walkthroughStep || flow.currentStep;\n const isFirstStep = currentStep === 1;\n const isLastStep = currentStep === flow.totalSteps;\n\n footerContent = (\n <PopoverFooter>\n {!isFirstStep && (\n <PopoverBack onClick={() => onAction?.({ type: \"back\", step: currentStep })}>\n {flow.backLabel}\n </PopoverBack>\n )}\n {isLastStep ? (\n <PopoverButton\n onClick={() => onAction?.({ type: \"finish\", step: currentStep })}\n dismiss\n >\n {flow.finishLabel}\n </PopoverButton>\n ) : (\n <PopoverNext onClick={() => onAction?.({ type: \"next\", step: currentStep })}>\n {flow.nextLabel}\n </PopoverNext>\n )}\n </PopoverFooter>\n );\n }\n\n const handleOpenAutoFocus = (event: Event) => {\n event.preventDefault();\n\n const contentElement = event.currentTarget as HTMLElement;\n const headingElement = headerRef.current?.querySelector(\n \"#popover-heading\"\n ) as HTMLElement | null;\n\n // In walkthrough mode, focus contextual content first so AT users hear title/body before actions.\n setTimeout(() => {\n if (flow && headingElement) {\n headingElement.setAttribute(\"tabindex\", \"-1\");\n headingElement.focus();\n return;\n }\n\n // Fallback for standalone and missing heading.\n contentElement.setAttribute(\"tabindex\", \"-1\");\n contentElement.focus();\n }, 0);\n\n props.onOpenAutoFocus?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== \"Tab\") {\n props.onKeyDown?.(event);\n return;\n }\n\n const contentElement = event.currentTarget;\n const focusableElements = getFocusableElements(contentElement);\n\n if (focusableElements.length === 0) {\n props.onKeyDown?.(event);\n return;\n }\n\n const firstFocusable = focusableElements[0];\n const lastFocusable = focusableElements[focusableElements.length - 1];\n const activeElement = document.activeElement as HTMLElement | null;\n\n const isOnFirstFocusable = activeElement === firstFocusable;\n const isOnLastFocusable = activeElement === lastFocusable;\n const isOnNonTabbableContext =\n activeElement !== null &&\n contentElement.contains(activeElement) &&\n activeElement.tabIndex === -1;\n\n if (!flow) {\n if (activeElement !== null) {\n if (event.shiftKey && isOnFirstFocusable) {\n event.preventDefault();\n focusOutsidePopover(contentElement, activeElement, \"previous\");\n } else if (!event.shiftKey && isOnLastFocusable) {\n event.preventDefault();\n focusOutsidePopover(contentElement, activeElement, \"next\");\n }\n }\n\n props.onKeyDown?.(event);\n return;\n }\n\n if (event.shiftKey && (isOnFirstFocusable || isOnNonTabbableContext)) {\n event.preventDefault();\n lastFocusable.focus();\n } else if (!event.shiftKey && (isOnLastFocusable || isOnNonTabbableContext)) {\n event.preventDefault();\n firstFocusable.focus();\n }\n\n props.onKeyDown?.(event);\n };\n\n const handleCloseAutoFocus = (event: Event) => {\n // Prevent focus from returning to trigger in walkthrough flow\n // This allows the next popover to manage focus properly\n if (flow && !isFlowDismissRef.current) {\n event.preventDefault();\n }\n\n if (isFlowDismissRef.current) {\n isFlowDismissRef.current = false;\n }\n\n props.onCloseAutoFocus?.(event);\n };\n\n const handleClose = (event: React.MouseEvent) => {\n if (flow) {\n isFlowDismissRef.current = true;\n event.preventDefault();\n }\n\n onAction?.({ type: \"dismiss\", step: flow?.currentStep });\n flow?.dismiss();\n };\n\n const handleEscapeKey = (event: KeyboardEvent) => {\n if (flow) {\n isFlowDismissRef.current = true;\n event.preventDefault();\n }\n\n onAction?.({ type: \"dismiss\", step: flow?.currentStep });\n flow?.dismiss();\n };\n\n const handleInteractOutside = (event: Event) => {\n if (context?.disableClickOutside) {\n event.preventDefault();\n return;\n }\n\n if (flow) {\n const target = event.target as HTMLElement;\n const isPopoverInteraction =\n target.closest(\"[role='dialog']\") ||\n target.closest(\".purpur-popover__trigger\") ||\n target.closest(\"button[aria-haspopup='dialog']\");\n\n if (!isPopoverInteraction) {\n onAction?.({ type: \"dismiss\", step: flow.currentStep });\n setTimeout(() => {\n flow.dismiss();\n }, 0);\n }\n }\n };\n\n return (\n <RadixPopover.Portal container={portalContainer}>\n <RadixPopover.Content\n data-testid=\"popover-content\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={props[\"aria-label\"] ? undefined : \"popover-heading\"}\n ref={ref}\n side={radixSide}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n style={\n {\n \"--popover-z-index\": zIndex,\n } as React.CSSProperties\n }\n className={cx(\n \"purpur-popover__content\",\n { \"purpur-popover__content--negative\": negative },\n className\n )}\n onOpenAutoFocus={handleOpenAutoFocus}\n onCloseAutoFocus={handleCloseAutoFocus}\n onKeyDown={handleKeyDown}\n onEscapeKeyDown={handleEscapeKey}\n onInteractOutside={handleInteractOutside}\n {...props}\n >\n <PopoverNegativeContext.Provider value={{ negative }}>\n <div className={cx(\"purpur-popover__inner\")}>\n <PopoverHeader ref={headerRef} title={title} icon={icon} />\n <Paragraph className={cx(\"purpur-popover__body\")}>{body}</Paragraph>\n </div>\n {footerContent}\n\n <RadixPopover.Close asChild onClick={handleClose}>\n <Button\n variant={negative ? \"text\" : \"tertiary-purple\"}\n size=\"sm\"\n aria-label={closeIconAriaLabel}\n className={cx(\"purpur-popover__close\")}\n negative={!negative}\n iconOnly\n >\n <IconClose size=\"xs\" className={cx(\"purpur-popover__icon\")} />\n </Button>\n </RadixPopover.Close>\n </PopoverNegativeContext.Provider>\n {shouldShowArrow && (\n <RadixPopover.Arrow\n className={cx(\"purpur-popover__arrow\")}\n aria-hidden=\"true\"\n tabIndex={-1}\n />\n )}\n </RadixPopover.Content>\n </RadixPopover.Portal>\n );\n }\n);\n\nPopoverContent.displayName = \"PopoverContent\";\n","import React, { type ReactNode, useState } from \"react\";\nimport * as RadixPopover from \"@radix-ui/react-popover\";\n\nimport { PopoverInternalContext } from \"./popover-internal-context\";\n\nexport type PopoverStandaloneProps = RadixPopover.PopoverProps & {\n children: ReactNode;\n className?: string;\n disableClickOutside?: boolean;\n};\n\nexport const PopoverStandalone = ({\n children,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n disableClickOutside,\n ...props\n}: PopoverStandaloneProps) => {\n // Internal state for uncontrolled mode\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const handleOpenChange = (newOpen: boolean) => {\n if (!isControlled) {\n setInternalOpen(newOpen);\n }\n onOpenChange?.(newOpen);\n };\n\n return (\n <RadixPopover.Root open={isOpen} onOpenChange={handleOpenChange} {...props}>\n <PopoverInternalContext.Provider\n value={{\n isOpen,\n walkthroughStep: 0,\n disableClickOutside,\n }}\n >\n {children}\n </PopoverInternalContext.Provider>\n </RadixPopover.Root>\n );\n};\n\nPopoverStandalone.displayName = \"PopoverStandalone\";\n","import { useCallback, useRef } from \"react\";\n\nexport const useSmoothScroll = (onComplete?: () => void) => {\n const scrollAnimationId = useRef<number | null>(null);\n\n const cancelScroll = useCallback(() => {\n if (scrollAnimationId.current) {\n cancelAnimationFrame(scrollAnimationId.current);\n scrollAnimationId.current = null;\n }\n }, []);\n\n const scrollToElement = useCallback(\n (element: HTMLElement, duration: number = 600) => {\n const prefersReducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n const rect = element.getBoundingClientRect();\n const absoluteTop = rect.top + window.pageYOffset;\n const elementHeight = rect.height;\n const viewportHeight = window.innerHeight;\n\n let targetY = absoluteTop - viewportHeight / 2 + elementHeight / 2;\n const documentHeight = document.documentElement.scrollHeight;\n const maxScroll = Math.max(0, documentHeight - viewportHeight);\n targetY = Math.max(0, Math.min(targetY, maxScroll));\n\n if (prefersReducedMotion) {\n window.scrollTo(0, targetY);\n onComplete?.();\n return;\n }\n\n const startY = window.pageYOffset;\n const distance = targetY - startY;\n const startTime = performance.now();\n\n const animateScroll = (currentTime: number) => {\n const elapsed = currentTime - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n const easeInOut =\n progress < 0.5 ? 2 * progress * progress : 1 - Math.pow(-2 * progress + 2, 2) / 2;\n\n const currentY = startY + distance * easeInOut;\n window.scrollTo(0, currentY);\n\n if (progress < 1) {\n scrollAnimationId.current = requestAnimationFrame(animateScroll);\n } else {\n scrollAnimationId.current = null;\n onComplete?.();\n }\n };\n\n cancelScroll();\n\n scrollAnimationId.current = requestAnimationFrame(animateScroll);\n },\n [onComplete, cancelScroll]\n );\n\n return { scrollToElement, cancelScroll };\n};\n","import { useEffect, useRef } from \"react\";\n\nimport { useOptionalPopoverFlow } from \"./popover-flow\";\nimport { usePopoverInternal } from \"./popover-internal-context\";\nimport { useSmoothScroll } from \"./use-smooth-scroll\";\n\nexport function usePopoverTrigger(ref: React.Ref<HTMLButtonElement>) {\n const triggerRef = useRef<HTMLButtonElement>(null);\n const context = usePopoverInternal();\n const flow = useOptionalPopoverFlow();\n const hasScrolled = useRef(false);\n const { scrollToElement, cancelScroll } = useSmoothScroll(context?.onScrollComplete);\n\n // Forward ref\n useEffect(() => {\n if (typeof ref === \"function\") {\n ref(triggerRef.current);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLButtonElement | null>).current = triggerRef.current;\n }\n }, [ref]);\n\n // Walkthrough scroll logic\n useEffect(() => {\n const isActiveStep =\n flow &&\n context?.walkthroughStep !== undefined &&\n flow.currentStep === context.walkthroughStep &&\n triggerRef.current &&\n !hasScrolled.current;\n\n if (isActiveStep) {\n const element = triggerRef.current!;\n const rect = element.getBoundingClientRect();\n const buffer = 100;\n const isVisible =\n rect.top >= -buffer &&\n rect.bottom <= window.innerHeight + buffer &&\n rect.left >= -buffer &&\n rect.right <= window.innerWidth + buffer;\n\n if (isVisible) {\n context?.onScrollComplete?.();\n } else {\n context?.onScrollStart?.();\n scrollToElement(element);\n }\n hasScrolled.current = true;\n } else if (flow?.currentStep !== context?.walkthroughStep) {\n hasScrolled.current = false;\n cancelScroll();\n }\n }, [flow?.currentStep, context?.walkthroughStep, flow, scrollToElement, cancelScroll, context]);\n\n // Radix Popover trigger applies aria-expanded by default; remove it to keep dialog trigger semantics.\n // Fixes expanded state in item \"The popover trigger button has an incorrect accessible name and communicates an inappropriate expanding state.\"\n useEffect(() => {\n if (triggerRef.current) {\n triggerRef.current.removeAttribute(\"aria-expanded\");\n }\n }, [context?.isOpen]);\n\n // Cancel scroll on unmount\n useEffect(() => cancelScroll, [cancelScroll]);\n\n return { triggerRef, context };\n}\n","import React, { forwardRef } from \"react\";\nimport * as RadixPopover from \"@radix-ui/react-popover\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./popover.module.scss\";\nimport { usePopoverTrigger } from \"./usePopoverTrigger\";\n\nconst cx = c.bind(styles);\n\nexport type PopoverTriggerProps = RadixPopover.PopoverTriggerProps & {\n /**\n * Whether to show visual highlight effect around the trigger when popover is open.\n * @default true\n */\n highlight?: boolean;\n /**\n * Whether to use negative (light) styling for the highlight effect.\n * @default false\n */\n negative?: boolean;\n};\n\nexport const PopoverTrigger = forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n ({ children, className, highlight = true, negative = false, ...props }, ref) => {\n const { triggerRef, context } = usePopoverTrigger(ref);\n\n return (\n <div\n className={cx(\n \"purpur-popover__trigger\",\n { \"purpur-popover__trigger--highlight\": context?.isOpen && highlight },\n className\n )}\n >\n {context?.isOpen && highlight && (\n <>\n {/* State 1: Outer glow effect */}\n <div\n className={cx(\n \"purpur-popover__trigger-highlight\",\n \"purpur-popover__trigger-highlight--state1\",\n { \"purpur-popover__trigger-highlight--negative\": negative }\n )}\n aria-hidden=\"true\"\n />\n {/* State 2: Inner border only */}\n <div\n className={cx(\n \"purpur-popover__trigger-highlight\",\n \"purpur-popover__trigger-highlight--state2\",\n { \"purpur-popover__trigger-highlight--negative\": negative }\n )}\n aria-hidden=\"true\"\n />\n </>\n )}\n <RadixPopover.Trigger\n ref={triggerRef}\n asChild\n aria-haspopup=\"dialog\"\n {...props}\n >\n {children}\n </RadixPopover.Trigger>\n </div>\n );\n }\n);\n\nPopoverTrigger.displayName = \"PopoverTrigger\";\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { useOptionalPopoverFlow } from \"./popover-flow\";\n\nexport function usePopoverWalkthrough(step: number) {\n const flow = useOptionalPopoverFlow();\n const [actuallyOpen, setActuallyOpen] = useState(false);\n const [waitingForScroll, setWaitingForScroll] = useState(false);\n const timeoutRef = useRef<number | null>(null);\n const openedAtRef = useRef<number>(0);\n\n useEffect(() => {\n if (flow) {\n flow.registerStep(step);\n return () => flow.unregisterStep(step);\n }\n return () => {};\n }, [flow, step]);\n\n const shouldBeOpen = flow?.currentStep === step;\n\n const onScrollStart = useCallback(() => {\n setWaitingForScroll(true);\n }, []);\n\n const onScrollComplete = useCallback(() => {\n setWaitingForScroll(false);\n if (shouldBeOpen) {\n const delay = flow.openDelay;\n timeoutRef.current = window.setTimeout(() => {\n setActuallyOpen(true);\n openedAtRef.current = Date.now();\n }, delay);\n }\n }, [shouldBeOpen, flow]);\n\n useEffect(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n\n if (shouldBeOpen) {\n if (!waitingForScroll) {\n const delay = flow.openDelay;\n timeoutRef.current = window.setTimeout(() => {\n setActuallyOpen(true);\n openedAtRef.current = Date.now();\n }, delay);\n }\n } else {\n setActuallyOpen(false);\n setWaitingForScroll(false);\n openedAtRef.current = 0;\n }\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n };\n }, [shouldBeOpen, waitingForScroll, flow]);\n\n const handleOpenChange = useCallback(\n (open: boolean, consumerOnOpenChange?: (open: boolean) => void) => {\n consumerOnOpenChange?.(open);\n if (!open && actuallyOpen && flow && flow.currentStep === step) {\n const timeSinceOpen = Date.now() - openedAtRef.current;\n if (timeSinceOpen < 10 || timeoutRef.current !== null) {\n return;\n }\n flow.dismiss();\n }\n },\n [actuallyOpen, flow, step]\n );\n\n return {\n actuallyOpen,\n onScrollStart,\n onScrollComplete,\n handleOpenChange,\n };\n}\n","import React, { type ReactNode } from \"react\";\nimport * as RadixPopover from \"@radix-ui/react-popover\";\n\nimport { PopoverInternalContext } from \"./popover-internal-context\";\nimport { usePopoverWalkthrough } from \"./usePopoverWalkthrough\";\n\nexport type PopoverWalkthroughProps = RadixPopover.PopoverProps & {\n children: ReactNode;\n step: number;\n className?: string;\n disableClickOutside?: boolean;\n};\n\nexport const PopoverWalkthrough = ({\n children,\n step,\n onOpenChange: consumerOnOpenChange,\n disableClickOutside = true,\n ...props\n}: PopoverWalkthroughProps) => {\n const { actuallyOpen, onScrollStart, onScrollComplete, handleOpenChange } =\n usePopoverWalkthrough(step);\n\n return (\n <RadixPopover.Root\n modal={true}\n open={actuallyOpen}\n onOpenChange={(open) => handleOpenChange(open, consumerOnOpenChange)}\n {...props}\n >\n <PopoverInternalContext.Provider\n value={{\n isOpen: actuallyOpen,\n walkthroughStep: step,\n onScrollStart,\n onScrollComplete,\n disableClickOutside,\n }}\n >\n {children}\n </PopoverInternalContext.Provider>\n </RadixPopover.Root>\n );\n};\n\nPopoverWalkthrough.displayName = \"PopoverWalkthrough\";\n","import React, { type ReactNode } from \"react\";\nimport type * as RadixPopover from \"@radix-ui/react-popover\";\n\nimport { PopoverBack } from \"./popover-back\";\nimport { PopoverButton } from \"./popover-button\";\nimport { type PopoverAction,PopoverContent } from \"./popover-content\";\nimport { PopoverFlow } from \"./popover-flow\";\nimport { PopoverFooter } from \"./popover-footer\";\nimport { PopoverNext } from \"./popover-next\";\nimport { PopoverStandalone } from \"./popover-standalone\";\nimport { PopoverTrigger } from \"./popover-trigger\";\nimport { PopoverWalkthrough } from \"./popover-walkthrough\";\n\nexport type { PopoverAction };\n\n// Base props shared by both variants\ntype BasePopoverProps = RadixPopover.PopoverProps & {\n children: ReactNode;\n className?: string;\n};\n\n// Standalone variant props\ntype StandalonePopoverProps = BasePopoverProps & {\n multistep?: false;\n step?: never;\n disableClickOutside?: boolean;\n};\n\n// Walkthrough variant props\ntype WalkthroughPopoverProps = BasePopoverProps & {\n multistep: true;\n step: number;\n disableClickOutside?: boolean;\n};\n\nexport type PopoverProps = StandalonePopoverProps | WalkthroughPopoverProps;\n\ntype PopoverCmp<P> = React.FunctionComponent<P> & {\n Back: typeof PopoverBack;\n Button: typeof PopoverButton;\n Content: typeof PopoverContent;\n Flow: typeof PopoverFlow;\n Footer: typeof PopoverFooter;\n Next: typeof PopoverNext;\n Trigger: typeof PopoverTrigger;\n};\n\nexport const Popover: PopoverCmp<PopoverProps> = (props) => {\n const { multistep = false, disableClickOutside, ...restProps } = props;\n\n if (multistep) {\n return (\n <PopoverWalkthrough\n {...(restProps as WalkthroughPopoverProps)}\n disableClickOutside={disableClickOutside ?? true}\n />\n );\n }\n\n return (\n <PopoverStandalone\n {...(restProps as StandalonePopoverProps)}\n disableClickOutside={disableClickOutside}\n />\n );\n};\n\nPopover.Back = PopoverBack;\nPopover.Button = PopoverButton;\nPopover.Content = PopoverContent;\nPopover.Flow = PopoverFlow;\nPopover.Footer = PopoverFooter;\nPopover.Next = PopoverNext;\nPopover.Trigger = PopoverTrigger;\n\nPopover.displayName = \"Popover\";\n"],"names":["PopoverFlowContext","createContext","usePopoverFlow","context","useContext","useOptionalPopoverFlow","PopoverFlow","children","initialStep","onComplete","onDismiss","separatorText","stepText","backLabel","nextLabel","finishLabel","openDelay","currentStep","setCurrentStep","useState","registeredSteps","setRegisteredSteps","registerStep","useCallback","step","prev","next","unregisterStep","nextStep","back","dismiss","value","useMemo","jsx","PopoverInternalContext","usePopoverInternal","PopoverNegativeContext","usePopoverNegative","DEBOUNCE_DELAY","SCREEN_MEDIA_QUERY","purpurBreakpointMd","useScreenSize","maxMediumScreen","updateSize","setIsMdOrSmaller","isMdOrSmaller","handleResize","timeoutId","useEffect","PopoverBack","onClick","isNegative","Button","NAME","Arrow","React","props","forwardedRef","width","height","arrowProps","Primitive","Root","POPPER_NAME","createPopperContext","createPopperScope","createContextScope","PopperProvider","usePopperContext","Popper","__scopePopper","anchor","setAnchor","ANCHOR_NAME","PopperAnchor","virtualRef","anchorProps","ref","composedRefs","useComposedRefs","anchorRef","previousAnchor","CONTENT_NAME","PopperContentProvider","useContentContext","PopperContent","side","sideOffset","align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPaddingProp","sticky","hideWhenDetached","updatePositionStrategy","onPlaced","contentProps","content","setContent","node","arrow","setArrow","arrowSize","useSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","boundary","hasExplicitBoundaries","detectOverflowOptions","isNotNull","refs","floatingStyles","placement","isPositioned","middlewareData","useFloating","args","autoUpdate","offset","shift","limitShift","flip","size","elements","rects","availableWidth","availableHeight","anchorWidth","anchorHeight","contentStyle","floatingUIarrow","transformOrigin","hide","placedSide","placedAlign","getSideAndAlignFromPlacement","handlePlaced","useCallbackRef","useLayoutEffect","arrowX","arrowY","cannotCenterArrow","contentZIndex","setContentZIndex","ARROW_NAME","OPPOSITE_SIDE","PopperArrow","contentContext","baseSide","ArrowPrimitive.Root","options","data","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","x","y","Root2","Anchor","Content","POPOVER_NAME","createPopoverContext","usePopperScope","PopoverProvider","usePopoverContext","Popover","__scopePopover","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","hasCustomAnchor","setHasCustomAnchor","open","setOpen","useControllableState","PopperPrimitive.Root","useId","prevOpen","PopoverAnchor","onCustomAnchorAdd","onCustomAnchorRemove","PopperPrimitive.Anchor","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","trigger","getState","composeEventHandlers","PORTAL_NAME","PortalProvider","usePortalContext","PopoverPortal","forceMount","container","Presence","PortalPrimitive","PopoverContent","portalContext","PopoverContentModal","PopoverContentNonModal","Slot","createSlot","contentRef","isRightClickOutsideRef","hideOthers","RemoveScroll","PopoverContentImpl","event","originalEvent","ctrlLeftClick","isRightClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","target","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","useFocusGuards","FocusScope","DismissableLayer","PopperPrimitive.Content","CLOSE_NAME","PopoverClose","closeProps","PopoverArrow","PopperPrimitive.Arrow","Trigger","Portal","Content2","Close","Arrow2","PopoverButton","asChild","variant","fullWidth","flow","RadixPopover.Close","cx","c","styles","PopoverSteps","totalSteps","Fragment","jsxs","Paragraph","PopoverFooter","className","internal","showSteps","PopoverHeader","forwardRef","title","icon","Heading","PopoverNext","beakPosition","negative","closeIconAriaLabel","body","onAction","zIndex","headerRef","useRef","isFlowDismissRef","themePortalContainer","useThemePortalContainer","portalContainer","radixSide","shouldShowArrow","getFocusableElements","element","focusOutsidePopover","contentElement","activeElement","direction","allFocusableElements","activeIndex","currentIndex","candidate","footerContent","isFirstStep","isLastStep","handleOpenAutoFocus","headingElement","handleKeyDown","focusableElements","firstFocusable","lastFocusable","isOnFirstFocusable","isOnLastFocusable","isOnNonTabbableContext","handleCloseAutoFocus","handleClose","handleEscapeKey","handleInteractOutside","RadixPopover.Portal","RadixPopover.Content","IconClose","RadixPopover.Arrow","PopoverStandalone","controlledOpen","disableClickOutside","internalOpen","setInternalOpen","isControlled","isOpen","RadixPopover.Root","newOpen","useSmoothScroll","scrollAnimationId","cancelScroll","duration","prefersReducedMotion","rect","absoluteTop","elementHeight","viewportHeight","targetY","documentHeight","maxScroll","startY","distance","startTime","animateScroll","currentTime","elapsed","progress","easeInOut","currentY","usePopoverTrigger","hasScrolled","scrollToElement","buffer","highlight","RadixPopover.Trigger","usePopoverWalkthrough","actuallyOpen","setActuallyOpen","waitingForScroll","setWaitingForScroll","timeoutRef","openedAtRef","shouldBeOpen","onScrollStart","onScrollComplete","delay","handleOpenChange","consumerOnOpenChange","PopoverWalkthrough","multistep","restProps"],"mappings":"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","x_google_ignoreList":[4,5,6]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promotion-card-C1UoxzcV.js","sources":["../../../components/promotion-card/src/promotion-card.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode } from \"react\";\nimport { Badge } from \"@purpur/badge\";\nimport { Card } from \"@purpur/card\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Heading, type HeadingTagType, type HeadingVariant } from \"@purpur/heading\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { type ColorScheme, useTheme } from \"@purpur/theme\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./promotion-card.module.scss\";\n\nexport const promotionCardVariants = [\"primary\", \"secondary\", \"quaternary\"] as const;\n\nexport type PromotionCardVariant = (typeof promotionCardVariants)[number];\n\ntype StyleRecord = Record<PromotionCardVariant, string>;\n\nconst backgrounds: StyleRecord = {\n primary: \"var(--purpur-color-background-tone-on-tone-primary)\",\n secondary: \"var(--purpur-color-background-tone-on-tone-secondary)\",\n quaternary: \"var(--purpur-color-background-tone-on-tone-quaternary)\",\n} as const;\n\nconst backgroundImages: StyleRecord = {\n primary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_20_36)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_20_36)\"/><g filter=\"url(%23filter0_d_20_36)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5809 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter1_d_20_36)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.28 777.344 91.9004 426.514 82.0318 305.42C61.3463 51.5961 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint1_linear_20_36)\"/></g><path d=\"M478.351 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.396 755.297 91.9029 403.076 82.1476 283.373C61.4621 29.5494 246.485 -143.253 478.351 -359.804Z\" fill=\"url(%23paint2_linear_20_36)\" stroke=\"url(%23paint3_linear_20_36)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_20_36)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.2 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.809 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter3_d_20_36)\"><path d=\"M892.877 -81.1463L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.678 720.879 569.59 601.597C521.196 351.573 686.155 159.524 892.877 -81.1463Z\" fill=\"url(%23paint4_linear_20_36)\"/></g><path d=\"M899.248 -92.3297L901.24 -94.6491C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.341 899.248 -92.3297Z\" fill=\"url(%23paint5_linear_20_36)\" stroke=\"url(%23paint6_linear_20_36)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_20_36\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><filter id=\"filter1_d_20_36\" x=\"-69.5491\" y=\"-947.891\" width=\"2562.05\" height=\"2731.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"75\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.6 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><filter id=\"filter2_d_20_36\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><filter id=\"filter3_d_20_36\" x=\"361.088\" y=\"-864.621\" width=\"2720.09\" height=\"2804.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset/><feGaussianBlur stdDeviation=\"100\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.65 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_20_36\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23340249\"/><stop offset=\"0.576094\" stop-color=\"%23300244\"/><stop offset=\"1\" stop-color=\"%232D0241\"/></linearGradient><linearGradient id=\"paint1_linear_20_36\" x1=\"80.5668\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%2359006E\"/><stop offset=\"0.265\" stop-color=\"%2347005E\"/><stop offset=\"0.385\" stop-color=\"%2339004E\"/><stop offset=\"0.720829\" stop-color=\"%23210034\"/><stop offset=\"1\" stop-color=\"%23150026\"/></linearGradient><linearGradient id=\"paint2_linear_20_36\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.488\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%2335004A\"/><stop offset=\"0.19574\" stop-color=\"%23320046\"/><stop offset=\"1\" stop-color=\"%2328003B\"/></linearGradient><linearGradient id=\"paint3_linear_20_36\" x1=\"133.5\" y1=\"60.5\" x2=\"546\" y2=\"1048\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23AC3CAF\"/><stop offset=\"0.506509\" stop-color=\"%234A006B\"/><stop offset=\"1\" stop-color=\"%232B003F\"/></linearGradient><linearGradient id=\"paint4_linear_20_36\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%234F0065\"/><stop offset=\"0.340552\" stop-color=\"%2339004E\"/><stop offset=\"0.616738\" stop-color=\"%23230036\"/><stop offset=\"1\" stop-color=\"%23150026\"/></linearGradient><linearGradient id=\"paint5_linear_20_36\" x1=\"781.494\" y1=\"72.6501\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232F0044\"/><stop offset=\"0.51248\" stop-color=\"%2328003B\"/><stop offset=\"1\" stop-color=\"%23240037\"/></linearGradient><linearGradient id=\"paint6_linear_20_36\" x1=\"820.5\" y1=\"32.5001\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%238A1994\"/><stop offset=\"0.425\" stop-color=\"%237A1387\"/><stop offset=\"1\" stop-color=\"%2327003A\"/></linearGradient><clipPath id=\"clip0_20_36\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n secondary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_13_40)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_13_40)\"/><rect x=\"-226.435\" y=\"213.022\" width=\"435.932\" height=\"216.966\" transform=\"rotate(-66.9915 -226.435 213.022)\" fill=\"url(%23paint1_linear_13_40)\"/><g filter=\"url(%23filter0_d_13_40)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5809 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter1_d_13_40)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.279 777.344 91.9002 426.514 82.0316 305.42C61.346 51.5961 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint2_linear_13_40)\"/></g><path d=\"M478.35 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.395 755.297 91.9025 403.076 82.1473 283.373C61.4618 29.5494 246.484 -143.253 478.35 -359.804Z\" fill=\"url(%23paint3_linear_13_40)\" stroke=\"url(%23paint4_linear_13_40)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_13_40)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.2 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.809 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter3_d_13_40)\"><path d=\"M892.877 -81.1463L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.678 720.879 569.59 601.597C521.196 351.573 686.155 159.524 892.877 -81.1463Z\" fill=\"url(%23paint5_linear_13_40)\"/></g><path d=\"M899.248 -92.3297L901.24 -94.6491C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.341 899.248 -92.3297Z\" fill=\"url(%23paint6_linear_13_40)\" stroke=\"url(%23paint7_linear_13_40)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_13_40\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.605849 0 0 0 0 0.52 0 0 0 0 0.65 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><filter id=\"filter1_d_13_40\" x=\"20.4507\" y=\"-841.891\" width=\"2382.05\" height=\"2551.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"32\"/><feGaussianBlur stdDeviation=\"30\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.628679 0 0 0 0 0.49 0 0 0 0 0.7 0 0 0 0.5 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><filter id=\"filter2_d_13_40\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.594811 0 0 0 0 0.4875 0 0 0 0 0.65 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><filter id=\"filter3_d_13_40\" x=\"381.088\" y=\"-820.621\" width=\"2680.09\" height=\"2764.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"24\"/><feGaussianBlur stdDeviation=\"90\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.61425 0 0 0 0 0.455 0 0 0 0 0.7 0 0 0 0.62 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_13_40\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F6E6FF\"/><stop offset=\"0.465\" stop-color=\"%23F5E2FF\"/><stop offset=\"1\" stop-color=\"%23F2DCFE\"/></linearGradient><linearGradient id=\"paint1_linear_13_40\" x1=\"-8.46836\" y1=\"213.022\" x2=\"-8.46836\" y2=\"429.988\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"%23FFFEFD\"/><stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\"/></linearGradient><linearGradient id=\"paint2_linear_13_40\" x1=\"80.5666\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.265\" stop-color=\"white\"/><stop offset=\"0.385\" stop-color=\"%23F7EAFF\"/><stop offset=\"0.720829\" stop-color=\"%23D3BCDF\"/><stop offset=\"1\" stop-color=\"%23AA91B7\"/></linearGradient><linearGradient id=\"paint3_linear_13_40\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.487\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F7E9FF\"/><stop offset=\"0.19574\" stop-color=\"%23F6E7FF\"/><stop offset=\"1\" stop-color=\"%23EBD5F6\"/></linearGradient><linearGradient id=\"paint4_linear_13_40\" x1=\"163.5\" y1=\"527.148\" x2=\"390.5\" y2=\"902.648\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23F1DBFC\"/></linearGradient><linearGradient id=\"paint5_linear_13_40\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.340552\" stop-color=\"%23F7E9FF\"/><stop offset=\"0.616738\" stop-color=\"%23E1CBED\"/><stop offset=\"1\" stop-color=\"%23AB92B8\"/></linearGradient><linearGradient id=\"paint6_linear_13_40\" x1=\"781.494\" y1=\"72.6501\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F5E3FF\"/><stop offset=\"0.51248\" stop-color=\"%23EBD5F7\"/><stop offset=\"1\" stop-color=\"%23E0C9EB\"/></linearGradient><linearGradient id=\"paint7_linear_13_40\" x1=\"580.804\" y1=\"451.174\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23E5DBD5\"/></linearGradient><clipPath id=\"clip0_13_40\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n quaternary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_16_50)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_16_50)\"/><rect x=\"-145.375\" y=\"247.444\" width=\"435.932\" height=\"128.9\" transform=\"rotate(-66.9915 -145.375 247.444)\" fill=\"url(%23paint1_linear_16_50)\"/><g filter=\"url(%23filter0_d_16_50)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5809 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23EFE5DF\"/></g><g filter=\"url(%23filter1_d_16_50)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.279 777.344 91.9002 426.514 82.0316 305.42C61.346 51.5961 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint2_linear_16_50)\"/></g><path d=\"M478.35 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.395 755.297 91.9025 403.076 82.1473 283.373C61.4618 29.5494 246.484 -143.253 478.35 -359.804Z\" fill=\"url(%23paint3_linear_16_50)\" stroke=\"url(%23paint4_linear_16_50)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_16_50)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.2 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.809 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23EFE5DF\"/></g><g filter=\"url(%23filter3_d_16_50)\"><path d=\"M892.877 -81.1463L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.677 720.879 569.59 601.597C521.196 351.573 686.155 159.524 892.877 -81.1463Z\" fill=\"url(%23paint5_linear_16_50)\"/></g><path d=\"M899.248 -92.3297L901.24 -94.6491C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.341 899.248 -92.3297Z\" fill=\"url(%23paint6_linear_16_50)\" stroke=\"url(%23paint7_linear_16_50)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_16_50\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.9 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><filter id=\"filter1_d_16_50\" x=\"0.450684\" y=\"-861.891\" width=\"2422.05\" height=\"2591.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"32\"/><feGaussianBlur stdDeviation=\"40\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.5 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><filter id=\"filter2_d_16_50\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.9 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><filter id=\"filter3_d_16_50\" x=\"381.088\" y=\"-844.621\" width=\"2680.09\" height=\"2764.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset/><feGaussianBlur stdDeviation=\"90\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.55 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_16_50\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23FDF3EE\"/><stop offset=\"0.625484\" stop-color=\"%23F8EEE8\"/><stop offset=\"1\" stop-color=\"%23F0E5DF\"/><stop offset=\"1\" stop-color=\"%23F0E5E0\"/></linearGradient><linearGradient id=\"paint1_linear_16_50\" x1=\"72.5912\" y1=\"247.444\" x2=\"72.5912\" y2=\"376.344\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23FFFEFD\"/><stop offset=\"0.0001\" stop-color=\"%23FFFEFD\"/><stop offset=\"1\" stop-color=\"%23FFFDFD\" stop-opacity=\"0\"/></linearGradient><linearGradient id=\"paint2_linear_16_50\" x1=\"80.5666\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.265\" stop-color=\"white\"/><stop offset=\"0.385\" stop-color=\"%23F5ECE6\"/><stop offset=\"0.720829\" stop-color=\"%23CFC4BE\"/><stop offset=\"1\" stop-color=\"%23C9BDB6\"/></linearGradient><linearGradient id=\"paint3_linear_16_50\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.487\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23FFFAF8\"/><stop offset=\"0.19574\" stop-color=\"%23FEF5EF\"/><stop offset=\"1\" stop-color=\"%23E8DED8\"/></linearGradient><linearGradient id=\"paint4_linear_16_50\" x1=\"163.5\" y1=\"527.148\" x2=\"390.5\" y2=\"902.648\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23E5DBD5\"/></linearGradient><linearGradient id=\"paint5_linear_16_50\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.340552\" stop-color=\"%23FCF2EC\"/><stop offset=\"0.616738\" stop-color=\"%23D8CEC8\"/><stop offset=\"1\" stop-color=\"%23ACA19C\"/></linearGradient><linearGradient id=\"paint6_linear_16_50\" x1=\"781.494\" y1=\"72.6501\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F8EEE8\"/><stop offset=\"0.51248\" stop-color=\"%23E8DED8\"/><stop offset=\"1\" stop-color=\"%23DDD3CE\"/></linearGradient><linearGradient id=\"paint7_linear_16_50\" x1=\"580.804\" y1=\"451.174\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23E5DBD5\"/></linearGradient><clipPath id=\"clip0_16_50\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n} as const;\n\nconst backgroundImagesDark: StyleRecord = {\n primary: backgroundImages.secondary,\n secondary: backgroundImages.primary,\n quaternary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_24984_14652)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_24984_14652)\"/><g filter=\"url(%23filter0_d_24984_14652)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5808 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23FFF0E5\"/></g><g filter=\"url(%23filter1_d_24984_14652)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.28 777.344 91.9004 426.514 82.0318 305.42C61.3462 51.596 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint1_linear_24984_14652)\"/></g><path d=\"M478.351 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.396 755.297 91.9029 403.076 82.1476 283.373C61.4621 29.5494 246.485 -143.253 478.351 -359.804Z\" fill=\"url(%23paint2_linear_24984_14652)\" stroke=\"url(%23paint3_linear_24984_14652)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_24984_14652)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.19 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.808 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23FFF0E5\"/></g><g filter=\"url(%23filter3_d_24984_14652)\"><path d=\"M892.877 -81.1462L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.677 720.879 569.59 601.598C521.196 351.573 686.155 159.524 892.877 -81.1462Z\" fill=\"url(%23paint4_linear_24984_14652)\"/></g><path d=\"M899.248 -92.33L901.24 -94.6492C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.34 899.248 -92.33Z\" fill=\"url(%23paint5_linear_24984_14652)\" stroke=\"url(%23paint6_linear_24984_14652)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_24984_14652\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><filter id=\"filter1_d_24984_14652\" x=\"-69.5491\" y=\"-947.891\" width=\"2562.05\" height=\"2731.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"75\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.6 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><filter id=\"filter2_d_24984_14652\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><filter id=\"filter3_d_24984_14652\" x=\"361.088\" y=\"-864.621\" width=\"2720.09\" height=\"2804.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset/><feGaussianBlur stdDeviation=\"100\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.65 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_24984_14652\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232C2520\"/><stop offset=\"0.576094\" stop-color=\"%2329221D\"/><stop offset=\"1\" stop-color=\"%2327211C\"/></linearGradient><linearGradient id=\"paint1_linear_24984_14652\" x1=\"80.5668\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%2340362E\"/><stop offset=\"0.265\" stop-color=\"%23372E27\"/><stop offset=\"0.385\" stop-color=\"%232D2621\"/><stop offset=\"0.720829\" stop-color=\"%231E1916\"/><stop offset=\"1\" stop-color=\"%23161310\"/></linearGradient><linearGradient id=\"paint2_linear_24984_14652\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.488\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232F2822\"/><stop offset=\"0.19574\" stop-color=\"%232C2520\"/><stop offset=\"1\" stop-color=\"%23221D19\"/></linearGradient><linearGradient id=\"paint3_linear_24984_14652\" x1=\"133.5\" y1=\"60.5\" x2=\"546\" y2=\"1048\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23887363\"/><stop offset=\"0.506509\" stop-color=\"%233E342D\"/><stop offset=\"1\" stop-color=\"%23251F1A\"/></linearGradient><linearGradient id=\"paint4_linear_24984_14652\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%233B312A\"/><stop offset=\"0.340552\" stop-color=\"%232D2621\"/><stop offset=\"0.616738\" stop-color=\"%231F1A17\"/><stop offset=\"1\" stop-color=\"%23161310\"/></linearGradient><linearGradient id=\"paint5_linear_24984_14652\" x1=\"781.493\" y1=\"72.65\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232F2822\"/><stop offset=\"0.51248\" stop-color=\"%2326201C\"/><stop offset=\"1\" stop-color=\"%23201B17\"/></linearGradient><linearGradient id=\"paint6_linear_24984_14652\" x1=\"820.5\" y1=\"32.5\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23645549\"/><stop offset=\"0.425\" stop-color=\"%23594B41\"/><stop offset=\"1\" stop-color=\"%23221C18\"/></linearGradient><clipPath id=\"clip0_24984_14652\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n} as const;\n\nconst colors: StyleRecord = {\n primary: \"var(--purpur-color-text-tone-on-tone-primary)\",\n secondary: \"var(--purpur-color-text-tone-on-tone-secondary)\",\n quaternary: \"var(--purpur-color-text-tone-on-tone-tertiary)\",\n} as const;\n\nexport type PromotionCardDecorativeImage = { decorativeImage?: ReactNode };\nexport type PromotionCardProductImage = { productImage?: ReactNode };\n\nexport type PromotionCardProps = Omit<BaseProps, \"children\"> & {\n variant?: PromotionCardVariant;\n beforeTitle?: ReactNode;\n title: string;\n titleTag?: HeadingTagType;\n titleVariant?: HeadingVariant;\n enableTitleHyphenation?: boolean;\n /**\n * @deprecated Use beforeTitle instead\n */\n badgeText?: string;\n /**\n * @deprecated Use beforeTitle instead\n */\n badgeIcon?: ReactNode;\n actions?: ReactNode;\n children: ReactNode;\n mediaPosition?: \"left\" | \"right\";\n alignment?: \"space-between\" | \"flex-end\";\n additionalText?: ReactNode;\n forceColorScheme?: ColorScheme;\n /**\n * @deprecated Gradient has been removed from both design and implementation. This prop will be removed in the next major release.\n */\n hasGradient?: boolean;\n} & (PromotionCardDecorativeImage | PromotionCardProductImage);\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-promotion-card\";\n\nexport const PromotionCard = forwardRef<HTMLDivElement, PromotionCardProps>(\n (\n {\n [\"data-testid\"]: dataTestid,\n variant = \"primary\",\n badgeText,\n badgeIcon,\n beforeTitle,\n title,\n mediaPosition = \"right\",\n titleTag = \"h2\",\n titleVariant = \"display-15\",\n enableTitleHyphenation = false,\n className,\n actions,\n children,\n style,\n alignment = \"space-between\",\n additionalText,\n forceColorScheme,\n ...props\n },\n ref\n ) => {\n const { options, currentColorScheme } = useTheme();\n\n const resolvedColorScheme = forceColorScheme ?? options?.promotionCardColorScheme;\n\n let rest = props;\n let image;\n\n if (\"decorativeImage\" in props) {\n const { decorativeImage, ...spread } = props;\n image = decorativeImage;\n rest = spread;\n } else if (\"productImage\" in props) {\n const { productImage, ...spread } = props;\n image = productImage;\n rest = spread;\n }\n\n const effectiveColorScheme = resolvedColorScheme ?? currentColorScheme;\n\n const customProperties = {\n \"--promotion-card-background\": backgrounds[variant],\n \"--promotion-card-color\": colors[variant],\n \"--promotion-card-background-image\": image\n ? \"none\"\n : effectiveColorScheme === \"dark\"\n ? backgroundImagesDark[variant]\n : backgroundImages[variant],\n } as React.CSSProperties;\n\n return (\n <Card\n data-color-scheme={resolvedColorScheme}\n data-testid={dataTestid}\n ref={ref}\n fullHeight\n className={cx(className, rootClassName, `${rootClassName}--${variant}`)}\n style={{\n ...customProperties,\n ...style,\n }}\n {...rest}\n >\n <div\n className={cx(`${rootClassName}__inner`, {\n [`${rootClassName}__inner--with-image`]: image,\n [`${rootClassName}__inner--without-image`]: !image,\n [`${rootClassName}__inner--media-position-left`]: image && mediaPosition === \"left\",\n })}\n >\n <div\n className={cx(`${rootClassName}__content`, {\n [`${rootClassName}__content--with-image`]: image,\n [`${rootClassName}__content--without-image`]: !image,\n })}\n >\n {badgeText && (\n <div data-testid=\"badgeWrapper\" className={cx(`${rootClassName}__badge-wrapper`)}>\n <Badge variant={variant === \"primary\" ? \"special\" : \"attention\"} showIcon={false}>\n {badgeIcon && badgeIcon}\n {badgeText}\n </Badge>\n </div>\n )}\n\n <div\n className={cx(\n `${rootClassName}__main-content`,\n `${rootClassName}__main-content--${alignment}`\n )}\n >\n {beforeTitle}\n <Heading\n tag={titleTag}\n variant={titleVariant}\n enableHyphenation={enableTitleHyphenation}\n className={cx(`${rootClassName}__heading`)}\n >\n {title}\n </Heading>\n <div className={cx(`${rootClassName}__body`)}>\n <div className={cx(`${rootClassName}__child-content`)}>{children}</div>\n {actions && <div className={cx(`${rootClassName}__actions`)}>{actions}</div>}\n {additionalText && (\n <Paragraph\n negative\n variant=\"additional-100\"\n className={cx(`${rootClassName}__additional-text`)}\n >\n {additionalText}\n </Paragraph>\n )}\n </div>\n </div>\n </div>\n\n {image && (\n <div\n className={cx(`${rootClassName}__image-wrapper`, {\n [`${rootClassName}__image-wrapper--product`]: \"productImage\" in props,\n [`${rootClassName}__image-wrapper--decorative`]: \"decorativeImage\" in props,\n })}\n >\n {image}\n </div>\n )}\n </div>\n </Card>\n );\n }\n);\n\nPromotionCard.displayName = \"PromotionCard\";\n"],"names":["promotionCardVariants","backgrounds","backgroundImages","backgroundImagesDark","colors","cx","c","styles","rootClassName","PromotionCard","forwardRef","dataTestid","variant","badgeText","badgeIcon","beforeTitle","title","mediaPosition","titleTag","titleVariant","enableTitleHyphenation","className","actions","children","style","alignment","additionalText","forceColorScheme","props","ref","options","currentColorScheme","useTheme","resolvedColorScheme","rest","image","decorativeImage","spread","productImage","effectiveColorScheme","customProperties","jsx","Card","jsxs","Badge","Heading","Paragraph"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promotion-card-CooYPpFo.mjs","sources":["../../../components/promotion-card/src/promotion-card.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode } from \"react\";\nimport { Badge } from \"@purpur/badge\";\nimport { Card } from \"@purpur/card\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Heading, type HeadingTagType, type HeadingVariant } from \"@purpur/heading\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { type ColorScheme, useTheme } from \"@purpur/theme\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./promotion-card.module.scss\";\n\nexport const promotionCardVariants = [\"primary\", \"secondary\", \"quaternary\"] as const;\n\nexport type PromotionCardVariant = (typeof promotionCardVariants)[number];\n\ntype StyleRecord = Record<PromotionCardVariant, string>;\n\nconst backgrounds: StyleRecord = {\n primary: \"var(--purpur-color-background-tone-on-tone-primary)\",\n secondary: \"var(--purpur-color-background-tone-on-tone-secondary)\",\n quaternary: \"var(--purpur-color-background-tone-on-tone-quaternary)\",\n} as const;\n\nconst backgroundImages: StyleRecord = {\n primary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_20_36)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_20_36)\"/><g filter=\"url(%23filter0_d_20_36)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5809 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter1_d_20_36)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.28 777.344 91.9004 426.514 82.0318 305.42C61.3463 51.5961 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint1_linear_20_36)\"/></g><path d=\"M478.351 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.396 755.297 91.9029 403.076 82.1476 283.373C61.4621 29.5494 246.485 -143.253 478.351 -359.804Z\" fill=\"url(%23paint2_linear_20_36)\" stroke=\"url(%23paint3_linear_20_36)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_20_36)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.2 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.809 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter3_d_20_36)\"><path d=\"M892.877 -81.1463L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.678 720.879 569.59 601.597C521.196 351.573 686.155 159.524 892.877 -81.1463Z\" fill=\"url(%23paint4_linear_20_36)\"/></g><path d=\"M899.248 -92.3297L901.24 -94.6491C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.341 899.248 -92.3297Z\" fill=\"url(%23paint5_linear_20_36)\" stroke=\"url(%23paint6_linear_20_36)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_20_36\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><filter id=\"filter1_d_20_36\" x=\"-69.5491\" y=\"-947.891\" width=\"2562.05\" height=\"2731.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"75\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.6 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><filter id=\"filter2_d_20_36\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><filter id=\"filter3_d_20_36\" x=\"361.088\" y=\"-864.621\" width=\"2720.09\" height=\"2804.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset/><feGaussianBlur stdDeviation=\"100\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0588235 0 0 0 0 0 0 0 0 0 0.129412 0 0 0 0.65 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_20_36\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_20_36\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_20_36\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23340249\"/><stop offset=\"0.576094\" stop-color=\"%23300244\"/><stop offset=\"1\" stop-color=\"%232D0241\"/></linearGradient><linearGradient id=\"paint1_linear_20_36\" x1=\"80.5668\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%2359006E\"/><stop offset=\"0.265\" stop-color=\"%2347005E\"/><stop offset=\"0.385\" stop-color=\"%2339004E\"/><stop offset=\"0.720829\" stop-color=\"%23210034\"/><stop offset=\"1\" stop-color=\"%23150026\"/></linearGradient><linearGradient id=\"paint2_linear_20_36\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.488\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%2335004A\"/><stop offset=\"0.19574\" stop-color=\"%23320046\"/><stop offset=\"1\" stop-color=\"%2328003B\"/></linearGradient><linearGradient id=\"paint3_linear_20_36\" x1=\"133.5\" y1=\"60.5\" x2=\"546\" y2=\"1048\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23AC3CAF\"/><stop offset=\"0.506509\" stop-color=\"%234A006B\"/><stop offset=\"1\" stop-color=\"%232B003F\"/></linearGradient><linearGradient id=\"paint4_linear_20_36\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%234F0065\"/><stop offset=\"0.340552\" stop-color=\"%2339004E\"/><stop offset=\"0.616738\" stop-color=\"%23230036\"/><stop offset=\"1\" stop-color=\"%23150026\"/></linearGradient><linearGradient id=\"paint5_linear_20_36\" x1=\"781.494\" y1=\"72.6501\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232F0044\"/><stop offset=\"0.51248\" stop-color=\"%2328003B\"/><stop offset=\"1\" stop-color=\"%23240037\"/></linearGradient><linearGradient id=\"paint6_linear_20_36\" x1=\"820.5\" y1=\"32.5001\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%238A1994\"/><stop offset=\"0.425\" stop-color=\"%237A1387\"/><stop offset=\"1\" stop-color=\"%2327003A\"/></linearGradient><clipPath id=\"clip0_20_36\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n secondary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_13_40)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_13_40)\"/><rect x=\"-226.435\" y=\"213.022\" width=\"435.932\" height=\"216.966\" transform=\"rotate(-66.9915 -226.435 213.022)\" fill=\"url(%23paint1_linear_13_40)\"/><g filter=\"url(%23filter0_d_13_40)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5809 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter1_d_13_40)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.279 777.344 91.9002 426.514 82.0316 305.42C61.346 51.5961 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint2_linear_13_40)\"/></g><path d=\"M478.35 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.395 755.297 91.9025 403.076 82.1473 283.373C61.4618 29.5494 246.484 -143.253 478.35 -359.804Z\" fill=\"url(%23paint3_linear_13_40)\" stroke=\"url(%23paint4_linear_13_40)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_13_40)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.2 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.809 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23F5E5FF\"/></g><g filter=\"url(%23filter3_d_13_40)\"><path d=\"M892.877 -81.1463L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.678 720.879 569.59 601.597C521.196 351.573 686.155 159.524 892.877 -81.1463Z\" fill=\"url(%23paint5_linear_13_40)\"/></g><path d=\"M899.248 -92.3297L901.24 -94.6491C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.341 899.248 -92.3297Z\" fill=\"url(%23paint6_linear_13_40)\" stroke=\"url(%23paint7_linear_13_40)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_13_40\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.605849 0 0 0 0 0.52 0 0 0 0 0.65 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><filter id=\"filter1_d_13_40\" x=\"20.4507\" y=\"-841.891\" width=\"2382.05\" height=\"2551.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"32\"/><feGaussianBlur stdDeviation=\"30\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.628679 0 0 0 0 0.49 0 0 0 0 0.7 0 0 0 0.5 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><filter id=\"filter2_d_13_40\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.594811 0 0 0 0 0.4875 0 0 0 0 0.65 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><filter id=\"filter3_d_13_40\" x=\"381.088\" y=\"-820.621\" width=\"2680.09\" height=\"2764.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"24\"/><feGaussianBlur stdDeviation=\"90\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.61425 0 0 0 0 0.455 0 0 0 0 0.7 0 0 0 0.62 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_13_40\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_13_40\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_13_40\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F6E6FF\"/><stop offset=\"0.465\" stop-color=\"%23F5E2FF\"/><stop offset=\"1\" stop-color=\"%23F2DCFE\"/></linearGradient><linearGradient id=\"paint1_linear_13_40\" x1=\"-8.46836\" y1=\"213.022\" x2=\"-8.46836\" y2=\"429.988\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"%23FFFEFD\"/><stop offset=\"1\" stop-color=\"white\" stop-opacity=\"0\"/></linearGradient><linearGradient id=\"paint2_linear_13_40\" x1=\"80.5666\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.265\" stop-color=\"white\"/><stop offset=\"0.385\" stop-color=\"%23F7EAFF\"/><stop offset=\"0.720829\" stop-color=\"%23D3BCDF\"/><stop offset=\"1\" stop-color=\"%23AA91B7\"/></linearGradient><linearGradient id=\"paint3_linear_13_40\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.487\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F7E9FF\"/><stop offset=\"0.19574\" stop-color=\"%23F6E7FF\"/><stop offset=\"1\" stop-color=\"%23EBD5F6\"/></linearGradient><linearGradient id=\"paint4_linear_13_40\" x1=\"163.5\" y1=\"527.148\" x2=\"390.5\" y2=\"902.648\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23F1DBFC\"/></linearGradient><linearGradient id=\"paint5_linear_13_40\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.340552\" stop-color=\"%23F7E9FF\"/><stop offset=\"0.616738\" stop-color=\"%23E1CBED\"/><stop offset=\"1\" stop-color=\"%23AB92B8\"/></linearGradient><linearGradient id=\"paint6_linear_13_40\" x1=\"781.494\" y1=\"72.6501\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F5E3FF\"/><stop offset=\"0.51248\" stop-color=\"%23EBD5F7\"/><stop offset=\"1\" stop-color=\"%23E0C9EB\"/></linearGradient><linearGradient id=\"paint7_linear_13_40\" x1=\"580.804\" y1=\"451.174\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23E5DBD5\"/></linearGradient><clipPath id=\"clip0_13_40\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n quaternary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_16_50)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_16_50)\"/><rect x=\"-145.375\" y=\"247.444\" width=\"435.932\" height=\"128.9\" transform=\"rotate(-66.9915 -145.375 247.444)\" fill=\"url(%23paint1_linear_16_50)\"/><g filter=\"url(%23filter0_d_16_50)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5809 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23EFE5DF\"/></g><g filter=\"url(%23filter1_d_16_50)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.279 777.344 91.9002 426.514 82.0316 305.42C61.346 51.5961 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint2_linear_16_50)\"/></g><path d=\"M478.35 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.395 755.297 91.9025 403.076 82.1473 283.373C61.4618 29.5494 246.484 -143.253 478.35 -359.804Z\" fill=\"url(%23paint3_linear_16_50)\" stroke=\"url(%23paint4_linear_16_50)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_16_50)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.2 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.809 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23EFE5DF\"/></g><g filter=\"url(%23filter3_d_16_50)\"><path d=\"M892.877 -81.1463L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.677 720.879 569.59 601.597C521.196 351.573 686.155 159.524 892.877 -81.1463Z\" fill=\"url(%23paint5_linear_16_50)\"/></g><path d=\"M899.248 -92.3297L901.24 -94.6491C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.341 899.248 -92.3297Z\" fill=\"url(%23paint6_linear_16_50)\" stroke=\"url(%23paint7_linear_16_50)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_16_50\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.9 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><filter id=\"filter1_d_16_50\" x=\"0.450684\" y=\"-861.891\" width=\"2422.05\" height=\"2591.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"32\"/><feGaussianBlur stdDeviation=\"40\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.5 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><filter id=\"filter2_d_16_50\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.9 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><filter id=\"filter3_d_16_50\" x=\"381.088\" y=\"-844.621\" width=\"2680.09\" height=\"2764.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset/><feGaussianBlur stdDeviation=\"90\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.607843 0 0 0 0 0.568627 0 0 0 0 0.545098 0 0 0 0.55 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_16_50\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_16_50\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_16_50\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23FDF3EE\"/><stop offset=\"0.625484\" stop-color=\"%23F8EEE8\"/><stop offset=\"1\" stop-color=\"%23F0E5DF\"/><stop offset=\"1\" stop-color=\"%23F0E5E0\"/></linearGradient><linearGradient id=\"paint1_linear_16_50\" x1=\"72.5912\" y1=\"247.444\" x2=\"72.5912\" y2=\"376.344\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23FFFEFD\"/><stop offset=\"0.0001\" stop-color=\"%23FFFEFD\"/><stop offset=\"1\" stop-color=\"%23FFFDFD\" stop-opacity=\"0\"/></linearGradient><linearGradient id=\"paint2_linear_16_50\" x1=\"80.5666\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.265\" stop-color=\"white\"/><stop offset=\"0.385\" stop-color=\"%23F5ECE6\"/><stop offset=\"0.720829\" stop-color=\"%23CFC4BE\"/><stop offset=\"1\" stop-color=\"%23C9BDB6\"/></linearGradient><linearGradient id=\"paint3_linear_16_50\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.487\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23FFFAF8\"/><stop offset=\"0.19574\" stop-color=\"%23FEF5EF\"/><stop offset=\"1\" stop-color=\"%23E8DED8\"/></linearGradient><linearGradient id=\"paint4_linear_16_50\" x1=\"163.5\" y1=\"527.148\" x2=\"390.5\" y2=\"902.648\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23E5DBD5\"/></linearGradient><linearGradient id=\"paint5_linear_16_50\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.340552\" stop-color=\"%23FCF2EC\"/><stop offset=\"0.616738\" stop-color=\"%23D8CEC8\"/><stop offset=\"1\" stop-color=\"%23ACA19C\"/></linearGradient><linearGradient id=\"paint6_linear_16_50\" x1=\"781.494\" y1=\"72.6501\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23F8EEE8\"/><stop offset=\"0.51248\" stop-color=\"%23E8DED8\"/><stop offset=\"1\" stop-color=\"%23DDD3CE\"/></linearGradient><linearGradient id=\"paint7_linear_16_50\" x1=\"580.804\" y1=\"451.174\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"white\"/><stop offset=\"0.0001\" stop-color=\"white\"/><stop offset=\"1\" stop-color=\"%23E5DBD5\"/></linearGradient><clipPath id=\"clip0_16_50\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n} as const;\n\nconst backgroundImagesDark: StyleRecord = {\n primary: backgroundImages.secondary,\n secondary: backgroundImages.primary,\n quaternary: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"2000\" height=\"1125\" viewBox=\"0 0 2000 1125\" fill=\"none\"><g clip-path=\"url(%23clip0_24984_14652)\"><rect width=\"2000\" height=\"1125\" fill=\"url(%23paint0_linear_24984_14652)\"/><g filter=\"url(%23filter0_d_24984_14652)\"><path d=\"M480.784 -336.718L483.018 -338.805C2086.53 -1722.59 2447.86 284.242 2322.13 1089.91C2196.4 1895.57 1114.05 1663.85 598.008 1169.98C188.829 778.383 94.9071 433.168 84.5808 306.459C63.8953 52.6354 248.918 -120.167 480.784 -336.718Z\" fill=\"%23FFF0E5\"/></g><g filter=\"url(%23filter1_d_24984_14652)\"><path d=\"M478.235 -337.757L480.469 -339.844C2083.98 -1723.63 2445.31 283.203 2319.58 1088.87C2193.85 1894.53 1111.5 1662.81 595.459 1168.95C186.28 777.344 91.9004 426.514 82.0318 305.42C61.3462 51.596 246.369 -121.206 478.235 -337.757Z\" fill=\"url(%23paint1_linear_24984_14652)\"/></g><path d=\"M478.351 -359.804L480.585 -361.891C2084.1 -1745.68 2445.43 261.156 2319.7 1066.82C2193.96 1872.48 1111.61 1640.77 595.575 1146.9C186.396 755.297 91.9029 403.076 82.1476 283.373C61.4621 29.5494 246.485 -143.253 478.351 -359.804Z\" fill=\"url(%23paint2_linear_24984_14652)\" stroke=\"url(%23paint3_linear_24984_14652)\" stroke-width=\"0.488281\"/><g filter=\"url(%23filter2_d_24984_14652)\"><path d=\"M895.095 -81.1636L897.087 -83.483C2339.19 -1634.76 2918.4 320.353 2881.77 1134.95C2845.14 1949.54 1743.91 1837.9 1176.83 1403.6C727.176 1059.23 595.967 726.393 571.808 601.58C523.415 351.555 688.373 159.507 895.095 -81.1636Z\" fill=\"%23FFF0E5\"/></g><g filter=\"url(%23filter3_d_24984_14652)\"><path d=\"M892.877 -81.1462L894.869 -83.4656C2336.98 -1634.74 2916.18 320.371 2879.55 1134.96C2842.92 1949.56 1741.69 1837.92 1174.61 1403.62C724.958 1059.24 592.677 720.879 569.59 601.598C521.196 351.573 686.155 159.524 892.877 -81.1462Z\" fill=\"url(%23paint4_linear_24984_14652)\"/></g><path d=\"M899.248 -92.33L901.24 -94.6492C2343.35 -1645.93 2922.56 309.187 2885.93 1123.78C2849.3 1938.37 1748.06 1826.74 1180.98 1392.43C731.329 1048.06 598.784 708.325 575.961 590.414C527.568 340.389 692.526 148.34 899.248 -92.33Z\" fill=\"url(%23paint5_linear_24984_14652)\" stroke=\"url(%23paint6_linear_24984_14652)\" stroke-width=\"0.488281\"/></g><defs><filter id=\"filter0_d_24984_14652\" x=\"67\" y=\"-812.852\" width=\"2294.05\" height=\"2463.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><filter id=\"filter1_d_24984_14652\" x=\"-69.5491\" y=\"-947.891\" width=\"2562.05\" height=\"2731.76\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"75\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.6 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><filter id=\"filter2_d_24984_14652\" x=\"547.307\" y=\"-664.639\" width=\"2352.09\" height=\"2436.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset dy=\"16\"/><feGaussianBlur stdDeviation=\"8\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.95 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><filter id=\"filter3_d_24984_14652\" x=\"361.088\" y=\"-864.621\" width=\"2720.09\" height=\"2804.12\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\"><feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/><feOffset/><feGaussianBlur stdDeviation=\"100\"/><feComposite in2=\"hardAlpha\" operator=\"out\"/><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0750588 0 0 0 0 0.0633255 0 0 0 0 0.0543529 0 0 0 0.65 0\"/><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_24984_14652\"/><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_24984_14652\" result=\"shape\"/></filter><linearGradient id=\"paint0_linear_24984_14652\" x1=\"48.3398\" y1=\"4.80196e-07\" x2=\"58.1053\" y2=\"1125\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232C2520\"/><stop offset=\"0.576094\" stop-color=\"%2329221D\"/><stop offset=\"1\" stop-color=\"%2327211C\"/></linearGradient><linearGradient id=\"paint1_linear_24984_14652\" x1=\"80.5668\" y1=\"233.643\" x2=\"606.544\" y2=\"1094.45\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%2340362E\"/><stop offset=\"0.265\" stop-color=\"%23372E27\"/><stop offset=\"0.385\" stop-color=\"%232D2621\"/><stop offset=\"0.720829\" stop-color=\"%231E1916\"/><stop offset=\"1\" stop-color=\"%23161310\"/></linearGradient><linearGradient id=\"paint2_linear_24984_14652\" x1=\"138.672\" y1=\"41.2598\" x2=\"702.488\" y2=\"1106.9\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232F2822\"/><stop offset=\"0.19574\" stop-color=\"%232C2520\"/><stop offset=\"1\" stop-color=\"%23221D19\"/></linearGradient><linearGradient id=\"paint3_linear_24984_14652\" x1=\"133.5\" y1=\"60.5\" x2=\"546\" y2=\"1048\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23887363\"/><stop offset=\"0.506509\" stop-color=\"%233E342D\"/><stop offset=\"1\" stop-color=\"%23251F1A\"/></linearGradient><linearGradient id=\"paint4_linear_24984_14652\" x1=\"560.263\" y1=\"530.414\" x2=\"910.742\" y2=\"1118.56\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%233B312A\"/><stop offset=\"0.340552\" stop-color=\"%232D2621\"/><stop offset=\"0.616738\" stop-color=\"%231F1A17\"/><stop offset=\"1\" stop-color=\"%23161310\"/></linearGradient><linearGradient id=\"paint5_linear_24984_14652\" x1=\"781.493\" y1=\"72.65\" x2=\"2048.67\" y2=\"1066.94\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%232F2822\"/><stop offset=\"0.51248\" stop-color=\"%2326201C\"/><stop offset=\"1\" stop-color=\"%23201B17\"/></linearGradient><linearGradient id=\"paint6_linear_24984_14652\" x1=\"820.5\" y1=\"32.5\" x2=\"906.975\" y2=\"1110.35\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"%23645549\"/><stop offset=\"0.425\" stop-color=\"%23594B41\"/><stop offset=\"1\" stop-color=\"%23221C18\"/></linearGradient><clipPath id=\"clip0_24984_14652\"><rect width=\"2000\" height=\"1125\" fill=\"white\"/></clipPath></defs></svg>')`,\n} as const;\n\nconst colors: StyleRecord = {\n primary: \"var(--purpur-color-text-tone-on-tone-primary)\",\n secondary: \"var(--purpur-color-text-tone-on-tone-secondary)\",\n quaternary: \"var(--purpur-color-text-tone-on-tone-tertiary)\",\n} as const;\n\nexport type PromotionCardDecorativeImage = { decorativeImage?: ReactNode };\nexport type PromotionCardProductImage = { productImage?: ReactNode };\n\nexport type PromotionCardProps = Omit<BaseProps, \"children\"> & {\n variant?: PromotionCardVariant;\n beforeTitle?: ReactNode;\n title: string;\n titleTag?: HeadingTagType;\n titleVariant?: HeadingVariant;\n enableTitleHyphenation?: boolean;\n /**\n * @deprecated Use beforeTitle instead\n */\n badgeText?: string;\n /**\n * @deprecated Use beforeTitle instead\n */\n badgeIcon?: ReactNode;\n actions?: ReactNode;\n children: ReactNode;\n mediaPosition?: \"left\" | \"right\";\n alignment?: \"space-between\" | \"flex-end\";\n additionalText?: ReactNode;\n forceColorScheme?: ColorScheme;\n /**\n * @deprecated Gradient has been removed from both design and implementation. This prop will be removed in the next major release.\n */\n hasGradient?: boolean;\n} & (PromotionCardDecorativeImage | PromotionCardProductImage);\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-promotion-card\";\n\nexport const PromotionCard = forwardRef<HTMLDivElement, PromotionCardProps>(\n (\n {\n [\"data-testid\"]: dataTestid,\n variant = \"primary\",\n badgeText,\n badgeIcon,\n beforeTitle,\n title,\n mediaPosition = \"right\",\n titleTag = \"h2\",\n titleVariant = \"display-15\",\n enableTitleHyphenation = false,\n className,\n actions,\n children,\n style,\n alignment = \"space-between\",\n additionalText,\n forceColorScheme,\n ...props\n },\n ref\n ) => {\n const { options, currentColorScheme } = useTheme();\n\n const resolvedColorScheme = forceColorScheme ?? options?.promotionCardColorScheme;\n\n let rest = props;\n let image;\n\n if (\"decorativeImage\" in props) {\n const { decorativeImage, ...spread } = props;\n image = decorativeImage;\n rest = spread;\n } else if (\"productImage\" in props) {\n const { productImage, ...spread } = props;\n image = productImage;\n rest = spread;\n }\n\n const effectiveColorScheme = resolvedColorScheme ?? currentColorScheme;\n\n const customProperties = {\n \"--promotion-card-background\": backgrounds[variant],\n \"--promotion-card-color\": colors[variant],\n \"--promotion-card-background-image\": image\n ? \"none\"\n : effectiveColorScheme === \"dark\"\n ? backgroundImagesDark[variant]\n : backgroundImages[variant],\n } as React.CSSProperties;\n\n return (\n <Card\n data-color-scheme={resolvedColorScheme}\n data-testid={dataTestid}\n ref={ref}\n fullHeight\n className={cx(className, rootClassName, `${rootClassName}--${variant}`)}\n style={{\n ...customProperties,\n ...style,\n }}\n {...rest}\n >\n <div\n className={cx(`${rootClassName}__inner`, {\n [`${rootClassName}__inner--with-image`]: image,\n [`${rootClassName}__inner--without-image`]: !image,\n [`${rootClassName}__inner--media-position-left`]: image && mediaPosition === \"left\",\n })}\n >\n <div\n className={cx(`${rootClassName}__content`, {\n [`${rootClassName}__content--with-image`]: image,\n [`${rootClassName}__content--without-image`]: !image,\n })}\n >\n {badgeText && (\n <div data-testid=\"badgeWrapper\" className={cx(`${rootClassName}__badge-wrapper`)}>\n <Badge variant={variant === \"primary\" ? \"special\" : \"attention\"} showIcon={false}>\n {badgeIcon && badgeIcon}\n {badgeText}\n </Badge>\n </div>\n )}\n\n <div\n className={cx(\n `${rootClassName}__main-content`,\n `${rootClassName}__main-content--${alignment}`\n )}\n >\n {beforeTitle}\n <Heading\n tag={titleTag}\n variant={titleVariant}\n enableHyphenation={enableTitleHyphenation}\n className={cx(`${rootClassName}__heading`)}\n >\n {title}\n </Heading>\n <div className={cx(`${rootClassName}__body`)}>\n <div className={cx(`${rootClassName}__child-content`)}>{children}</div>\n {actions && <div className={cx(`${rootClassName}__actions`)}>{actions}</div>}\n {additionalText && (\n <Paragraph\n negative\n variant=\"additional-100\"\n className={cx(`${rootClassName}__additional-text`)}\n >\n {additionalText}\n </Paragraph>\n )}\n </div>\n </div>\n </div>\n\n {image && (\n <div\n className={cx(`${rootClassName}__image-wrapper`, {\n [`${rootClassName}__image-wrapper--product`]: \"productImage\" in props,\n [`${rootClassName}__image-wrapper--decorative`]: \"decorativeImage\" in props,\n })}\n >\n {image}\n </div>\n )}\n </div>\n </Card>\n );\n }\n);\n\nPromotionCard.displayName = \"PromotionCard\";\n"],"names":["promotionCardVariants","backgrounds","backgroundImages","backgroundImagesDark","colors","cx","c","styles","rootClassName","PromotionCard","forwardRef","dataTestid","variant","badgeText","badgeIcon","beforeTitle","title","mediaPosition","titleTag","titleVariant","enableTitleHyphenation","className","actions","children","style","alignment","additionalText","forceColorScheme","props","ref","options","currentColorScheme","useTheme","resolvedColorScheme","rest","image","decorativeImage","spread","productImage","effectiveColorScheme","customProperties","jsx","Card","jsxs","Badge","Heading","Paragraph"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const n=require("react/jsx-runtime"),q=require("react"),U=require("./spinner-tKunS_o-.js"),X=require("./text-field-CS0PT5T6.js"),B=require("./bind-DeUYJ6m9.js"),Z=require("./button-DZgtrGqN.js"),J=require("./minus.es-DtXArdKK.js"),K=require("./icon-DNHpBTHs-faYHqTXU.js"),L={"purpur-quantity-selector":"_purpur-quantity-selector_1hglo_1","purpur-quantity-selector--full-width":"_purpur-quantity-selector--full-width_1hglo_25","purpur-quantity-selector--loading":"_purpur-quantity-selector--loading_1hglo_31","purpur-quantity-selector--no-gap":"_purpur-quantity-selector--no-gap_1hglo_34","purpur-quantity-selector--no-gap-disabled-left":"_purpur-quantity-selector--no-gap-disabled-left_1hglo_39","purpur-quantity-selector--no-gap-disabled-right":"_purpur-quantity-selector--no-gap-disabled-right_1hglo_43","purpur-quantity-selector--no-gap-disabled":"_purpur-quantity-selector--no-gap-disabled_1hglo_39","purpur-quantity-selector__spinner":"_purpur-quantity-selector__spinner_1hglo_50","purpur-quantity-selector__spinner--full-width":"_purpur-quantity-selector__spinner--full-width_1hglo_57","purpur-quantity-selector__spinner--separated":"_purpur-quantity-selector__spinner--separated_1hglo_61"},Y={name:"plus",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M12 4.1a.9.9 0 0 1 .9.9v6.1H19a.9.9 0 1 1 0 1.8h-6.1V19a.9.9 0 0 1-1.8 0v-6.1H5a.9.9 0 0 1 0-1.8h6.1V5a.9.9 0 0 1 .9-.9Z" clip-rule="evenodd"/></svg>',keywords:["plus"],category:"utility"},C=a=>n.jsx(K.b,{...a,svg:Y});C.displayName="IconPlus";const G={"purpur-quantity-selector-button":"_purpur-quantity-selector-button_qjlbs_1","purpur-quantity-selector-button--gap-left":"_purpur-quantity-selector-button--gap-left_qjlbs_4","purpur-quantity-selector-button--gap-right":"_purpur-quantity-selector-button--gap-right_qjlbs_7","purpur-quantity-selector-button--no-gap-right":"_purpur-quantity-selector-button--no-gap-right_qjlbs_10","purpur-quantity-selector-button--no-gap-left":"_purpur-quantity-selector-button--no-gap-left_qjlbs_13"},W=B.c.bind(G),b="purpur-quantity-selector-button",T=({["data-testid"]:a,["aria-label"]:f,disabled:s,hasGap:o,variant:p,buttonType:e,onClick:x})=>{const d=W(b,{[`${b}--gap-left`]:o&&e==="decrement",[`${b}--gap-right`]:o&&e==="increment",[`${b}--no-gap-left`]:!o&&e==="decrement",[`${b}--no-gap-right`]:!o&&e==="increment"});return n.jsx(Z.Button,{"data-testid":a,className:d,size:"sm",type:"submit",variant:p,onClick:()=>x(e),iconOnly:!0,"aria-label":f??"",disabled:s,tabIndex:-1,children:e==="increment"?n.jsx(C,{size:"xs"}):n.jsx(J.e,{size:"xs"})})},V=B.c.bind(L),tt=["attached","separated"],et=["primary","secondary"],r="purpur-quantity-selector",D=q.forwardRef(({["data-testid"]:a,className:f,variant:s,buttonVariant:o,onChange:p,value:e,defaultValue:x,fullWidth:d,disabled:F,loading:$,minValue:R,maxValue:E,ariaLabelDecrement:k,ariaLabelIncrement:z,...H},Q)=>{const[M,w]=q.useState(x??0),[v,j]=q.useState(M),u=e!==void 0,l=u?e:v,S=t=>a?`${a}-${t}`:void 0,i=F||$,y=Math.max(R??0,0),m=E??Number.MAX_SAFE_INTEGER,_=l===m,g=l===y;q.useEffect(()=>{u&&w(e)},[e,u]),q.useEffect(()=>{if(!u){const t=setTimeout(()=>{w(v)},300);return()=>clearTimeout(t)}},[v,u,p]);const O=V(f,r,{[`${r}--no-gap`]:s==="attached"&&!i&&!g&&!_,[`${r}--no-gap-disabled-left`]:s==="attached"&&!i&&!_&&g,[`${r}--no-gap-disabled-right`]:s==="attached"&&!i&&!g&&_,[`${r}--no-gap-disabled`]:s==="attached"&&(i||_&&g),[`${r}--full-width`]:d,[`${r}--loading`]:$}),A=t=>{if(!/^[0-9]*$/.test(t.target.value))return;const h=+t.target.value;h<y||h>m||(u||j(h),p(h))},I=t=>{const c=t==="increment"?l+1:l-1;c<0||(u||j(c),p(c))},N=t=>{const c=t==="increment"&&_||t==="decrement"&&g;return n.jsx(T,{"data-testid":S("button-"+t),variant:o,buttonType:t,hasGap:s==="separated",onClick:I,disabled:i||c,"aria-label":t==="increment"?z:k})},P=n.jsxs(n.Fragment,{children:[$&&n.jsx("div",{className:V(`${r}__spinner`,{[`${r}__spinner--full-width`]:d,[`${r}__spinner--separated`]:!d&&s==="separated"}),children:n.jsx(U.Spinner,{disabled:i,size:"xs","data-testid":S("spinner")},"spinner")}),N("decrement")]});return n.jsx(X.TextField,{value:l,type:"number",ref:Q,className:O,"data-testid":a,onChange:A,beforeField:P,afterField:N("increment"),disabled:i,min:y,max:m,role:"spinbutton","aria-valuenow":l,"aria-valuemax":m,"aria-valuemin":y,...H})});D.displayName="QuantitySelector";exports.QuantitySelector=D;exports.quantitySelectorButtonVariants=et;exports.quantitySelectorVariants=tt;
|
|
2
|
-
//# sourceMappingURL=quantity-selector-Ds7d4MnV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"quantity-selector-Ds7d4MnV.js","sources":["../../../components/icon/dist/components/plus.es.js","../../../components/quantity-selector/src/quantity-selector-button.tsx","../../../components/quantity-selector/src/quantity-selector.tsx"],"sourcesContent":["import { jsx as s } from \"react/jsx-runtime\";\nimport { I as l } from \"../icon-DNHpBTHs.mjs\";\nconst e = {\n name: \"plus\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M12 4.1a.9.9 0 0 1 .9.9v6.1H19a.9.9 0 1 1 0 1.8h-6.1V19a.9.9 0 0 1-1.8 0v-6.1H5a.9.9 0 0 1 0-1.8h6.1V5a.9.9 0 0 1 .9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"plus\"],\n category: \"utility\"\n}, r = (o) => /* @__PURE__ */ s(l, { ...o, svg: e });\nr.displayName = \"IconPlus\";\nexport {\n r as IconPlus\n};\n//# sourceMappingURL=plus.es.js.map\n","import React from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconMinus } from \"@purpur/icon/minus\";\nimport { IconPlus } from \"@purpur/icon/plus\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./quantity-selector-button.module.scss\";\n\ntype variant = \"primary\" | \"secondary\";\ntype buttonType = \"increment\" | \"decrement\";\n\ntype QuantitySelectorButtonProps = {\n [\"data-testid\"]?: string;\n [\"aria-label\"]?: string;\n disabled?: boolean;\n hasGap: boolean;\n variant: variant;\n buttonType: buttonType;\n onClick: (buttonType: buttonType) => void;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-quantity-selector-button\";\n\nexport const QuantitySelectorButton = ({\n [\"data-testid\"]: dataTestid,\n [\"aria-label\"]: ariaLabel,\n disabled,\n hasGap,\n variant,\n buttonType,\n onClick,\n}: QuantitySelectorButtonProps) => {\n const classes = cx(rootClassName, {\n [`${rootClassName}--gap-left`]: hasGap && buttonType === \"decrement\",\n [`${rootClassName}--gap-right`]: hasGap && buttonType === \"increment\",\n [`${rootClassName}--no-gap-left`]: !hasGap && buttonType === \"decrement\",\n [`${rootClassName}--no-gap-right`]: !hasGap && buttonType === \"increment\",\n });\n\n return (\n <Button\n data-testid={dataTestid}\n className={classes}\n size=\"sm\"\n type=\"submit\"\n variant={variant}\n onClick={() => onClick(buttonType)}\n iconOnly={true}\n aria-label={ariaLabel ?? \"\"}\n disabled={disabled}\n tabIndex={-1}\n >\n {buttonType === \"increment\" ? <IconPlus size=\"xs\" /> : <IconMinus size=\"xs\" />}\n </Button>\n );\n};\n","import React, { type ChangeEvent, forwardRef, useEffect, useState } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Spinner } from \"@purpur/spinner\";\nimport { TextField } from \"@purpur/text-field\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./quantity-selector.module.scss\";\nimport { QuantitySelectorButton } from \"./quantity-selector-button\";\n\nconst cx = c.bind(styles);\n\nexport const quantitySelectorVariants = [\"attached\", \"separated\"] as const;\nexport const quantitySelectorButtonVariants = [\"primary\", \"secondary\"] as const;\n\ntype Variant = (typeof quantitySelectorVariants)[number];\ntype ButtonVariant = (typeof quantitySelectorButtonVariants)[number];\n\nexport type QuantitySelectorProps = Omit<BaseProps<\"input\">, \"onChange\" | \"type\"> & {\n variant: Variant;\n buttonVariant: ButtonVariant;\n onChange: (value: number) => void;\n defaultValue?: number;\n ariaLabelIncrement?: string;\n ariaLabelDecrement?: string;\n /**\n * Used when the component is controlled\n */\n value?: number;\n minValue?: number;\n maxValue?: number;\n label?: string;\n errorText?: string;\n fullWidth?: boolean;\n disabled?: boolean;\n loading?: boolean;\n};\n\nconst rootClassName = \"purpur-quantity-selector\";\n\nexport const QuantitySelector = forwardRef<HTMLInputElement, QuantitySelectorProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n className,\n variant,\n buttonVariant,\n onChange,\n value: controlledValue,\n defaultValue,\n fullWidth,\n disabled,\n loading,\n minValue,\n maxValue,\n ariaLabelDecrement,\n ariaLabelIncrement,\n ...props\n },\n ref\n ) => {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue ?? 0);\n const [debouncedValue, setDebouncedValue] = useState(uncontrolledValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : debouncedValue;\n\n const getTestId = (name: string) => (dataTestId ? `${dataTestId}-${name}` : undefined);\n const isDisabled = disabled || loading;\n const min = Math.max(minValue ?? 0, 0);\n const max = maxValue ?? Number.MAX_SAFE_INTEGER;\n const incrementDisabled = value === max;\n const decrementDisabled = value === min;\n\n useEffect(() => {\n if (isControlled) {\n setUncontrolledValue(controlledValue);\n }\n }, [controlledValue, isControlled]);\n\n useEffect(() => {\n if (!isControlled) {\n const timer = setTimeout(() => {\n setUncontrolledValue(debouncedValue);\n }, 300);\n\n return () => clearTimeout(timer);\n }\n return;\n }, [debouncedValue, isControlled, onChange]);\n\n const classes = cx(className, rootClassName, {\n [`${rootClassName}--no-gap`]:\n variant === \"attached\" && !isDisabled && !decrementDisabled && !incrementDisabled,\n [`${rootClassName}--no-gap-disabled-left`]:\n variant === \"attached\" && !isDisabled && !incrementDisabled && decrementDisabled,\n [`${rootClassName}--no-gap-disabled-right`]:\n variant === \"attached\" && !isDisabled && !decrementDisabled && incrementDisabled,\n [`${rootClassName}--no-gap-disabled`]:\n variant === \"attached\" && (isDisabled || (incrementDisabled && decrementDisabled)),\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--loading`]: loading,\n });\n\n const handleOnChange = (e: ChangeEvent<HTMLInputElement>) => {\n const numericRegex = /^[0-9]*$/;\n if (!numericRegex.test(e.target.value)) {\n return;\n }\n const val = +e.target.value;\n if (val < min || val > max) {\n return;\n }\n\n if (!isControlled) {\n setDebouncedValue(val);\n }\n onChange(val);\n };\n\n const handleOnClick = (adjustmentType: \"increment\" | \"decrement\") => {\n const adjustedValue = adjustmentType === \"increment\" ? value + 1 : value - 1;\n if (adjustedValue < 0) {\n return;\n }\n\n if (!isControlled) {\n setDebouncedValue(adjustedValue);\n }\n onChange(adjustedValue);\n };\n\n const adjustmentButton = (adjustmentType: \"increment\" | \"decrement\") => {\n const buttonDisabled =\n (adjustmentType === \"increment\" && incrementDisabled) ||\n (adjustmentType === \"decrement\" && decrementDisabled);\n\n return (\n <QuantitySelectorButton\n data-testid={getTestId(\"button-\" + adjustmentType)}\n variant={buttonVariant}\n buttonType={adjustmentType}\n hasGap={variant === \"separated\"}\n onClick={handleOnClick}\n disabled={isDisabled || buttonDisabled}\n aria-label={adjustmentType === \"increment\" ? ariaLabelIncrement : ariaLabelDecrement}\n />\n );\n };\n\n const beforeField = (\n <>\n {loading && (\n <div\n className={cx(`${rootClassName}__spinner`, {\n [`${rootClassName}__spinner--full-width`]: fullWidth,\n [`${rootClassName}__spinner--separated`]: !fullWidth && variant === \"separated\",\n })}\n >\n <Spinner\n key=\"spinner\"\n disabled={isDisabled}\n size=\"xs\"\n data-testid={getTestId(\"spinner\")}\n />\n </div>\n )}\n {adjustmentButton(\"decrement\")}\n </>\n );\n\n return (\n <TextField\n value={value}\n type=\"number\"\n ref={ref}\n className={classes}\n data-testid={dataTestId}\n onChange={handleOnChange}\n beforeField={beforeField}\n afterField={adjustmentButton(\"increment\")}\n disabled={isDisabled}\n min={min}\n max={max}\n role=\"spinbutton\"\n aria-valuenow={value}\n aria-valuemax={max}\n aria-valuemin={min}\n {...props}\n />\n );\n }\n);\n\nQuantitySelector.displayName = \"QuantitySelector\";\n"],"names":["e","r","o","s","l","cx","c","styles","rootClassName","QuantitySelectorButton","dataTestid","ariaLabel","disabled","hasGap","variant","buttonType","onClick","classes","jsx","Button","IconPlus","IconMinus","quantitySelectorVariants","quantitySelectorButtonVariants","QuantitySelector","forwardRef","dataTestId","className","buttonVariant","onChange","controlledValue","defaultValue","fullWidth","loading","minValue","maxValue","ariaLabelDecrement","ariaLabelIncrement","props","ref","uncontrolledValue","setUncontrolledValue","useState","debouncedValue","setDebouncedValue","isControlled","value","getTestId","name","isDisabled","min","max","incrementDisabled","decrementDisabled","useEffect","timer","handleOnChange","val","handleOnClick","adjustmentType","adjustedValue","adjustmentButton","buttonDisabled","beforeField","jsxs","Fragment","Spinner","TextField"],"mappings":"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"}
|