@purpur/library 9.2.3 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +27 -0
- package/CHANGELOG.md +13 -1
- package/dist/LICENSE.txt +1 -1
- package/dist/{RichText-Bi51HE6X.mjs → RichText-jZ-sHV-u.mjs} +2 -2
- package/dist/{RichText-Bi51HE6X.mjs.map → RichText-jZ-sHV-u.mjs.map} +1 -1
- package/dist/{RichText-DNroJJXv.js → RichText-yobCUjTD.js} +2 -2
- package/dist/{RichText-DNroJJXv.js.map → RichText-yobCUjTD.js.map} +1 -1
- package/dist/{ThemeProvider-bkyFCeo6.mjs → ThemeProvider-CkX-BNWN.mjs} +2 -2
- package/dist/ThemeProvider-CkX-BNWN.mjs.map +1 -0
- package/dist/{ThemeProvider-5r7lDX-h.js → ThemeProvider-Dy771oix.js} +2 -2
- package/dist/ThemeProvider-Dy771oix.js.map +1 -0
- package/dist/{accordion-OtFSShSB.mjs → accordion-CIU4U8-4.mjs} +3 -3
- package/dist/accordion-CIU4U8-4.mjs.map +1 -0
- package/dist/{accordion-OsA0HvdA.js → accordion-DyhOG54L.js} +2 -2
- package/dist/accordion-DyhOG54L.js.map +1 -0
- package/dist/accordion.cjs.js +1 -1
- package/dist/accordion.es.js +3 -3
- package/dist/{autocomplete-D9uCJzjY.js → autocomplete-3kV1btuI.js} +2 -2
- package/dist/{autocomplete-D9uCJzjY.js.map → autocomplete-3kV1btuI.js.map} +1 -1
- package/dist/{autocomplete-BipmyKf0.mjs → autocomplete-BEGRn-Wh.mjs} +2 -2
- package/dist/{autocomplete-BipmyKf0.mjs.map → autocomplete-BEGRn-Wh.mjs.map} +1 -1
- package/dist/autocomplete.cjs.js +1 -1
- package/dist/autocomplete.es.js +1 -1
- package/dist/{card-DR2hvxjZ.mjs → card-C2mdp-ur.mjs} +2 -2
- package/dist/{card-DR2hvxjZ.mjs.map → card-C2mdp-ur.mjs.map} +1 -1
- package/dist/{card-CRHXm5NR.js → card-DFdUs5RG.js} +2 -2
- package/dist/{card-CRHXm5NR.js.map → card-DFdUs5RG.js.map} +1 -1
- package/dist/card.cjs.js +1 -1
- package/dist/card.es.js +1 -1
- package/dist/{carousel-BkxojLwn.mjs → carousel-DLkTL9sj.mjs} +29 -29
- package/dist/{carousel-BkxojLwn.mjs.map → carousel-DLkTL9sj.mjs.map} +1 -1
- package/dist/{carousel-BCw-5u92.js → carousel-DXrtxRz5.js} +2 -2
- package/dist/{carousel-BCw-5u92.js.map → carousel-DXrtxRz5.js.map} +1 -1
- package/dist/carousel.cjs.js +1 -1
- package/dist/carousel.es.js +1 -1
- package/dist/checkbox-BHTx89JQ.mjs +236 -0
- package/dist/checkbox-BHTx89JQ.mjs.map +1 -0
- package/dist/checkbox-CDNcNv6d.js +2 -0
- package/dist/checkbox-CDNcNv6d.js.map +1 -0
- package/dist/checkbox.cjs.js +1 -1
- package/dist/checkbox.es.js +1 -1
- package/dist/{comparison-table-B8w65g43.js → comparison-table-CitEzX7h.js} +2 -2
- package/dist/comparison-table-CitEzX7h.js.map +1 -0
- package/dist/{comparison-table-D1zJpdLL.mjs → comparison-table-Dmbjsqyg.mjs} +52 -52
- package/dist/comparison-table-Dmbjsqyg.mjs.map +1 -0
- package/dist/comparison-table.cjs.js +1 -1
- package/dist/comparison-table.es.js +1 -1
- package/dist/components/accordion/src/accordion.d.ts +1 -1
- package/dist/components/accordion/src/accordion.d.ts.map +1 -1
- package/dist/components/checkbox/src/checkbox.d.ts +4 -0
- package/dist/components/checkbox/src/checkbox.d.ts.map +1 -1
- package/dist/components/comparison-table/src/comparison-table.d.ts +1 -1
- package/dist/components/comparison-table/src/comparison-table.d.ts.map +1 -1
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group-item.d.ts.map +1 -1
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts +4 -2
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-select.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-shared.d.ts +3 -2
- package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -1
- package/dist/components/dropdown/src/useDropdown.d.ts +2 -1
- package/dist/components/dropdown/src/useDropdown.d.ts.map +1 -1
- package/dist/components/listbox/src/listbox-item.d.ts +2 -2
- package/dist/components/listbox/src/listbox-item.d.ts.map +1 -1
- package/dist/components/listbox/src/listbox.d.ts +4 -1
- package/dist/components/listbox/src/listbox.d.ts.map +1 -1
- package/dist/components/toggle/src/toggle.d.ts +1 -0
- package/dist/components/toggle/src/toggle.d.ts.map +1 -1
- package/dist/components-metadata.js +4 -2
- package/dist/{content-block-Dm3L4g8w.mjs → content-block-CakKeJtN.mjs} +2 -2
- package/dist/{content-block-Dm3L4g8w.mjs.map → content-block-CakKeJtN.mjs.map} +1 -1
- package/dist/{content-block-CDRUH0pg.js → content-block-CrekbIfe.js} +2 -2
- package/dist/{content-block-CDRUH0pg.js.map → content-block-CrekbIfe.js.map} +1 -1
- package/dist/content-block.cjs.js +1 -1
- package/dist/content-block.es.js +1 -1
- package/dist/{countdown-DZ4IwkNy.mjs → countdown-BsLsEZBv.mjs} +2 -2
- package/dist/{countdown-DZ4IwkNy.mjs.map → countdown-BsLsEZBv.mjs.map} +1 -1
- package/dist/{countdown-CqYsZigV.js → countdown-hYrFLmRg.js} +2 -2
- package/dist/{countdown-CqYsZigV.js.map → countdown-hYrFLmRg.js.map} +1 -1
- package/dist/countdown.cjs.js +1 -1
- package/dist/countdown.es.js +1 -1
- package/dist/dismissable-chip-group-2updhyuR.js +2 -0
- package/dist/dismissable-chip-group-2updhyuR.js.map +1 -0
- package/dist/dismissable-chip-group-Cfs2s2BH.mjs +94 -0
- package/dist/dismissable-chip-group-Cfs2s2BH.mjs.map +1 -0
- package/dist/dismissable-chip-group.cjs.js +1 -1
- package/dist/dismissable-chip-group.es.js +6 -5
- package/dist/dropdown-CMO_VD5e.mjs +916 -0
- package/dist/dropdown-CMO_VD5e.mjs.map +1 -0
- package/dist/dropdown-DJKNQnuo.js +2 -0
- package/dist/dropdown-DJKNQnuo.js.map +1 -0
- package/dist/dropdown.cjs.js +1 -1
- package/dist/dropdown.es.js +1 -1
- package/dist/{footer-BXs8uzTA.mjs → footer-BLPlXaZK.mjs} +4 -4
- package/dist/{footer-BXs8uzTA.mjs.map → footer-BLPlXaZK.mjs.map} +1 -1
- package/dist/{footer-DF9adlni.js → footer-D9AcPwlH.js} +2 -2
- package/dist/{footer-DF9adlni.js.map → footer-D9AcPwlH.js.map} +1 -1
- package/dist/footer.cjs.js +1 -1
- package/dist/footer.es.js +1 -1
- package/dist/{hero-banner-BfxclVFT.js → hero-banner-D1A-_qou.js} +2 -2
- package/dist/{hero-banner-BfxclVFT.js.map → hero-banner-D1A-_qou.js.map} +1 -1
- package/dist/{hero-banner-CxPvhXD2.mjs → hero-banner-DkC_BqM7.mjs} +3 -3
- package/dist/{hero-banner-CxPvhXD2.mjs.map → hero-banner-DkC_BqM7.mjs.map} +1 -1
- package/dist/hero-banner.cjs.js +1 -1
- package/dist/hero-banner.es.js +1 -1
- package/dist/libraries/theme/src/theme-props.d.ts +1 -0
- package/dist/libraries/theme/src/theme-props.d.ts.map +1 -1
- package/dist/libraries/tokens/dist/color/variables.d.ts +1 -0
- package/dist/libraries/tokens/dist/color/variables.dark.d.ts +1 -0
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +592 -589
- package/dist/listbox-ATP4hOWF.js +2 -0
- package/dist/listbox-ATP4hOWF.js.map +1 -0
- package/dist/listbox-i6BQQ-NZ.mjs +73 -0
- package/dist/listbox-i6BQQ-NZ.mjs.map +1 -0
- package/dist/listbox.cjs.js +1 -1
- package/dist/listbox.es.js +3 -2
- package/dist/{modal-COF_UhvY.js → modal-Baisuc6m.js} +2 -2
- package/dist/{modal-COF_UhvY.js.map → modal-Baisuc6m.js.map} +1 -1
- package/dist/{modal-BMg43Fvd.mjs → modal-COZ1POGG.mjs} +2 -2
- package/dist/{modal-BMg43Fvd.mjs.map → modal-COZ1POGG.mjs.map} +1 -1
- package/dist/modal.cjs.js +1 -1
- package/dist/modal.es.js +1 -1
- package/dist/{notification-BqjaT4E7.js → notification-B5bNNq86.js} +2 -2
- package/dist/{notification-BqjaT4E7.js.map → notification-B5bNNq86.js.map} +1 -1
- package/dist/{notification-DdRS5BF2.mjs → notification-BbQCmsnY.mjs} +2 -2
- package/dist/{notification-DdRS5BF2.mjs.map → notification-BbQCmsnY.mjs.map} +1 -1
- package/dist/notification.cjs.js +1 -1
- package/dist/notification.es.js +1 -1
- package/dist/{pagination-CVYUacXN.mjs → pagination-Cc_4zCQA.mjs} +2 -2
- package/dist/{pagination-CVYUacXN.mjs.map → pagination-Cc_4zCQA.mjs.map} +1 -1
- package/dist/{pagination-Bwlkvqye.js → pagination-rFRdkHII.js} +2 -2
- package/dist/{pagination-Bwlkvqye.js.map → pagination-rFRdkHII.js.map} +1 -1
- package/dist/pagination.cjs.js +1 -1
- package/dist/pagination.es.js +1 -1
- package/dist/paragraph-By4jMjnH.js +2 -0
- package/dist/{paragraph-BsI53OR0.js.map → paragraph-By4jMjnH.js.map} +1 -1
- package/dist/{paragraph-Ci50OF1u.mjs → paragraph-DSxXmX_0.mjs} +23 -23
- package/dist/{paragraph-Ci50OF1u.mjs.map → paragraph-DSxXmX_0.mjs.map} +1 -1
- package/dist/paragraph.cjs.js +1 -1
- package/dist/paragraph.es.js +1 -1
- package/dist/{popover-XCUa2GfC.js → popover-B0XJZ5mj.js} +2 -2
- package/dist/{popover-XCUa2GfC.js.map → popover-B0XJZ5mj.js.map} +1 -1
- package/dist/{popover-Dwqs1wGH.mjs → popover-_xJATlhN.mjs} +2 -2
- package/dist/{popover-Dwqs1wGH.mjs.map → popover-_xJATlhN.mjs.map} +1 -1
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/{product-card-BfB82XpS.mjs → product-card-C3_N0t-R.mjs} +3 -3
- package/dist/{product-card-BfB82XpS.mjs.map → product-card-C3_N0t-R.mjs.map} +1 -1
- package/dist/{product-card-bVQ7JhHj.js → product-card-CoY1KggV.js} +2 -2
- package/dist/{product-card-bVQ7JhHj.js.map → product-card-CoY1KggV.js.map} +1 -1
- package/dist/product-card.cjs.js +1 -1
- package/dist/product-card.es.js +1 -1
- package/dist/{promotion-card-DqBBt2sz.js → promotion-card-Bag64gqP.js} +2 -2
- package/dist/{promotion-card-DqBBt2sz.js.map → promotion-card-Bag64gqP.js.map} +1 -1
- package/dist/{promotion-card-BhNw94sC.mjs → promotion-card-BiHnQvhn.mjs} +4 -4
- package/dist/{promotion-card-BhNw94sC.mjs.map → promotion-card-BiHnQvhn.mjs.map} +1 -1
- 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-CDSfcTb1.js +2 -0
- package/dist/{quantity-selector-8AkKNDik.js.map → quantity-selector-CDSfcTb1.js.map} +1 -1
- package/dist/{quantity-selector-C23kU1hF.mjs → quantity-selector-CvBvnMeB.mjs} +35 -35
- package/dist/{quantity-selector-C23kU1hF.mjs.map → quantity-selector-CvBvnMeB.mjs.map} +1 -1
- package/dist/quantity-selector.cjs.js +1 -1
- package/dist/quantity-selector.es.js +1 -1
- package/dist/{radio-card-group-BlRZBa-9.mjs → radio-card-group-CneOprGY.mjs} +2 -2
- package/dist/{radio-card-group-BlRZBa-9.mjs.map → radio-card-group-CneOprGY.mjs.map} +1 -1
- package/dist/{radio-card-group-sYcfDPJq.js → radio-card-group-Ctuvg61o.js} +2 -2
- package/dist/{radio-card-group-sYcfDPJq.js.map → radio-card-group-Ctuvg61o.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-CZ9mIyZ-.mjs → search-field-CpkHGIYi.mjs} +3 -3
- package/dist/{search-field-CZ9mIyZ-.mjs.map → search-field-CpkHGIYi.mjs.map} +1 -1
- package/dist/{search-field-DD9UkOca.js → search-field-Z0PqDARl.js} +2 -2
- package/dist/{search-field-DD9UkOca.js.map → search-field-Z0PqDARl.js.map} +1 -1
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +1 -1
- package/dist/{stepper-uBfDdIju.mjs → stepper-CNnx_NiR.mjs} +2 -2
- package/dist/{stepper-uBfDdIju.mjs.map → stepper-CNnx_NiR.mjs.map} +1 -1
- package/dist/{stepper-w-raIwqJ.js → stepper-Df4X7DDR.js} +2 -2
- package/dist/{stepper-w-raIwqJ.js.map → stepper-Df4X7DDR.js.map} +1 -1
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-DsgqX7Vv.js → table-DRYW0yw4.js} +2 -2
- package/dist/{table-DsgqX7Vv.js.map → table-DRYW0yw4.js.map} +1 -1
- package/dist/{table-Dx_dhGT6.mjs → table-DUY8kQfE.mjs} +5 -5
- package/dist/{table-Dx_dhGT6.mjs.map → table-DUY8kQfE.mjs.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/{text-area-DDZ_GQPW.mjs → text-area-kJvg6cFp.mjs} +3 -3
- package/dist/{text-area-DDZ_GQPW.mjs.map → text-area-kJvg6cFp.mjs.map} +1 -1
- package/dist/{text-area-C6W0fDiQ.js → text-area-peNKG7g4.js} +2 -2
- package/dist/{text-area-C6W0fDiQ.js.map → text-area-peNKG7g4.js.map} +1 -1
- package/dist/text-area.cjs.js +1 -1
- package/dist/text-area.es.js +1 -1
- package/dist/theme.cjs.js +1 -1
- package/dist/theme.es.js +2 -2
- package/dist/toggle-B8ZLUVar.js +2 -0
- package/dist/{toggle-C8IwTbX8.js.map → toggle-B8ZLUVar.js.map} +1 -1
- package/dist/toggle-CY3J8BRX.mjs +302 -0
- package/dist/{toggle-D23x1wWk.mjs.map → toggle-CY3J8BRX.mjs.map} +1 -1
- package/dist/toggle.cjs.js +1 -1
- package/dist/toggle.es.js +1 -1
- package/dist/tokens/color/variables.css +1 -0
- package/dist/tokens/color/variables.d.ts +1 -0
- package/dist/tokens/color/variables.dark.css +1 -0
- package/dist/tokens/color/variables.dark.d.ts +1 -0
- package/dist/tokens/color/variables.dark.js +1 -0
- package/dist/tokens/color/variables.dark.json +2 -1
- package/dist/tokens/color/variables.dark.scss +1 -0
- package/dist/tokens/color/variables.js +1 -0
- package/dist/tokens/color/variables.json +2 -1
- package/dist/tokens/color/variables.scss +1 -0
- package/dist/tokens.cjs.js +1 -1
- package/dist/tokens.es.js +76 -75
- package/dist/{tooltip-0pLBlDG3.js → tooltip-C8Zxnqdb.js} +2 -2
- package/dist/{tooltip-0pLBlDG3.js.map → tooltip-C8Zxnqdb.js.map} +1 -1
- package/dist/{tooltip-Kom0VfOC.mjs → tooltip-VlURN8H3.mjs} +2 -2
- package/dist/{tooltip-Kom0VfOC.mjs.map → tooltip-VlURN8H3.mjs.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/use-autocomplete.es-BwAzMcau.js +2 -0
- package/dist/use-autocomplete.es-BwAzMcau.js.map +1 -0
- package/dist/{use-autocomplete.es-CVv3z8t6.mjs → use-autocomplete.es-CKb0RHKG.mjs} +37 -35
- package/dist/use-autocomplete.es-CKb0RHKG.mjs.map +1 -0
- package/dist/useColorScheme-DNyjsWX9.js +2 -0
- package/dist/{useColorScheme-0GMDl2GF.js.map → useColorScheme-DNyjsWX9.js.map} +1 -1
- package/dist/{useColorScheme-Di_Q0JR4.mjs → useColorScheme-tAkY9LHt.mjs} +2 -2
- package/dist/{useColorScheme-Di_Q0JR4.mjs.map → useColorScheme-tAkY9LHt.mjs.map} +1 -1
- package/dist/{variables-CKp4o9Tn.mjs → variables-B5hbV0Uy.mjs} +128 -127
- package/dist/variables-B5hbV0Uy.mjs.map +1 -0
- package/dist/variables-DoI78zZc.js +2 -0
- package/dist/variables-DoI78zZc.js.map +1 -0
- package/package.json +20 -20
- package/tokens/color/variables.css +1 -0
- package/tokens/color/variables.d.ts +1 -0
- package/tokens/color/variables.dark.css +1 -0
- package/tokens/color/variables.dark.d.ts +1 -0
- package/tokens/color/variables.dark.js +1 -0
- package/tokens/color/variables.dark.json +2 -1
- package/tokens/color/variables.dark.scss +1 -0
- package/tokens/color/variables.js +1 -0
- package/tokens/color/variables.json +2 -1
- package/tokens/color/variables.scss +1 -0
- package/dist/ThemeProvider-5r7lDX-h.js.map +0 -1
- package/dist/ThemeProvider-bkyFCeo6.mjs.map +0 -1
- package/dist/accordion-OsA0HvdA.js.map +0 -1
- package/dist/accordion-OtFSShSB.mjs.map +0 -1
- package/dist/checkbox-D6qWgpWR.mjs +0 -231
- package/dist/checkbox-D6qWgpWR.mjs.map +0 -1
- package/dist/checkbox-Dk3bZkZ3.js +0 -2
- package/dist/checkbox-Dk3bZkZ3.js.map +0 -1
- package/dist/comparison-table-B8w65g43.js.map +0 -1
- package/dist/comparison-table-D1zJpdLL.mjs.map +0 -1
- package/dist/dismissable-chip-group-Cd23yjBa.js +0 -2
- package/dist/dismissable-chip-group-Cd23yjBa.js.map +0 -1
- package/dist/dismissable-chip-group-D-gD93ON.mjs +0 -89
- package/dist/dismissable-chip-group-D-gD93ON.mjs.map +0 -1
- package/dist/dropdown-BsqVnd7z.js +0 -2
- package/dist/dropdown-BsqVnd7z.js.map +0 -1
- package/dist/dropdown-TO3Mh0bk.mjs +0 -910
- package/dist/dropdown-TO3Mh0bk.mjs.map +0 -1
- package/dist/listbox-COBHLRtB.js +0 -2
- package/dist/listbox-COBHLRtB.js.map +0 -1
- package/dist/listbox-DG4KmQP_.mjs +0 -66
- package/dist/listbox-DG4KmQP_.mjs.map +0 -1
- package/dist/paragraph-BsI53OR0.js +0 -2
- package/dist/quantity-selector-8AkKNDik.js +0 -2
- package/dist/toggle-C8IwTbX8.js +0 -2
- package/dist/toggle-D23x1wWk.mjs +0 -287
- package/dist/use-autocomplete.es-BHDgQLae.js +0 -2
- package/dist/use-autocomplete.es-BHDgQLae.js.map +0 -1
- package/dist/use-autocomplete.es-CVv3z8t6.mjs.map +0 -1
- package/dist/useColorScheme-0GMDl2GF.js +0 -2
- package/dist/variables-CKp4o9Tn.mjs.map +0 -1
- package/dist/variables-DH61hVNE.js +0 -2
- package/dist/variables-DH61hVNE.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-Bwlkvqye.js","sources":["../../../components/pagination/src/navigation.ts","../../../components/pagination/src/use-page-options.hook.ts","../../../components/pagination/src/pagination-page-selector.tsx","../../../components/pagination/src/use-page-size-options.hook.ts","../../../components/pagination/src/pagination-page-size-selector.tsx","../../../components/pagination/src/pagination-page-trigger.tsx","../../../components/pagination/src/pagination-truncation-separator.tsx","../../../components/pagination/src/pagination-pages.tsx","../../../components/pagination/src/pagination-step-trigger.tsx","../../../components/pagination/src/use-pagination-pages.hook.ts","../../../components/pagination/src/pagination.tsx"],"sourcesContent":["export const navigateToPage = (url: string): void => {\n window.location.href = url;\n};\n","import { useMemo } from \"react\";\nimport type { SelectOption } from \"@purpur/select\";\n\ntype UsePageOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageOptions = (numberOfPages: number): UsePageOptionsHook => {\n const options = useMemo(\n () =>\n Array.from({ length: numberOfPages }, (_, i) => ({ label: `${i + 1}`, value: `${i + 1}` })),\n [numberOfPages]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { Select } from \"@purpur/select\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-selector.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps } from \"./types\";\nimport { usePageOptions } from \"./use-page-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSelectorProps = Omit<BaseProps, \"children\"> & {\n currentPage: number;\n navigationFunction: (page: number, url: string) => void;\n numberOfPages: number;\n onPageChange: (page: number) => void;\n outOfLabel: string;\n pageSelectorId?: string;\n pageSelectorLabel: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-selector\";\n\nexport const PaginationPageSelector = forwardRef<HTMLDivElement, PaginationPageSelectorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-selector\",\n asLink,\n className,\n currentPage,\n hrefGetter,\n navigationFunction,\n numberOfPages,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n ...props\n },\n ref\n ) => {\n const id = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageOptions(numberOfPages);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const page = event.target.value ? Number(event.target.value) : 1;\n onPageChange(page);\n if (asLink) {\n const url = hrefGetter?.(page) ?? \"\";\n navigationFunction(page, url);\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__select-container`)}>\n <VisuallyHidden>\n <Label data-testid={`${dataTestId}-label`} htmlFor={id}>\n {pageSelectorLabel}\n </Label>\n </VisuallyHidden>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={pageSelectorId ?? id}\n onChange={onSelectionChange}\n options={options}\n value={String(currentPage)}\n />\n </div>\n <Paragraph\n className={cx(`${rootClassName}__of-total-pages-label`)}\n data-testid={`${dataTestId}-of-total-pages`}\n >\n {`${outOfLabel} ${numberOfPages}`}\n </Paragraph>\n </div>\n );\n }\n);\n\nPaginationPageSelector.displayName = \"PaginationPageSelector\";\n","import { useMemo } from \"react\";\nimport { type SelectOption } from \"@purpur/select\";\n\ntype UsePageSizeOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageSizeOptions = (availablePageSizes: number[]): UsePageSizeOptionsHook => {\n const options = useMemo(\n () =>\n availablePageSizes.map((pageSize: number) => ({\n label: `${pageSize}`,\n value: `${pageSize}`,\n })),\n [availablePageSizes]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Select } from \"@purpur/select\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination-page-size-selector.module.scss\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePageSizeOptions } from \"./use-page-size-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSizeSelectorProps = Omit<BaseProps, \"children\"> & {\n availablePageSizes: number[];\n onPageSizeChange: (itemsPerPage: number) => void;\n pageSize: number;\n pageSizeLabel: string;\n} & (Omit<LinkProps, \"onPageChange\"> | Omit<NoLinkProps, \"onPageChange\">);\n\nconst rootClassName = \"purpur-pagination-page-size-selector\";\n\nexport const PaginationPageSizeSelector = forwardRef<\n HTMLDivElement,\n PaginationPageSizeSelectorProps\n>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-size-selector\",\n asLink,\n availablePageSizes,\n className,\n hrefGetter,\n navigationFunction,\n onPageSizeChange,\n pageSize,\n pageSizeLabel,\n ...props\n },\n ref\n ) => {\n const selectId = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageSizeOptions(availablePageSizes);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const selectedPageSize = Number(event.target.value);\n onPageSizeChange(selectedPageSize);\n if (asLink) {\n const url = hrefGetter({ page: 1, pageSize: selectedPageSize });\n if (navigationFunction) {\n navigationFunction({ currentPage: 1, pageSize: selectedPageSize, url });\n } else {\n navigateToPage(url);\n }\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <Label\n className={cx(`${rootClassName}__items-per-page-label`)}\n data-testid={`${dataTestId}-item-per-page-label`}\n htmlFor={selectId}\n >\n <span className={cx(`${rootClassName}__items-per-page-label-text`)}>{pageSizeLabel}</span>\n </Label>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={selectId}\n onChange={onSelectionChange}\n options={options}\n value={pageSize}\n />\n </div>\n );\n }\n);\n\nPaginationPageSizeSelector.displayName = \"PaginationPageSizeSelector\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageTriggerProps = Omit<BaseProps<\"li\">, \"children\"> & {\n linkElement: Link;\n disabled?: boolean;\n onPageChange: (page: number) => void;\n pageNumber: number;\n selected: boolean;\n stepNumberPrefix: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-trigger\";\n\nexport const PaginationPageTrigger = forwardRef<HTMLLIElement, PaginationPageTriggerProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-trigger\",\n linkElement: LinkElement,\n asLink,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageNumber,\n selected,\n stepNumberPrefix,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n `${rootClassName}__trigger-item--disabled`\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-disabled-link`}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </span>\n ) : (\n <LinkElement\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageNumber)}\n onClick={() => onPageChange(pageNumber)}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n data-testid={`${dataTestId}-button`}\n aria-current={selected ? \"page\" : undefined}\n disabled={disabled}\n onClick={() => onPageChange(pageNumber)}\n type=\"button\"\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </button>\n )}\n </li>\n );\n }\n);\n\nPaginationPageTrigger.displayName = \"PaginationPageTrigger\";\n","import React from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-truncation-separator.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTruncationSeparatorProps = Omit<BaseProps<\"li\">, \"children\">;\n\nconst rootClassName = \"purpur-pagination-truncation-separator\";\n\nexport const PaginationTruncationSeparator = ({\n [\"data-testid\"]: dataTestId = \"purpur-pagination-truncation-separator\",\n className,\n [\"aria-label\"]: ariaLabel,\n ...props\n}: PaginationTruncationSeparatorProps) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} {...props}>\n <Paragraph aria-label={ariaLabel}>...</Paragraph>\n </li>\n );\n};\n\nPaginationTruncationSeparator.displayName = \"PaginationTruncationSeparator\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport { PaginationPageTrigger } from \"./pagination-page-trigger\";\nimport styles from \"./pagination-pages.module.scss\";\nimport { PaginationTruncationSeparator } from \"./pagination-truncation-separator\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPagesProps = Omit<BaseProps<\"ol\">, \"children\"> & {\n linkElement: Link;\n currentPage: number;\n onPageChange: (page: number) => void;\n pages: number[];\n stepNumberPrefix: string;\n truncationSeparatorAriaLabel?: string;\n} & (InternalNoLinkProps | InternalLinkProps);\n\nconst rootClassName = \"purpur-pagination-pages\";\n\nexport const PaginationPages = forwardRef<HTMLOListElement, PaginationPagesProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-pages\",\n linkElement: LinkElement,\n asLink,\n className,\n currentPage,\n hrefGetter,\n onPageChange,\n pages,\n stepNumberPrefix,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <ol className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {pages.flatMap((pageNumber: number, idx: number, pages: number[]) => {\n const TriggerComponent = (\n <PaginationPageTrigger\n {...(asLink\n ? { asLink: true, hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n })}\n linkElement={LinkElement}\n data-testid={`${dataTestId}-page-${pageNumber}`}\n key={pageNumber}\n onPageChange={onPageChange}\n selected={pageNumber === currentPage}\n stepNumberPrefix={stepNumberPrefix}\n pageNumber={pageNumber}\n />\n );\n return idx === 0 || pages[idx - 1] + 1 === pageNumber\n ? [TriggerComponent]\n : [\n <PaginationTruncationSeparator\n data-testid={`${dataTestId}-truncation-separator-${pageNumber}`}\n key={`${pageNumber}-separator`}\n aria-label={truncationSeparatorAriaLabel}\n />,\n TriggerComponent,\n ];\n })}\n </ol>\n );\n }\n);\n\nPaginationPages.displayName = \"PaginationPages\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-step-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationStepTriggerProps = Omit<BaseProps, \"children\"> & {\n linkElement: Link;\n children: ReactNode;\n disabled: boolean;\n onPageChange: (page: number) => void;\n pageToNavigateTo: number;\n isIconOnly: boolean;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-step-trigger\";\n\nexport const PaginationStepTrigger = forwardRef<HTMLDivElement, PaginationStepTriggerProps>(\n (\n {\n [\"aria-label\"]: ariaLabel,\n [\"data-testid\"]: dataTestId = \"purpur-pagination-step-trigger\",\n linkElement: LinkElement,\n asLink,\n children,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageToNavigateTo,\n isIconOnly,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--disabled`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-disabled-link`}\n >\n {children}\n </span>\n ) : (\n <LinkElement\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageToNavigateTo)}\n onClick={() => onPageChange(pageToNavigateTo)}\n >\n {children}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n {\n [`${rootClassName}__trigger-item--disabled`]: disabled,\n [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly,\n }\n )}\n data-testid={`${dataTestId}-button`}\n disabled={disabled}\n onClick={() => onPageChange(pageToNavigateTo)}\n type=\"button\"\n >\n {children}\n </button>\n )}\n </div>\n );\n }\n);\n\nPaginationStepTrigger.displayName = \"PaginationStepTrigger\";\n","import { useEffect, useState } from \"react\";\n\ntype UsePaginationPagesHook = {\n pages: number[];\n numberOfPages: number;\n};\n\nexport const usePaginationPages = (\n totalItems: number,\n pageSize: number,\n currentPage: number\n): UsePaginationPagesHook => {\n const [pages, setPages] = useState<number[]>([]);\n const [numberOfPages, setNumberOfPages] = useState<number>(0);\n\n useEffect(() => {\n const totalNumberOfPages = Math.ceil(totalItems / pageSize);\n setNumberOfPages(totalNumberOfPages);\n setPages(getPagesToDisplay(totalNumberOfPages, currentPage));\n }, [totalItems, pageSize, currentPage]);\n\n return {\n pages,\n numberOfPages,\n };\n};\n\nfunction getPagesToDisplay(totalNumberOfPages: number, currentPage: number): number[] {\n if (totalNumberOfPages <= 5) {\n return Array.from({ length: totalNumberOfPages }, (_, i) => i + 1);\n }\n const firstThreePages = [1, 2, 3];\n if (firstThreePages.includes(currentPage)) {\n return [...firstThreePages, 4, totalNumberOfPages];\n }\n const lastThreePages = [totalNumberOfPages - 2, totalNumberOfPages - 1, totalNumberOfPages];\n if (lastThreePages.includes(currentPage)) {\n return [1, totalNumberOfPages - 3, ...lastThreePages];\n }\n return [1, currentPage - 1, currentPage, currentPage + 1, totalNumberOfPages];\n}\n","import React, { forwardRef, useState } from \"react\";\nimport { IconArrowLeft } from \"@purpur/icon/arrow-left\";\nimport { IconArrowRight } from \"@purpur/icon/arrow-right\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination.module.scss\";\nimport { PaginationPageSelector } from \"./pagination-page-selector\";\nimport { PaginationPageSizeSelector } from \"./pagination-page-size-selector\";\nimport { PaginationPages } from \"./pagination-pages\";\nimport { PaginationStepTrigger } from \"./pagination-step-trigger\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePaginationPages } from \"./use-pagination-pages.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTexts = {\n nextButtonAriaLabel: string;\n /**\n * Omiting this and previousButtonText will result in an icon-only button.\n */\n nextButtonText?: string;\n /**\n * This is the divider word between the current page and the total number of pages.\n * For example, if the current page is 1 and the total number of pages is 10, the text will be \"1 of 10\".\n */\n outOfLabel: string;\n /**\n * This is a hidden label for the page selector\n */\n pageSelectorLabel: string;\n /**\n * This is the \"...\" text that is displayed when there are more pages than can be shown at once.\n */\n truncationSeparatorAriaLabel?: string;\n previousButtonAriaLabel: string;\n /**\n * Omiting this and nextButtonText will result in an icon-only button.\n */\n previousButtonText?: string;\n /**\n * This is a screen reader text that will be inserted before the current page number. For example, for step 1 it will say \"Go to step 1\".\n */\n stepNumberPrefix: string;\n};\n\nexport type PageSizeProps = {\n availablePageSizes: number[];\n pageSize?: number;\n /**\n * The label describing the page size select.\n */\n pageSizeLabel: string;\n};\n\nexport type NoPageSizeProps = {\n availablePageSizes?: never;\n pageSize?: number;\n pageSizeLabel?: never;\n};\n\nexport type PaginationProps = {\n currentPage: number;\n pageSelectorId?: string;\n totalItems: number;\n} & PaginationTexts &\n (PageSizeProps | NoPageSizeProps) &\n (LinkProps | NoLinkProps);\n\nconst rootClassName = \"purpur-pagination\";\n\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination\",\n linkElement = \"a\",\n asLink,\n availablePageSizes,\n className,\n currentPage = 1,\n hrefGetter,\n navigationFunction,\n nextButtonAriaLabel,\n nextButtonText,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n pageSize = 10,\n pageSizeLabel,\n previousButtonAriaLabel,\n previousButtonText,\n stepNumberPrefix,\n totalItems,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [_pageSize, _setPageSize] = useState(pageSize);\n const { pages, numberOfPages } = usePaginationPages(totalItems, _pageSize, currentPage);\n const isIconOnly = !previousButtonText && !nextButtonText;\n\n const _onPageChange = (page: number): void => {\n onPageChange?.({ currentPage: page, pageSize });\n };\n\n const _hrefGetter = (page: number): string => {\n return hrefGetter?.({ page, pageSize }) ?? \"\";\n };\n\n const _onPageSizeChange = (newPageSize: number): void => {\n _setPageSize(newPageSize);\n onPageChange?.({ currentPage: 1, pageSize: newPageSize });\n };\n\n const _navigationFunction = (page: number, url: string): void => {\n if (navigationFunction) {\n navigationFunction({ currentPage: page, pageSize: _pageSize, url });\n } else {\n navigateToPage(url);\n }\n };\n\n const linkProps = asLink\n ? { asLink: true as const, hrefGetter: _hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n };\n\n const ContainerTag = asLink ? \"nav\" : \"div\";\n\n if (!numberOfPages) {\n return null;\n }\n\n return (\n <ContainerTag className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx(`${rootClassName}__pagination-container`, {\n [`${rootClassName}__pagination-container--with-page-size-select`]: !!availablePageSizes,\n })}\n >\n <div className={cx(`${rootClassName}__page-navigation-container`)}>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={previousButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-previous-step-trigger`}\n disabled={currentPage === 1}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage - 1}\n isIconOnly={isIconOnly}\n >\n <IconArrowLeft size=\"sm\" />\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {previousButtonText}\n </span>\n {currentPage !== 1 && (\n <VisuallyHidden data-testid={`${dataTestId}-previous-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage - 1}`}\n </VisuallyHidden>\n )}\n </PaginationStepTrigger>\n <div className={cx(`${rootClassName}__page-trigger-container`)}>\n <PaginationPageSelector\n {...linkProps}\n className={cx(`${rootClassName}__page-selector`, {\n [`${rootClassName}__page-selector--visible`]: pages.length > 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-page-selector`}\n navigationFunction={_navigationFunction}\n numberOfPages={numberOfPages}\n onPageChange={_onPageChange}\n outOfLabel={outOfLabel}\n pageSelectorId={pageSelectorId}\n pageSelectorLabel={pageSelectorLabel}\n />\n <PaginationPages\n {...linkProps}\n linkElement={linkElement}\n className={cx(`${rootClassName}__pages`, {\n [`${rootClassName}__pages--visible`]: pages.length <= 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-pages`}\n stepNumberPrefix={stepNumberPrefix}\n onPageChange={_onPageChange}\n truncationSeparatorAriaLabel={truncationSeparatorAriaLabel}\n pages={pages}\n />\n </div>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={nextButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-next-step-trigger`}\n disabled={currentPage === numberOfPages}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage + 1}\n isIconOnly={isIconOnly}\n >\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {nextButtonText}\n </span>\n {currentPage !== numberOfPages && (\n <VisuallyHidden data-testid={`${dataTestId}-next-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage + 1}`}\n </VisuallyHidden>\n )}\n <IconArrowRight size=\"sm\" />\n </PaginationStepTrigger>\n </div>\n {availablePageSizes && (\n <div className={cx(`${rootClassName}__page-size-select-container`)}>\n <PaginationPageSizeSelector\n {...(asLink\n ? { asLink: true, hrefGetter, navigationFunction }\n : { asLink: undefined as never, hrefGetter: undefined as never })}\n availablePageSizes={availablePageSizes}\n className={cx(`${rootClassName}__page-size-selector`)}\n data-testid={`${dataTestId}-page-size-selector`}\n onPageSizeChange={_onPageSizeChange}\n pageSize={_pageSize}\n pageSizeLabel={pageSizeLabel}\n />\n </div>\n )}\n </div>\n </ContainerTag>\n );\n }\n);\n\nPagination.displayName = \"Pagination\";\n"],"names":["navigateToPage","url","usePageOptions","numberOfPages","useMemo","_","i","cx","c","styles","rootClassName","PaginationPageSelector","forwardRef","dataTestId","asLink","className","currentPage","hrefGetter","navigationFunction","onPageChange","outOfLabel","pageSelectorId","pageSelectorLabel","props","ref","id","useId","classes","options","onSelectionChange","event","page","jsxs","jsx","VisuallyHidden","Label","Select","Paragraph","usePageSizeOptions","availablePageSizes","pageSize","PaginationPageSizeSelector","onPageSizeChange","pageSizeLabel","selectId","selectedPageSize","PaginationPageTrigger","LinkElement","disabled","pageNumber","selected","stepNumberPrefix","PaginationTruncationSeparator","ariaLabel","PaginationPages","pages","truncationSeparatorAriaLabel","idx","TriggerComponent","createElement","PaginationStepTrigger","children","pageToNavigateTo","isIconOnly","usePaginationPages","totalItems","setPages","useState","setNumberOfPages","useEffect","totalNumberOfPages","getPagesToDisplay","firstThreePages","lastThreePages","Pagination","linkElement","nextButtonAriaLabel","nextButtonText","previousButtonAriaLabel","previousButtonText","_pageSize","_setPageSize","_onPageChange","_hrefGetter","_onPageSizeChange","newPageSize","_navigationFunction","linkProps","ContainerTag","IconArrowLeft","IconArrowRight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination-rFRdkHII.js","sources":["../../../components/pagination/src/navigation.ts","../../../components/pagination/src/use-page-options.hook.ts","../../../components/pagination/src/pagination-page-selector.tsx","../../../components/pagination/src/use-page-size-options.hook.ts","../../../components/pagination/src/pagination-page-size-selector.tsx","../../../components/pagination/src/pagination-page-trigger.tsx","../../../components/pagination/src/pagination-truncation-separator.tsx","../../../components/pagination/src/pagination-pages.tsx","../../../components/pagination/src/pagination-step-trigger.tsx","../../../components/pagination/src/use-pagination-pages.hook.ts","../../../components/pagination/src/pagination.tsx"],"sourcesContent":["export const navigateToPage = (url: string): void => {\n window.location.href = url;\n};\n","import { useMemo } from \"react\";\nimport type { SelectOption } from \"@purpur/select\";\n\ntype UsePageOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageOptions = (numberOfPages: number): UsePageOptionsHook => {\n const options = useMemo(\n () =>\n Array.from({ length: numberOfPages }, (_, i) => ({ label: `${i + 1}`, value: `${i + 1}` })),\n [numberOfPages]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { Select } from \"@purpur/select\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-selector.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps } from \"./types\";\nimport { usePageOptions } from \"./use-page-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSelectorProps = Omit<BaseProps, \"children\"> & {\n currentPage: number;\n navigationFunction: (page: number, url: string) => void;\n numberOfPages: number;\n onPageChange: (page: number) => void;\n outOfLabel: string;\n pageSelectorId?: string;\n pageSelectorLabel: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-selector\";\n\nexport const PaginationPageSelector = forwardRef<HTMLDivElement, PaginationPageSelectorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-selector\",\n asLink,\n className,\n currentPage,\n hrefGetter,\n navigationFunction,\n numberOfPages,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n ...props\n },\n ref\n ) => {\n const id = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageOptions(numberOfPages);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const page = event.target.value ? Number(event.target.value) : 1;\n onPageChange(page);\n if (asLink) {\n const url = hrefGetter?.(page) ?? \"\";\n navigationFunction(page, url);\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__select-container`)}>\n <VisuallyHidden>\n <Label data-testid={`${dataTestId}-label`} htmlFor={id}>\n {pageSelectorLabel}\n </Label>\n </VisuallyHidden>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={pageSelectorId ?? id}\n onChange={onSelectionChange}\n options={options}\n value={String(currentPage)}\n />\n </div>\n <Paragraph\n className={cx(`${rootClassName}__of-total-pages-label`)}\n data-testid={`${dataTestId}-of-total-pages`}\n >\n {`${outOfLabel} ${numberOfPages}`}\n </Paragraph>\n </div>\n );\n }\n);\n\nPaginationPageSelector.displayName = \"PaginationPageSelector\";\n","import { useMemo } from \"react\";\nimport { type SelectOption } from \"@purpur/select\";\n\ntype UsePageSizeOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageSizeOptions = (availablePageSizes: number[]): UsePageSizeOptionsHook => {\n const options = useMemo(\n () =>\n availablePageSizes.map((pageSize: number) => ({\n label: `${pageSize}`,\n value: `${pageSize}`,\n })),\n [availablePageSizes]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Select } from \"@purpur/select\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination-page-size-selector.module.scss\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePageSizeOptions } from \"./use-page-size-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSizeSelectorProps = Omit<BaseProps, \"children\"> & {\n availablePageSizes: number[];\n onPageSizeChange: (itemsPerPage: number) => void;\n pageSize: number;\n pageSizeLabel: string;\n} & (Omit<LinkProps, \"onPageChange\"> | Omit<NoLinkProps, \"onPageChange\">);\n\nconst rootClassName = \"purpur-pagination-page-size-selector\";\n\nexport const PaginationPageSizeSelector = forwardRef<\n HTMLDivElement,\n PaginationPageSizeSelectorProps\n>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-size-selector\",\n asLink,\n availablePageSizes,\n className,\n hrefGetter,\n navigationFunction,\n onPageSizeChange,\n pageSize,\n pageSizeLabel,\n ...props\n },\n ref\n ) => {\n const selectId = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageSizeOptions(availablePageSizes);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const selectedPageSize = Number(event.target.value);\n onPageSizeChange(selectedPageSize);\n if (asLink) {\n const url = hrefGetter({ page: 1, pageSize: selectedPageSize });\n if (navigationFunction) {\n navigationFunction({ currentPage: 1, pageSize: selectedPageSize, url });\n } else {\n navigateToPage(url);\n }\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <Label\n className={cx(`${rootClassName}__items-per-page-label`)}\n data-testid={`${dataTestId}-item-per-page-label`}\n htmlFor={selectId}\n >\n <span className={cx(`${rootClassName}__items-per-page-label-text`)}>{pageSizeLabel}</span>\n </Label>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={selectId}\n onChange={onSelectionChange}\n options={options}\n value={pageSize}\n />\n </div>\n );\n }\n);\n\nPaginationPageSizeSelector.displayName = \"PaginationPageSizeSelector\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageTriggerProps = Omit<BaseProps<\"li\">, \"children\"> & {\n linkElement: Link;\n disabled?: boolean;\n onPageChange: (page: number) => void;\n pageNumber: number;\n selected: boolean;\n stepNumberPrefix: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-trigger\";\n\nexport const PaginationPageTrigger = forwardRef<HTMLLIElement, PaginationPageTriggerProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-trigger\",\n linkElement: LinkElement,\n asLink,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageNumber,\n selected,\n stepNumberPrefix,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n `${rootClassName}__trigger-item--disabled`\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-disabled-link`}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </span>\n ) : (\n <LinkElement\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageNumber)}\n onClick={() => onPageChange(pageNumber)}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n data-testid={`${dataTestId}-button`}\n aria-current={selected ? \"page\" : undefined}\n disabled={disabled}\n onClick={() => onPageChange(pageNumber)}\n type=\"button\"\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </button>\n )}\n </li>\n );\n }\n);\n\nPaginationPageTrigger.displayName = \"PaginationPageTrigger\";\n","import React from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-truncation-separator.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTruncationSeparatorProps = Omit<BaseProps<\"li\">, \"children\">;\n\nconst rootClassName = \"purpur-pagination-truncation-separator\";\n\nexport const PaginationTruncationSeparator = ({\n [\"data-testid\"]: dataTestId = \"purpur-pagination-truncation-separator\",\n className,\n [\"aria-label\"]: ariaLabel,\n ...props\n}: PaginationTruncationSeparatorProps) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} {...props}>\n <Paragraph aria-label={ariaLabel}>...</Paragraph>\n </li>\n );\n};\n\nPaginationTruncationSeparator.displayName = \"PaginationTruncationSeparator\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport { PaginationPageTrigger } from \"./pagination-page-trigger\";\nimport styles from \"./pagination-pages.module.scss\";\nimport { PaginationTruncationSeparator } from \"./pagination-truncation-separator\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPagesProps = Omit<BaseProps<\"ol\">, \"children\"> & {\n linkElement: Link;\n currentPage: number;\n onPageChange: (page: number) => void;\n pages: number[];\n stepNumberPrefix: string;\n truncationSeparatorAriaLabel?: string;\n} & (InternalNoLinkProps | InternalLinkProps);\n\nconst rootClassName = \"purpur-pagination-pages\";\n\nexport const PaginationPages = forwardRef<HTMLOListElement, PaginationPagesProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-pages\",\n linkElement: LinkElement,\n asLink,\n className,\n currentPage,\n hrefGetter,\n onPageChange,\n pages,\n stepNumberPrefix,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <ol className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {pages.flatMap((pageNumber: number, idx: number, pages: number[]) => {\n const TriggerComponent = (\n <PaginationPageTrigger\n {...(asLink\n ? { asLink: true, hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n })}\n linkElement={LinkElement}\n data-testid={`${dataTestId}-page-${pageNumber}`}\n key={pageNumber}\n onPageChange={onPageChange}\n selected={pageNumber === currentPage}\n stepNumberPrefix={stepNumberPrefix}\n pageNumber={pageNumber}\n />\n );\n return idx === 0 || pages[idx - 1] + 1 === pageNumber\n ? [TriggerComponent]\n : [\n <PaginationTruncationSeparator\n data-testid={`${dataTestId}-truncation-separator-${pageNumber}`}\n key={`${pageNumber}-separator`}\n aria-label={truncationSeparatorAriaLabel}\n />,\n TriggerComponent,\n ];\n })}\n </ol>\n );\n }\n);\n\nPaginationPages.displayName = \"PaginationPages\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-step-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationStepTriggerProps = Omit<BaseProps, \"children\"> & {\n linkElement: Link;\n children: ReactNode;\n disabled: boolean;\n onPageChange: (page: number) => void;\n pageToNavigateTo: number;\n isIconOnly: boolean;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-step-trigger\";\n\nexport const PaginationStepTrigger = forwardRef<HTMLDivElement, PaginationStepTriggerProps>(\n (\n {\n [\"aria-label\"]: ariaLabel,\n [\"data-testid\"]: dataTestId = \"purpur-pagination-step-trigger\",\n linkElement: LinkElement,\n asLink,\n children,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageToNavigateTo,\n isIconOnly,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--disabled`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-disabled-link`}\n >\n {children}\n </span>\n ) : (\n <LinkElement\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageToNavigateTo)}\n onClick={() => onPageChange(pageToNavigateTo)}\n >\n {children}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n {\n [`${rootClassName}__trigger-item--disabled`]: disabled,\n [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly,\n }\n )}\n data-testid={`${dataTestId}-button`}\n disabled={disabled}\n onClick={() => onPageChange(pageToNavigateTo)}\n type=\"button\"\n >\n {children}\n </button>\n )}\n </div>\n );\n }\n);\n\nPaginationStepTrigger.displayName = \"PaginationStepTrigger\";\n","import { useEffect, useState } from \"react\";\n\ntype UsePaginationPagesHook = {\n pages: number[];\n numberOfPages: number;\n};\n\nexport const usePaginationPages = (\n totalItems: number,\n pageSize: number,\n currentPage: number\n): UsePaginationPagesHook => {\n const [pages, setPages] = useState<number[]>([]);\n const [numberOfPages, setNumberOfPages] = useState<number>(0);\n\n useEffect(() => {\n const totalNumberOfPages = Math.ceil(totalItems / pageSize);\n setNumberOfPages(totalNumberOfPages);\n setPages(getPagesToDisplay(totalNumberOfPages, currentPage));\n }, [totalItems, pageSize, currentPage]);\n\n return {\n pages,\n numberOfPages,\n };\n};\n\nfunction getPagesToDisplay(totalNumberOfPages: number, currentPage: number): number[] {\n if (totalNumberOfPages <= 5) {\n return Array.from({ length: totalNumberOfPages }, (_, i) => i + 1);\n }\n const firstThreePages = [1, 2, 3];\n if (firstThreePages.includes(currentPage)) {\n return [...firstThreePages, 4, totalNumberOfPages];\n }\n const lastThreePages = [totalNumberOfPages - 2, totalNumberOfPages - 1, totalNumberOfPages];\n if (lastThreePages.includes(currentPage)) {\n return [1, totalNumberOfPages - 3, ...lastThreePages];\n }\n return [1, currentPage - 1, currentPage, currentPage + 1, totalNumberOfPages];\n}\n","import React, { forwardRef, useState } from \"react\";\nimport { IconArrowLeft } from \"@purpur/icon/arrow-left\";\nimport { IconArrowRight } from \"@purpur/icon/arrow-right\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination.module.scss\";\nimport { PaginationPageSelector } from \"./pagination-page-selector\";\nimport { PaginationPageSizeSelector } from \"./pagination-page-size-selector\";\nimport { PaginationPages } from \"./pagination-pages\";\nimport { PaginationStepTrigger } from \"./pagination-step-trigger\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePaginationPages } from \"./use-pagination-pages.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTexts = {\n nextButtonAriaLabel: string;\n /**\n * Omiting this and previousButtonText will result in an icon-only button.\n */\n nextButtonText?: string;\n /**\n * This is the divider word between the current page and the total number of pages.\n * For example, if the current page is 1 and the total number of pages is 10, the text will be \"1 of 10\".\n */\n outOfLabel: string;\n /**\n * This is a hidden label for the page selector\n */\n pageSelectorLabel: string;\n /**\n * This is the \"...\" text that is displayed when there are more pages than can be shown at once.\n */\n truncationSeparatorAriaLabel?: string;\n previousButtonAriaLabel: string;\n /**\n * Omiting this and nextButtonText will result in an icon-only button.\n */\n previousButtonText?: string;\n /**\n * This is a screen reader text that will be inserted before the current page number. For example, for step 1 it will say \"Go to step 1\".\n */\n stepNumberPrefix: string;\n};\n\nexport type PageSizeProps = {\n availablePageSizes: number[];\n pageSize?: number;\n /**\n * The label describing the page size select.\n */\n pageSizeLabel: string;\n};\n\nexport type NoPageSizeProps = {\n availablePageSizes?: never;\n pageSize?: number;\n pageSizeLabel?: never;\n};\n\nexport type PaginationProps = {\n currentPage: number;\n pageSelectorId?: string;\n totalItems: number;\n} & PaginationTexts &\n (PageSizeProps | NoPageSizeProps) &\n (LinkProps | NoLinkProps);\n\nconst rootClassName = \"purpur-pagination\";\n\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination\",\n linkElement = \"a\",\n asLink,\n availablePageSizes,\n className,\n currentPage = 1,\n hrefGetter,\n navigationFunction,\n nextButtonAriaLabel,\n nextButtonText,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n pageSize = 10,\n pageSizeLabel,\n previousButtonAriaLabel,\n previousButtonText,\n stepNumberPrefix,\n totalItems,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [_pageSize, _setPageSize] = useState(pageSize);\n const { pages, numberOfPages } = usePaginationPages(totalItems, _pageSize, currentPage);\n const isIconOnly = !previousButtonText && !nextButtonText;\n\n const _onPageChange = (page: number): void => {\n onPageChange?.({ currentPage: page, pageSize });\n };\n\n const _hrefGetter = (page: number): string => {\n return hrefGetter?.({ page, pageSize }) ?? \"\";\n };\n\n const _onPageSizeChange = (newPageSize: number): void => {\n _setPageSize(newPageSize);\n onPageChange?.({ currentPage: 1, pageSize: newPageSize });\n };\n\n const _navigationFunction = (page: number, url: string): void => {\n if (navigationFunction) {\n navigationFunction({ currentPage: page, pageSize: _pageSize, url });\n } else {\n navigateToPage(url);\n }\n };\n\n const linkProps = asLink\n ? { asLink: true as const, hrefGetter: _hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n };\n\n const ContainerTag = asLink ? \"nav\" : \"div\";\n\n if (!numberOfPages) {\n return null;\n }\n\n return (\n <ContainerTag className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx(`${rootClassName}__pagination-container`, {\n [`${rootClassName}__pagination-container--with-page-size-select`]: !!availablePageSizes,\n })}\n >\n <div className={cx(`${rootClassName}__page-navigation-container`)}>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={previousButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-previous-step-trigger`}\n disabled={currentPage === 1}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage - 1}\n isIconOnly={isIconOnly}\n >\n <IconArrowLeft size=\"sm\" />\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {previousButtonText}\n </span>\n {currentPage !== 1 && (\n <VisuallyHidden data-testid={`${dataTestId}-previous-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage - 1}`}\n </VisuallyHidden>\n )}\n </PaginationStepTrigger>\n <div className={cx(`${rootClassName}__page-trigger-container`)}>\n <PaginationPageSelector\n {...linkProps}\n className={cx(`${rootClassName}__page-selector`, {\n [`${rootClassName}__page-selector--visible`]: pages.length > 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-page-selector`}\n navigationFunction={_navigationFunction}\n numberOfPages={numberOfPages}\n onPageChange={_onPageChange}\n outOfLabel={outOfLabel}\n pageSelectorId={pageSelectorId}\n pageSelectorLabel={pageSelectorLabel}\n />\n <PaginationPages\n {...linkProps}\n linkElement={linkElement}\n className={cx(`${rootClassName}__pages`, {\n [`${rootClassName}__pages--visible`]: pages.length <= 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-pages`}\n stepNumberPrefix={stepNumberPrefix}\n onPageChange={_onPageChange}\n truncationSeparatorAriaLabel={truncationSeparatorAriaLabel}\n pages={pages}\n />\n </div>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={nextButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-next-step-trigger`}\n disabled={currentPage === numberOfPages}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage + 1}\n isIconOnly={isIconOnly}\n >\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {nextButtonText}\n </span>\n {currentPage !== numberOfPages && (\n <VisuallyHidden data-testid={`${dataTestId}-next-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage + 1}`}\n </VisuallyHidden>\n )}\n <IconArrowRight size=\"sm\" />\n </PaginationStepTrigger>\n </div>\n {availablePageSizes && (\n <div className={cx(`${rootClassName}__page-size-select-container`)}>\n <PaginationPageSizeSelector\n {...(asLink\n ? { asLink: true, hrefGetter, navigationFunction }\n : { asLink: undefined as never, hrefGetter: undefined as never })}\n availablePageSizes={availablePageSizes}\n className={cx(`${rootClassName}__page-size-selector`)}\n data-testid={`${dataTestId}-page-size-selector`}\n onPageSizeChange={_onPageSizeChange}\n pageSize={_pageSize}\n pageSizeLabel={pageSizeLabel}\n />\n </div>\n )}\n </div>\n </ContainerTag>\n );\n }\n);\n\nPagination.displayName = \"Pagination\";\n"],"names":["navigateToPage","url","usePageOptions","numberOfPages","useMemo","_","i","cx","c","styles","rootClassName","PaginationPageSelector","forwardRef","dataTestId","asLink","className","currentPage","hrefGetter","navigationFunction","onPageChange","outOfLabel","pageSelectorId","pageSelectorLabel","props","ref","id","useId","classes","options","onSelectionChange","event","page","jsxs","jsx","VisuallyHidden","Label","Select","Paragraph","usePageSizeOptions","availablePageSizes","pageSize","PaginationPageSizeSelector","onPageSizeChange","pageSizeLabel","selectId","selectedPageSize","PaginationPageTrigger","LinkElement","disabled","pageNumber","selected","stepNumberPrefix","PaginationTruncationSeparator","ariaLabel","PaginationPages","pages","truncationSeparatorAriaLabel","idx","TriggerComponent","createElement","PaginationStepTrigger","children","pageToNavigateTo","isIconOnly","usePaginationPages","totalItems","setPages","useState","setNumberOfPages","useEffect","totalNumberOfPages","getPagesToDisplay","firstThreePages","lastThreePages","Pagination","linkElement","nextButtonAriaLabel","nextButtonText","previousButtonAriaLabel","previousButtonText","_pageSize","_setPageSize","_onPageChange","_hrefGetter","_onPageSizeChange","newPageSize","_navigationFunction","linkProps","ContainerTag","IconArrowLeft","IconArrowRight"],"mappings":"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"}
|
package/dist/pagination.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./pagination-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./pagination-rFRdkHII.js");exports.Pagination=i.Pagination;
|
|
2
2
|
//# sourceMappingURL=pagination.cjs.js.map
|
package/dist/pagination.es.js
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const l=require("react/jsx-runtime"),n=require("./bind-DeUYJ6m9.js"),s={"purpur-paragraph":"_purpur-paragraph_1uo13_1","purpur-paragraph--disabled":"_purpur-paragraph--disabled_1uo13_7","purpur-paragraph--hyphens":"_purpur-paragraph--hyphens_1uo13_10","purpur-paragraph--negative":"_purpur-paragraph--negative_1uo13_13","purpur-paragraph--paragraph-100":"_purpur-paragraph--paragraph-100_1uo13_19","purpur-paragraph--paragraph-100-medium":"_purpur-paragraph--paragraph-100-medium_1uo13_25","purpur-paragraph--paragraph-100-bold":"_purpur-paragraph--paragraph-100-bold_1uo13_32","purpur-paragraph--paragraph-200":"_purpur-paragraph--paragraph-200_1uo13_39","purpur-paragraph--preamble-100":"_purpur-paragraph--preamble-100_1uo13_45","purpur-paragraph--preamble-200":"_purpur-paragraph--preamble-200_1uo13_51","purpur-paragraph--additional-100":"_purpur-paragraph--additional-100_1uo13_57","purpur-paragraph--additional-100-medium":"_purpur-paragraph--additional-100-medium_1uo13_63","purpur-paragraph--additional-100-bold":"_purpur-paragraph--additional-100-bold_1uo13_70","purpur-paragraph--overline-100":"_purpur-paragraph--overline-100_1uo13_77","purpur-paragraph--overline-200":"_purpur-paragraph--overline-200_1uo13_85"},t=n.c.bind(s),r={PARAGRAPH100:"paragraph-100",PARAGRAPH100MEDIUM:"paragraph-100-medium",PARAGRAPH100BOLD:"paragraph-100-bold",PARAGRAPH200:"paragraph-200",PREAMBLE100:"preamble-100",PREAMBLE200:"preamble-200",ADDITIONAL100:"additional-100",ADDITIONAL100MEDIUM:"additional-100-medium",ADDITIONAL100BOLD:"additional-100-bold",OVERLINE100:"overline-100",OVERLINE200:"overline-200"},a="purpur-paragraph",p=({children:u,className:e,disabled:h,enableHyphenation:g=!1,negative:o=!1,variant:i=r.PARAGRAPH100,..._})=>{const d=t(e,a,`${a}--${i}`,{[`${a}--hyphens`]:g,[`${a}--disabled`]:h,[`${a}--negative`]:o});return l.jsx("p",{..._,className:d,children:u})};p.displayName="Paragraph";exports.Paragraph=p;exports.ParagraphVariant=r;
|
|
2
|
+
//# sourceMappingURL=paragraph-By4jMjnH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph-
|
|
1
|
+
{"version":3,"file":"paragraph-By4jMjnH.js","sources":["../../../components/paragraph/src/paragraph.tsx"],"sourcesContent":["import React, { type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./paragraph.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport const ParagraphVariant = {\n PARAGRAPH100: \"paragraph-100\",\n PARAGRAPH100MEDIUM: \"paragraph-100-medium\",\n PARAGRAPH100BOLD: \"paragraph-100-bold\",\n PARAGRAPH200: \"paragraph-200\",\n PREAMBLE100: \"preamble-100\",\n PREAMBLE200: \"preamble-200\",\n ADDITIONAL100: \"additional-100\",\n ADDITIONAL100MEDIUM: \"additional-100-medium\",\n ADDITIONAL100BOLD: \"additional-100-bold\",\n OVERLINE100: \"overline-100\",\n OVERLINE200: \"overline-200\",\n} as const;\n\nexport type ParagraphVariant = (typeof ParagraphVariant)[keyof typeof ParagraphVariant];\n\nexport type ParagraphProps = Omit<BaseProps<\"p\">, \"children\"> & {\n children: ReactNode;\n enableHyphenation?: boolean;\n negative?: boolean;\n disabled?: boolean;\n variant?: ParagraphVariant;\n};\n\nconst rootClassName = \"purpur-paragraph\";\n\nexport const Paragraph = ({\n children,\n className,\n disabled,\n enableHyphenation = false,\n negative = false,\n variant = ParagraphVariant.PARAGRAPH100,\n ...props\n}: ParagraphProps) => {\n const classes = cx(className, rootClassName, `${rootClassName}--${variant}`, {\n [`${rootClassName}--hyphens`]: enableHyphenation,\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--negative`]: negative,\n });\n\n return (\n <p {...props} className={classes}>\n {children}\n </p>\n );\n};\n\nParagraph.displayName = \"Paragraph\";\n"],"names":["cx","c","styles","ParagraphVariant","rootClassName","Paragraph","children","className","disabled","enableHyphenation","negative","variant","props","classes"],"mappings":"stCAMMA,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAEXC,EAAmB,CAC9B,aAAc,gBACd,mBAAoB,uBACpB,iBAAkB,qBAClB,aAAc,gBACd,YAAa,eACb,YAAa,eACb,cAAe,iBACf,oBAAqB,wBACrB,kBAAmB,sBACnB,YAAa,eACb,YAAa,cACf,EAYMC,EAAgB,mBAETC,EAAY,CAAC,CACxB,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,kBAAAC,EAAoB,GACpB,SAAAC,EAAW,GACX,QAAAC,EAAUR,EAAiB,aAC3B,GAAGS,CACL,IAAsB,CACpB,MAAMC,EAAUb,EAAGO,EAAWH,EAAe,GAAGA,CAAa,KAAKO,CAAO,GAAI,CAC3E,CAAC,GAAGP,CAAa,WAAW,EAAGK,EAC/B,CAAC,GAAGL,CAAa,YAAY,EAAGI,EAChC,CAAC,GAAGJ,CAAa,YAAY,EAAGM,CAAA,CACjC,EAED,aACG,IAAA,CAAG,GAAGE,EAAO,UAAWC,EACtB,SAAAP,EACH,CAEJ,EAEAD,EAAU,YAAc"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { c as
|
|
3
|
-
const
|
|
4
|
-
"purpur-paragraph": "_purpur-
|
|
5
|
-
"purpur-paragraph--disabled": "_purpur-paragraph--
|
|
6
|
-
"purpur-paragraph--hyphens": "_purpur-paragraph--
|
|
7
|
-
"purpur-paragraph--negative": "_purpur-paragraph--
|
|
8
|
-
"purpur-paragraph--paragraph-100": "_purpur-paragraph--paragraph-
|
|
9
|
-
"purpur-paragraph--paragraph-100-medium": "_purpur-paragraph--paragraph-100-
|
|
10
|
-
"purpur-paragraph--paragraph-100-bold": "_purpur-paragraph--paragraph-100-
|
|
11
|
-
"purpur-paragraph--paragraph-200": "_purpur-paragraph--paragraph-
|
|
12
|
-
"purpur-paragraph--preamble-100": "_purpur-paragraph--preamble-
|
|
13
|
-
"purpur-paragraph--preamble-200": "_purpur-paragraph--preamble-
|
|
14
|
-
"purpur-paragraph--additional-100": "_purpur-paragraph--additional-
|
|
15
|
-
"purpur-paragraph--additional-100-medium": "_purpur-paragraph--additional-100-
|
|
16
|
-
"purpur-paragraph--additional-100-bold": "_purpur-paragraph--additional-100-
|
|
17
|
-
"purpur-paragraph--overline-100": "_purpur-paragraph--overline-
|
|
18
|
-
"purpur-paragraph--overline-200": "_purpur-paragraph--overline-
|
|
19
|
-
}, n =
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { c as d } from "./bind-CU-R61T-.mjs";
|
|
3
|
+
const l = {
|
|
4
|
+
"purpur-paragraph": "_purpur-paragraph_1uo13_1",
|
|
5
|
+
"purpur-paragraph--disabled": "_purpur-paragraph--disabled_1uo13_7",
|
|
6
|
+
"purpur-paragraph--hyphens": "_purpur-paragraph--hyphens_1uo13_10",
|
|
7
|
+
"purpur-paragraph--negative": "_purpur-paragraph--negative_1uo13_13",
|
|
8
|
+
"purpur-paragraph--paragraph-100": "_purpur-paragraph--paragraph-100_1uo13_19",
|
|
9
|
+
"purpur-paragraph--paragraph-100-medium": "_purpur-paragraph--paragraph-100-medium_1uo13_25",
|
|
10
|
+
"purpur-paragraph--paragraph-100-bold": "_purpur-paragraph--paragraph-100-bold_1uo13_32",
|
|
11
|
+
"purpur-paragraph--paragraph-200": "_purpur-paragraph--paragraph-200_1uo13_39",
|
|
12
|
+
"purpur-paragraph--preamble-100": "_purpur-paragraph--preamble-100_1uo13_45",
|
|
13
|
+
"purpur-paragraph--preamble-200": "_purpur-paragraph--preamble-200_1uo13_51",
|
|
14
|
+
"purpur-paragraph--additional-100": "_purpur-paragraph--additional-100_1uo13_57",
|
|
15
|
+
"purpur-paragraph--additional-100-medium": "_purpur-paragraph--additional-100-medium_1uo13_63",
|
|
16
|
+
"purpur-paragraph--additional-100-bold": "_purpur-paragraph--additional-100-bold_1uo13_70",
|
|
17
|
+
"purpur-paragraph--overline-100": "_purpur-paragraph--overline-100_1uo13_77",
|
|
18
|
+
"purpur-paragraph--overline-200": "_purpur-paragraph--overline-200_1uo13_85"
|
|
19
|
+
}, n = d.bind(l), s = {
|
|
20
20
|
PARAGRAPH100: "paragraph-100",
|
|
21
21
|
PARAGRAPH100MEDIUM: "paragraph-100-medium",
|
|
22
22
|
PARAGRAPH100BOLD: "paragraph-100-bold",
|
|
@@ -35,18 +35,18 @@ const o = {
|
|
|
35
35
|
enableHyphenation: h = !1,
|
|
36
36
|
negative: e = !1,
|
|
37
37
|
variant: g = s.PARAGRAPH100,
|
|
38
|
-
...
|
|
38
|
+
...o
|
|
39
39
|
}) => {
|
|
40
|
-
const
|
|
40
|
+
const _ = n(p, a, `${a}--${g}`, {
|
|
41
41
|
[`${a}--hyphens`]: h,
|
|
42
42
|
[`${a}--disabled`]: u,
|
|
43
43
|
[`${a}--negative`]: e
|
|
44
44
|
});
|
|
45
|
-
return /* @__PURE__ */
|
|
45
|
+
return /* @__PURE__ */ i("p", { ...o, className: _, children: r });
|
|
46
46
|
};
|
|
47
47
|
m.displayName = "Paragraph";
|
|
48
48
|
export {
|
|
49
49
|
m as P,
|
|
50
50
|
s as a
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=paragraph-
|
|
52
|
+
//# sourceMappingURL=paragraph-DSxXmX_0.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph-
|
|
1
|
+
{"version":3,"file":"paragraph-DSxXmX_0.mjs","sources":["../../../components/paragraph/src/paragraph.tsx"],"sourcesContent":["import React, { type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./paragraph.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport const ParagraphVariant = {\n PARAGRAPH100: \"paragraph-100\",\n PARAGRAPH100MEDIUM: \"paragraph-100-medium\",\n PARAGRAPH100BOLD: \"paragraph-100-bold\",\n PARAGRAPH200: \"paragraph-200\",\n PREAMBLE100: \"preamble-100\",\n PREAMBLE200: \"preamble-200\",\n ADDITIONAL100: \"additional-100\",\n ADDITIONAL100MEDIUM: \"additional-100-medium\",\n ADDITIONAL100BOLD: \"additional-100-bold\",\n OVERLINE100: \"overline-100\",\n OVERLINE200: \"overline-200\",\n} as const;\n\nexport type ParagraphVariant = (typeof ParagraphVariant)[keyof typeof ParagraphVariant];\n\nexport type ParagraphProps = Omit<BaseProps<\"p\">, \"children\"> & {\n children: ReactNode;\n enableHyphenation?: boolean;\n negative?: boolean;\n disabled?: boolean;\n variant?: ParagraphVariant;\n};\n\nconst rootClassName = \"purpur-paragraph\";\n\nexport const Paragraph = ({\n children,\n className,\n disabled,\n enableHyphenation = false,\n negative = false,\n variant = ParagraphVariant.PARAGRAPH100,\n ...props\n}: ParagraphProps) => {\n const classes = cx(className, rootClassName, `${rootClassName}--${variant}`, {\n [`${rootClassName}--hyphens`]: enableHyphenation,\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--negative`]: negative,\n });\n\n return (\n <p {...props} className={classes}>\n {children}\n </p>\n );\n};\n\nParagraph.displayName = \"Paragraph\";\n"],"names":["cx","c","styles","ParagraphVariant","rootClassName","Paragraph","children","className","disabled","enableHyphenation","negative","variant","props","classes"],"mappings":";;;;;;;;;;;;;;;;;;GAMMA,IAAKC,EAAE,KAAKC,CAAM,GAEXC,IAAmB;AAAA,EAC9B,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EACb,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,aAAa;AACf,GAYMC,IAAgB,oBAETC,IAAY,CAAC;AAAA,EACxB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,UAAAC,IAAW;AAAA,EACX,SAAAC,IAAUR,EAAiB;AAAA,EAC3B,GAAGS;AACL,MAAsB;AACpB,QAAMC,IAAUb,EAAGO,GAAWH,GAAe,GAAGA,CAAa,KAAKO,CAAO,IAAI;AAAA,IAC3E,CAAC,GAAGP,CAAa,WAAW,GAAGK;AAAA,IAC/B,CAAC,GAAGL,CAAa,YAAY,GAAGI;AAAA,IAChC,CAAC,GAAGJ,CAAa,YAAY,GAAGM;AAAA,EAAA,CACjC;AAED,2BACG,KAAA,EAAG,GAAGE,GAAO,WAAWC,GACtB,UAAAP,GACH;AAEJ;AAEAD,EAAU,cAAc;"}
|
package/dist/paragraph.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./paragraph-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./paragraph-By4jMjnH.js");exports.Paragraph=a.Paragraph;exports.ParagraphVariant=a.ParagraphVariant;
|
|
2
2
|
//# sourceMappingURL=paragraph.cjs.js.map
|
package/dist/paragraph.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const a=require("react/jsx-runtime"),X=require("./button-DmybVApa.js"),l=require("react"),dt=require("./variables-Buqm4JZc.js"),y=require("./index-DlMXYAr3.js"),U=require("./index-_XxjJPRD.js"),$=require("./index-kcwFA4Dv.js"),M=require("./index-DA01QPpC.js"),ft=require("./index-BtWPC8xc.js"),R=require("./floating-ui.react-dom-Cc_YSprQ.js"),ht=require("./index-DOFLOnao.js"),we=require("./index-CleLBinl.js"),gt=require("./close.es-VL3lKi1O.js"),xe=require("./paragraph-BsI53OR0.js"),H=require("./bind-DeUYJ6m9.js"),vt=require("./heading-drD5ugCC.js");function _t(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const g=_t(l),te=l.createContext(null),re=()=>{const e=l.useContext(te);if(!e)throw new Error("usePopoverFlow must be used within a PopoverFlow provider");return e},B=()=>l.useContext(te),mt=({children:e,initialStep:t=1,onComplete:r,onDismiss:o,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u=0})=>{const[v,d]=l.useState(t),[h,m]=l.useState(new Set),x=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.add(w),S})},[]),f=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.delete(w),S})},[]),O=l.useCallback(()=>{d(w=>{const C=w+1;return C>h.size?(r?.(),w):C})},[h.size,r]),j=l.useCallback(()=>{d(w=>Math.max(1,w-1))},[]),N=l.useCallback(()=>{d(0),o?.()},[o]),E=l.useMemo(()=>({currentStep:v,totalSteps:h.size,next:O,back:j,dismiss:N,registerStep:x,unregisterStep:f,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u}),[v,h.size,O,j,N,x,f,n,s,i,c,p,u]);return a.jsx(te.Provider,{value:E,children:e})},oe=l.createContext(null),K=()=>l.useContext(oe),Pe=l.createContext({negative:!1}),ne=()=>l.useContext(Pe),wt=150,_e={MAX_MD:`(max-width: ${dt.purpurBreakpointMd})`},se=()=>{const e=window.matchMedia(_e.MAX_MD);function t(){o(e.matches)}const[r,o]=l.useState(()=>typeof window>"u"?!1:window.matchMedia(_e.MAX_MD).matches),n=l.useCallback(()=>{let s;return()=>{clearTimeout(s),s=setTimeout(()=>t(),wt)}},[t]);return l.useEffect(()=>{if(!(typeof window>"u"))return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[n]),{isMdOrSmaller:r}},ie=({children:e,onClick:t})=>{const{back:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"secondary",onClick:i,negative:s,fullWidth:n,children:e})};ie.displayName="PopoverBack";var xt="Arrow",Ce=g.forwardRef((e,t)=>{const{children:r,width:o=10,height:n=5,...s}=e;return a.jsx(y.Primitive.svg,{...s,ref:t,width:o,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ce.displayName=xt;var Pt=Ce,ae="Popper",[Se,ye]=$.createContextScope(ae),[Ct,je]=Se(ae),Oe=e=>{const{__scopePopper:t,children:r}=e,[o,n]=g.useState(null);return a.jsx(Ct,{scope:t,anchor:o,onAnchorChange:n,children:r})};Oe.displayName=ae;var Re="PopperAnchor",be=g.forwardRef((e,t)=>{const{__scopePopper:r,virtualRef:o,...n}=e,s=je(Re,r),i=g.useRef(null),c=U.useComposedRefs(t,i),p=g.useRef(null);return g.useEffect(()=>{const u=p.current;p.current=o?.current||i.current,u!==p.current&&s.onAnchorChange(p.current)}),o?null:a.jsx(y.Primitive.div,{...n,ref:c})});be.displayName=Re;var ce="PopperContent",[St,yt]=Se(ce),Ae=g.forwardRef((e,t)=>{const{__scopePopper:r,side:o="bottom",sideOffset:n=0,align:s="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:p=!0,collisionBoundary:u=[],collisionPadding:v=0,sticky:d="partial",hideWhenDetached:h=!1,updatePositionStrategy:m="optimized",onPlaced:x,...f}=e,O=je(ce,r),[j,N]=g.useState(null),E=U.useComposedRefs(t,I=>N(I)),[w,C]=g.useState(null),S=ht.useSize(w),V=S?.width??0,W=S?.height??0,Z=o+(s!=="center"?"-"+s:""),Q=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},_=Array.isArray(u)?u:[u],P=_.length>0,k={padding:Q,boundary:_.filter(Ot),altBoundary:P},{refs:et,floatingStyles:fe,placement:tt,isPositioned:L,middlewareData:F}=R.useFloating({strategy:"fixed",placement:Z,whileElementsMounted:(...I)=>R.autoUpdate(...I,{animationFrame:m==="always"}),elements:{reference:O.anchor},middleware:[R.offset({mainAxis:n+W,alignmentAxis:i}),p&&R.shift({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?R.limitShift():void 0,...k}),p&&R.flip({...k}),R.size({...k,apply:({elements:I,rects:ve,availableWidth:ct,availableHeight:pt})=>{const{width:lt,height:ut}=ve.reference,Y=I.floating.style;Y.setProperty("--radix-popper-available-width",`${ct}px`),Y.setProperty("--radix-popper-available-height",`${pt}px`),Y.setProperty("--radix-popper-anchor-width",`${lt}px`),Y.setProperty("--radix-popper-anchor-height",`${ut}px`)}}),w&&R.arrow({element:w,padding:c}),Rt({arrowWidth:V,arrowHeight:W}),h&&R.hide({strategy:"referenceHidden",...k})]}),[he,rt]=ke(tt),ge=$.useCallbackRef(x);$.useLayoutEffect2(()=>{L&&ge?.()},[L,ge]);const ot=F.arrow?.x,nt=F.arrow?.y,st=F.arrow?.centerOffset!==0,[it,at]=g.useState();return $.useLayoutEffect2(()=>{j&&at(window.getComputedStyle(j).zIndex)},[j]),a.jsx("div",{ref:et.setFloating,"data-radix-popper-content-wrapper":"",style:{...fe,transform:L?fe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:it,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(" "),...F.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(St,{scope:r,placedSide:he,onArrowChange:C,arrowX:ot,arrowY:nt,shouldHideArrow:st,children:a.jsx(y.Primitive.div,{"data-side":he,"data-align":rt,...f,ref:E,style:{...f.style,animation:L?void 0:"none"}})})})});Ae.displayName=ce;var Ne="PopperArrow",jt={top:"bottom",right:"left",bottom:"top",left:"right"},Ee=g.forwardRef(function(t,r){const{__scopePopper:o,...n}=t,s=yt(Ne,o),i=jt[s.placedSide];return a.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:a.jsx(Pt,{...n,ref:r,style:{...n.style,display:"block"}})})});Ee.displayName=Ne;function Ot(e){return e!==null}var Rt=e=>({name:"transformOrigin",options:e,fn(t){const{placement:r,rects:o,middlewareData:n}=t,i=n.arrow?.centerOffset!==0,c=i?0:e.arrowWidth,p=i?0:e.arrowHeight,[u,v]=ke(r),d={start:"0%",center:"50%",end:"100%"}[v],h=(n.arrow?.x??0)+c/2,m=(n.arrow?.y??0)+p/2;let x="",f="";return u==="bottom"?(x=i?d:`${h}px`,f=`${-p}px`):u==="top"?(x=i?d:`${h}px`,f=`${o.floating.height+p}px`):u==="right"?(x=`${-p}px`,f=i?d:`${m}px`):u==="left"&&(x=`${o.floating.width+p}px`,f=i?d:`${m}px`),{data:{x,y:f}}}});function ke(e){const[t,r="center"]=e.split("-");return[t,r]}var bt=Oe,Fe=be,At=Ae,Nt=Ee,G="Popover",[Te]=$.createContextScope(G,[ye]),z=ye(),[Et,A]=Te(G),Me=e=>{const{__scopePopover:t,children:r,open:o,defaultOpen:n,onOpenChange:s,modal:i=!1}=e,c=z(t),p=g.useRef(null),[u,v]=g.useState(!1),[d,h]=y.useControllableState({prop:o,defaultProp:n??!1,onChange:s,caller:G});return a.jsx(bt,{...c,children:a.jsx(Et,{scope:t,contentId:ft.useId(),triggerRef:p,open:d,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),hasCustomAnchor:u,onCustomAnchorAdd:g.useCallback(()=>v(!0),[]),onCustomAnchorRemove:g.useCallback(()=>v(!1),[]),modal:i,children:r})})};Me.displayName=G;var De="PopoverAnchor",kt=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(De,r),s=z(r),{onCustomAnchorAdd:i,onCustomAnchorRemove:c}=n;return g.useEffect(()=>(i(),()=>c()),[i,c]),a.jsx(Fe,{...s,...o,ref:t})});kt.displayName=De;var Ie="PopoverTrigger",$e=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(Ie,r),s=z(r),i=U.useComposedRefs(t,n.triggerRef),c=a.jsx(y.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":Ye(n.open),...o,ref:i,onClick:y.composeEventHandlers(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?c:a.jsx(Fe,{asChild:!0,...s,children:c})});$e.displayName=Ie;var pe="PopoverPortal",[Ft,Tt]=Te(pe,{forceMount:void 0}),He=e=>{const{__scopePopover:t,forceMount:r,children:o,container:n}=e,s=A(pe,t);return a.jsx(Ft,{scope:t,forceMount:r,children:a.jsx(we.Presence,{present:r||s.open,children:a.jsx(M.Portal,{asChild:!0,container:n,children:o})})})};He.displayName=pe;var D="PopoverContent",Be=g.forwardRef((e,t)=>{const r=Tt(D,e.__scopePopover),{forceMount:o=r.forceMount,...n}=e,s=A(D,e.__scopePopover);return a.jsx(we.Presence,{present:o||s.open,children:s.modal?a.jsx(Dt,{...n,ref:t}):a.jsx(It,{...n,ref:t})})});Be.displayName=D;var Mt=y.createSlot("PopoverContent.RemoveScroll"),Dt=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(null),n=U.useComposedRefs(t,o),s=g.useRef(!1);return g.useEffect(()=>{const i=o.current;if(i)return M.hideOthers(i)},[]),a.jsx(M.ReactRemoveScroll,{as:Mt,allowPinchZoom:!0,children:a.jsx(ze,{...e,ref:n,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:y.composeEventHandlers(e.onCloseAutoFocus,i=>{i.preventDefault(),s.current||r.triggerRef.current?.focus()}),onPointerDownOutside:y.composeEventHandlers(e.onPointerDownOutside,i=>{const c=i.detail.originalEvent,p=c.button===0&&c.ctrlKey===!0,u=c.button===2||p;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:y.composeEventHandlers(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1})})})}),It=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(!1),n=g.useRef(!1);return a.jsx(ze,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(o.current||r.triggerRef.current?.focus(),s.preventDefault()),o.current=!1,n.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(o.current=!0,s.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const i=s.target;r.triggerRef.current?.contains(i)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&n.current&&s.preventDefault()}})}),ze=g.forwardRef((e,t)=>{const{__scopePopover:r,trapFocus:o,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:i,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onInteractOutside:v,...d}=e,h=A(D,r),m=z(r);return M.useFocusGuards(),a.jsx(M.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:n,onUnmountAutoFocus:s,children:a.jsx(M.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:v,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onDismiss:()=>h.onOpenChange(!1),children:a.jsx(At,{"data-state":Ye(h.open),role:"dialog",id:h.contentId,...m,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),qe="PopoverClose",We=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(qe,r);return a.jsx(y.Primitive.button,{type:"button",...o,ref:t,onClick:y.composeEventHandlers(e.onClick,()=>n.onOpenChange(!1))})});We.displayName=qe;var $t="PopoverArrow",Le=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=z(r);return a.jsx(Nt,{...n,...o,ref:t})});Le.displayName=$t;function Ye(e){return e?"open":"closed"}var Xe=Me,Ht=$e,Bt=He,zt=Be,Ue=We,qt=Le;const le=({children:e,asChild:t,onClick:r,variant:o="primary",dismiss:n=!0,fullWidth:s})=>{const i=B(),{isMdOrSmaller:c}=se(),{negative:p}=ne(),u=!p,v=()=>{r?.(),n&&i?.dismiss()},d=s??c,h=t?e:a.jsx(X.Button,{variant:o,size:"sm",fullWidth:d,negative:u,onClick:v,children:e});return n?a.jsx(Ue,{asChild:!0,children:h}):h};le.displayName="PopoverButton";const Wt="_highlightState1_1w9je_1",Lt="_fadeIn_1w9je_1",Yt="_slideFromTop_1w9je_1",Xt="_slideFromBottom_1w9je_1",Ut="_slideFromLeft_1w9je_1",Kt="_slideFromRight_1w9je_1",Gt="_fadeOut_1w9je_1",Vt="_slideToTop_1w9je_1",Zt="_slideToBottom_1w9je_1",Qt="_slideToLeft_1w9je_1",Jt="_slideToRight_1w9je_1",q={"purpur-popover__trigger":"_purpur-popover__trigger_1w9je_1","purpur-popover__trigger-highlight":"_purpur-popover__trigger-highlight_1w9je_5","purpur-popover__trigger-highlight--state1":"_purpur-popover__trigger-highlight--state1_1w9je_14",highlightState1:Wt,"purpur-popover__trigger-highlight--negative":"_purpur-popover__trigger-highlight--negative_1w9je_29","purpur-popover__trigger-highlight--state2":"_purpur-popover__trigger-highlight--state2_1w9je_33","purpur-popover__inner":"_purpur-popover__inner_1w9je_45","purpur-popover__content":"_purpur-popover__content_1w9je_52",fadeIn:Lt,slideFromTop:Yt,slideFromBottom:Xt,slideFromLeft:Ut,slideFromRight:Kt,fadeOut:Gt,slideToTop:Vt,slideToBottom:Zt,slideToLeft:Qt,slideToRight:Jt,"purpur-popover__arrow":"_purpur-popover__arrow_1w9je_103","purpur-popover__body":"_purpur-popover__body_1w9je_106","purpur-popover__icon":"_purpur-popover__icon_1w9je_107","purpur-popover__steps":"_purpur-popover__steps_1w9je_108","purpur-popover__title":"_purpur-popover__title_1w9je_109","purpur-popover__content--negative":"_purpur-popover__content--negative_1w9je_112","purpur-popover__header-content":"_purpur-popover__header-content_1w9je_124","purpur-popover__close":"_purpur-popover__close_1w9je_137","purpur-popover__footer":"_purpur-popover__footer_1w9je_142","purpur-popover__footer-button-group":"_purpur-popover__footer-button-group_1w9je_155"},er=H.c.bind(q),Ke=()=>{const e=re(),r=K()?.walkthroughStep||e.currentStep,{totalSteps:o,separatorText:n,stepText:s}=e;return a.jsx(a.Fragment,{children:a.jsxs(xe.Paragraph,{className:er("purpur-popover__steps"),role:"status","aria-live":"polite","aria-atomic":"true",children:[s," ",r," ",n," ",o]})})};Ke.displayName="PopoverSteps";const me=H.c.bind(q),ue=({children:e,className:t})=>{const r=B(),o=K(),n=r&&o&&o.walkthroughStep>0;return a.jsxs("div",{className:me("purpur-popover__footer",t),children:[n&&a.jsx(Ke,{}),a.jsx("div",{className:me("purpur-popover__footer-button-group"),children:e})]})};ue.displayName="PopoverFooter";const J=H.c.bind(q),Ge=l.forwardRef(({title:e,icon:t},r)=>a.jsxs("div",{ref:r,className:J("purpur-popover__header-content"),children:[t&&a.jsx("span",{className:J("purpur-popover__icon"),children:t}),a.jsx(vt.Heading,{tag:"h2",variant:"title-100",className:J("purpur-popover__title"),id:"popover-heading",children:e})]}));Ge.displayName="PopoverHeader";const de=({children:e,onClick:t})=>{const{next:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"primary",onClick:i,negative:s,fullWidth:n,children:e})};de.displayName="PopoverNext";const T=H.c.bind(q),Ve=l.forwardRef(({children:e,className:t,beakPosition:r="down",align:o="center",alignOffset:n=0,sideOffset:s=5,negative:i=!1,closeIconAriaLabel:c,title:p,icon:u,body:v,onAction:d,zIndex:h=210,...m},x)=>{const f=B(),O=K(),j=l.useRef(null),E={up:"bottom",right:"left",down:"top",left:"right",none:"bottom"}[r],w=r!=="none";let C=e;if(f&&!e){const _=O?.walkthroughStep||f.currentStep,P=_===1,k=_===f.totalSteps;C=a.jsxs(ue,{children:[!P&&a.jsx(ie,{onClick:()=>d?.({type:"back",step:_}),children:f.backLabel}),k?a.jsx(le,{onClick:()=>d?.({type:"finish",step:_}),dismiss:!0,children:f.finishLabel}):a.jsx(de,{onClick:()=>d?.({type:"next",step:_}),children:f.nextLabel})]})}const S=_=>{if(_.preventDefault(),f){const P=_.currentTarget;setTimeout(()=>{P.setAttribute("tabindex","-1"),P.focus()},0)}m.onOpenAutoFocus?.(_)},V=_=>{f&&_.preventDefault(),m.onCloseAutoFocus?.(_)},W=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Z=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Q=_=>{if(O?.disableClickOutside){_.preventDefault();return}if(f){const P=_.target;P.closest("[role='dialog']")||P.closest(".purpur-popover__trigger")||P.closest("button[aria-haspopup='dialog']")||(d?.({type:"dismiss",step:f.currentStep}),setTimeout(()=>{f.dismiss()},0))}};return a.jsx(Bt,{children:a.jsxs(zt,{"data-testid":"popover-content",role:"dialog","aria-modal":"true","aria-labelledby":m["aria-label"]?void 0:"popover-heading",ref:x,side:E,sideOffset:s,align:o,alignOffset:n,style:{"--popover-z-index":h},className:T("purpur-popover__content",{"purpur-popover__content--negative":i},t),onOpenAutoFocus:S,onCloseAutoFocus:V,onEscapeKeyDown:Z,onInteractOutside:Q,...m,children:[a.jsxs(Pe.Provider,{value:{negative:i},children:[a.jsxs("div",{className:T("purpur-popover__inner"),children:[a.jsx(Ge,{ref:j,title:p,icon:u}),a.jsx(xe.Paragraph,{className:T("purpur-popover__body"),children:v})]}),C,a.jsx(Ue,{asChild:!0,onClick:W,children:a.jsx(X.Button,{variant:i?"text":"tertiary-purple",size:"sm","aria-label":c,className:T("purpur-popover__close"),negative:!i,iconOnly:!0,children:a.jsx(gt.r,{size:"xs",className:T("purpur-popover__icon")})})})]}),w&&a.jsx(qt,{className:T("purpur-popover__arrow"),"aria-hidden":"true",tabIndex:-1})]})})});Ve.displayName="PopoverContent";const Ze=({children:e,open:t,defaultOpen:r=!1,onOpenChange:o,disableClickOutside:n,...s})=>{const[i,c]=l.useState(r),p=t!==void 0,u=p?t:i,v=d=>{p||c(d),o?.(d)};return a.jsx(Xe,{open:u,onOpenChange:v,...s,children:a.jsx(oe.Provider,{value:{isOpen:u,walkthroughStep:0,disableClickOutside:n},children:e})})};Ze.displayName="PopoverStandalone";const tr=e=>{const t=l.useRef(null),r=l.useCallback(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)},[]);return{scrollToElement:l.useCallback((n,s=600)=>{const i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,c=n.getBoundingClientRect(),p=c.top+window.pageYOffset,u=c.height,v=window.innerHeight;let d=p-v/2+u/2;const h=document.documentElement.scrollHeight,m=Math.max(0,h-v);if(d=Math.max(0,Math.min(d,m)),i){window.scrollTo(0,d),e?.();return}const x=window.pageYOffset,f=d-x,O=performance.now(),j=N=>{const E=N-O,w=Math.min(E/s,1),C=w<.5?2*w*w:1-Math.pow(-2*w+2,2)/2,S=x+f*C;window.scrollTo(0,S),w<1?t.current=requestAnimationFrame(j):(t.current=null,e?.())};r(),t.current=requestAnimationFrame(j)},[e,r]),cancelScroll:r}};function rr(e){const t=l.useRef(null),r=K(),o=B(),n=l.useRef(!1),{scrollToElement:s,cancelScroll:i}=tr(r?.onScrollComplete);return l.useEffect(()=>{typeof e=="function"?e(t.current):e&&(e.current=t.current)},[e]),l.useEffect(()=>{if(o&&r?.walkthroughStep!==void 0&&o.currentStep===r.walkthroughStep&&t.current&&!n.current){const p=t.current,u=p.getBoundingClientRect(),v=100;u.top>=-v&&u.bottom<=window.innerHeight+v&&u.left>=-v&&u.right<=window.innerWidth+v?r?.onScrollComplete?.():(r?.onScrollStart?.(),s(p)),n.current=!0}else o?.currentStep!==r?.walkthroughStep&&(n.current=!1,i())},[o?.currentStep,r?.walkthroughStep,o,s,i,r]),l.useEffect(()=>i,[i]),{triggerRef:t,context:r}}const ee=H.c.bind(q),Qe=l.forwardRef(({children:e,className:t,highlight:r=!0,negative:o=!1,...n},s)=>{const{triggerRef:i,context:c}=rr(s);return a.jsxs("div",{className:ee("purpur-popover__trigger",{"purpur-popover__trigger--highlight":c?.isOpen&&r},t),children:[c?.isOpen&&r&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state1",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"}),a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state2",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"})]}),a.jsx(Ht,{ref:i,asChild:!0,"aria-expanded":c?.isOpen??!1,"aria-haspopup":"dialog",...n,children:e})]})});Qe.displayName="PopoverTrigger";function or(e){const t=B(),[r,o]=l.useState(!1),[n,s]=l.useState(!1),i=l.useRef(null),c=l.useRef(0);l.useEffect(()=>t?(t.registerStep(e),()=>t.unregisterStep(e)):()=>{},[t,e]);const p=t?.currentStep===e,u=l.useCallback(()=>{s(!0)},[]),v=l.useCallback(()=>{if(s(!1),p){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}},[p,t]);l.useEffect(()=>{if(i.current&&(clearTimeout(i.current),i.current=null),p){if(!n){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}}else o(!1),s(!1),c.current=0;return()=>{i.current&&(clearTimeout(i.current),i.current=null)}},[p,n,t]);const d=l.useCallback((h,m)=>{if(m?.(h),!h&&r&&t&&t.currentStep===e){if(Date.now()-c.current<10||i.current!==null)return;t.dismiss()}},[r,t,e]);return{actuallyOpen:r,onScrollStart:u,onScrollComplete:v,handleOpenChange:d}}const Je=({children:e,step:t,onOpenChange:r,disableClickOutside:o=!0,...n})=>{const{actuallyOpen:s,onScrollStart:i,onScrollComplete:c,handleOpenChange:p}=or(t);return a.jsx(Xe,{open:s,onOpenChange:u=>p(u,r),...n,children:a.jsx(oe.Provider,{value:{isOpen:s,walkthroughStep:t,onScrollStart:i,onScrollComplete:c,disableClickOutside:o},children:e})})};Je.displayName="PopoverWalkthrough";const b=e=>{const{multistep:t=!1,disableClickOutside:r,...o}=e;return t?a.jsx(Je,{...o,disableClickOutside:r??!0}):a.jsx(Ze,{...o,disableClickOutside:r})};b.Back=ie;b.Button=le;b.Content=Ve;b.Flow=mt;b.Footer=ue;b.Next=de;b.Trigger=Qe;b.displayName="Popover";exports.Popover=b;
|
|
2
|
-
//# sourceMappingURL=popover-
|
|
1
|
+
"use strict";const a=require("react/jsx-runtime"),X=require("./button-DmybVApa.js"),l=require("react"),dt=require("./variables-Buqm4JZc.js"),y=require("./index-DlMXYAr3.js"),U=require("./index-_XxjJPRD.js"),$=require("./index-kcwFA4Dv.js"),M=require("./index-DA01QPpC.js"),ft=require("./index-BtWPC8xc.js"),R=require("./floating-ui.react-dom-Cc_YSprQ.js"),ht=require("./index-DOFLOnao.js"),we=require("./index-CleLBinl.js"),gt=require("./close.es-VL3lKi1O.js"),xe=require("./paragraph-By4jMjnH.js"),H=require("./bind-DeUYJ6m9.js"),vt=require("./heading-drD5ugCC.js");function _t(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const g=_t(l),te=l.createContext(null),re=()=>{const e=l.useContext(te);if(!e)throw new Error("usePopoverFlow must be used within a PopoverFlow provider");return e},B=()=>l.useContext(te),mt=({children:e,initialStep:t=1,onComplete:r,onDismiss:o,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u=0})=>{const[v,d]=l.useState(t),[h,m]=l.useState(new Set),x=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.add(w),S})},[]),f=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.delete(w),S})},[]),O=l.useCallback(()=>{d(w=>{const C=w+1;return C>h.size?(r?.(),w):C})},[h.size,r]),j=l.useCallback(()=>{d(w=>Math.max(1,w-1))},[]),N=l.useCallback(()=>{d(0),o?.()},[o]),E=l.useMemo(()=>({currentStep:v,totalSteps:h.size,next:O,back:j,dismiss:N,registerStep:x,unregisterStep:f,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u}),[v,h.size,O,j,N,x,f,n,s,i,c,p,u]);return a.jsx(te.Provider,{value:E,children:e})},oe=l.createContext(null),K=()=>l.useContext(oe),Pe=l.createContext({negative:!1}),ne=()=>l.useContext(Pe),wt=150,_e={MAX_MD:`(max-width: ${dt.purpurBreakpointMd})`},se=()=>{const e=window.matchMedia(_e.MAX_MD);function t(){o(e.matches)}const[r,o]=l.useState(()=>typeof window>"u"?!1:window.matchMedia(_e.MAX_MD).matches),n=l.useCallback(()=>{let s;return()=>{clearTimeout(s),s=setTimeout(()=>t(),wt)}},[t]);return l.useEffect(()=>{if(!(typeof window>"u"))return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[n]),{isMdOrSmaller:r}},ie=({children:e,onClick:t})=>{const{back:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"secondary",onClick:i,negative:s,fullWidth:n,children:e})};ie.displayName="PopoverBack";var xt="Arrow",Ce=g.forwardRef((e,t)=>{const{children:r,width:o=10,height:n=5,...s}=e;return a.jsx(y.Primitive.svg,{...s,ref:t,width:o,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ce.displayName=xt;var Pt=Ce,ae="Popper",[Se,ye]=$.createContextScope(ae),[Ct,je]=Se(ae),Oe=e=>{const{__scopePopper:t,children:r}=e,[o,n]=g.useState(null);return a.jsx(Ct,{scope:t,anchor:o,onAnchorChange:n,children:r})};Oe.displayName=ae;var Re="PopperAnchor",be=g.forwardRef((e,t)=>{const{__scopePopper:r,virtualRef:o,...n}=e,s=je(Re,r),i=g.useRef(null),c=U.useComposedRefs(t,i),p=g.useRef(null);return g.useEffect(()=>{const u=p.current;p.current=o?.current||i.current,u!==p.current&&s.onAnchorChange(p.current)}),o?null:a.jsx(y.Primitive.div,{...n,ref:c})});be.displayName=Re;var ce="PopperContent",[St,yt]=Se(ce),Ae=g.forwardRef((e,t)=>{const{__scopePopper:r,side:o="bottom",sideOffset:n=0,align:s="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:p=!0,collisionBoundary:u=[],collisionPadding:v=0,sticky:d="partial",hideWhenDetached:h=!1,updatePositionStrategy:m="optimized",onPlaced:x,...f}=e,O=je(ce,r),[j,N]=g.useState(null),E=U.useComposedRefs(t,I=>N(I)),[w,C]=g.useState(null),S=ht.useSize(w),V=S?.width??0,W=S?.height??0,Z=o+(s!=="center"?"-"+s:""),Q=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},_=Array.isArray(u)?u:[u],P=_.length>0,k={padding:Q,boundary:_.filter(Ot),altBoundary:P},{refs:et,floatingStyles:fe,placement:tt,isPositioned:L,middlewareData:F}=R.useFloating({strategy:"fixed",placement:Z,whileElementsMounted:(...I)=>R.autoUpdate(...I,{animationFrame:m==="always"}),elements:{reference:O.anchor},middleware:[R.offset({mainAxis:n+W,alignmentAxis:i}),p&&R.shift({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?R.limitShift():void 0,...k}),p&&R.flip({...k}),R.size({...k,apply:({elements:I,rects:ve,availableWidth:ct,availableHeight:pt})=>{const{width:lt,height:ut}=ve.reference,Y=I.floating.style;Y.setProperty("--radix-popper-available-width",`${ct}px`),Y.setProperty("--radix-popper-available-height",`${pt}px`),Y.setProperty("--radix-popper-anchor-width",`${lt}px`),Y.setProperty("--radix-popper-anchor-height",`${ut}px`)}}),w&&R.arrow({element:w,padding:c}),Rt({arrowWidth:V,arrowHeight:W}),h&&R.hide({strategy:"referenceHidden",...k})]}),[he,rt]=ke(tt),ge=$.useCallbackRef(x);$.useLayoutEffect2(()=>{L&&ge?.()},[L,ge]);const ot=F.arrow?.x,nt=F.arrow?.y,st=F.arrow?.centerOffset!==0,[it,at]=g.useState();return $.useLayoutEffect2(()=>{j&&at(window.getComputedStyle(j).zIndex)},[j]),a.jsx("div",{ref:et.setFloating,"data-radix-popper-content-wrapper":"",style:{...fe,transform:L?fe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:it,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(" "),...F.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(St,{scope:r,placedSide:he,onArrowChange:C,arrowX:ot,arrowY:nt,shouldHideArrow:st,children:a.jsx(y.Primitive.div,{"data-side":he,"data-align":rt,...f,ref:E,style:{...f.style,animation:L?void 0:"none"}})})})});Ae.displayName=ce;var Ne="PopperArrow",jt={top:"bottom",right:"left",bottom:"top",left:"right"},Ee=g.forwardRef(function(t,r){const{__scopePopper:o,...n}=t,s=yt(Ne,o),i=jt[s.placedSide];return a.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:a.jsx(Pt,{...n,ref:r,style:{...n.style,display:"block"}})})});Ee.displayName=Ne;function Ot(e){return e!==null}var Rt=e=>({name:"transformOrigin",options:e,fn(t){const{placement:r,rects:o,middlewareData:n}=t,i=n.arrow?.centerOffset!==0,c=i?0:e.arrowWidth,p=i?0:e.arrowHeight,[u,v]=ke(r),d={start:"0%",center:"50%",end:"100%"}[v],h=(n.arrow?.x??0)+c/2,m=(n.arrow?.y??0)+p/2;let x="",f="";return u==="bottom"?(x=i?d:`${h}px`,f=`${-p}px`):u==="top"?(x=i?d:`${h}px`,f=`${o.floating.height+p}px`):u==="right"?(x=`${-p}px`,f=i?d:`${m}px`):u==="left"&&(x=`${o.floating.width+p}px`,f=i?d:`${m}px`),{data:{x,y:f}}}});function ke(e){const[t,r="center"]=e.split("-");return[t,r]}var bt=Oe,Fe=be,At=Ae,Nt=Ee,G="Popover",[Te]=$.createContextScope(G,[ye]),z=ye(),[Et,A]=Te(G),Me=e=>{const{__scopePopover:t,children:r,open:o,defaultOpen:n,onOpenChange:s,modal:i=!1}=e,c=z(t),p=g.useRef(null),[u,v]=g.useState(!1),[d,h]=y.useControllableState({prop:o,defaultProp:n??!1,onChange:s,caller:G});return a.jsx(bt,{...c,children:a.jsx(Et,{scope:t,contentId:ft.useId(),triggerRef:p,open:d,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),hasCustomAnchor:u,onCustomAnchorAdd:g.useCallback(()=>v(!0),[]),onCustomAnchorRemove:g.useCallback(()=>v(!1),[]),modal:i,children:r})})};Me.displayName=G;var De="PopoverAnchor",kt=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(De,r),s=z(r),{onCustomAnchorAdd:i,onCustomAnchorRemove:c}=n;return g.useEffect(()=>(i(),()=>c()),[i,c]),a.jsx(Fe,{...s,...o,ref:t})});kt.displayName=De;var Ie="PopoverTrigger",$e=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(Ie,r),s=z(r),i=U.useComposedRefs(t,n.triggerRef),c=a.jsx(y.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":Ye(n.open),...o,ref:i,onClick:y.composeEventHandlers(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?c:a.jsx(Fe,{asChild:!0,...s,children:c})});$e.displayName=Ie;var pe="PopoverPortal",[Ft,Tt]=Te(pe,{forceMount:void 0}),He=e=>{const{__scopePopover:t,forceMount:r,children:o,container:n}=e,s=A(pe,t);return a.jsx(Ft,{scope:t,forceMount:r,children:a.jsx(we.Presence,{present:r||s.open,children:a.jsx(M.Portal,{asChild:!0,container:n,children:o})})})};He.displayName=pe;var D="PopoverContent",Be=g.forwardRef((e,t)=>{const r=Tt(D,e.__scopePopover),{forceMount:o=r.forceMount,...n}=e,s=A(D,e.__scopePopover);return a.jsx(we.Presence,{present:o||s.open,children:s.modal?a.jsx(Dt,{...n,ref:t}):a.jsx(It,{...n,ref:t})})});Be.displayName=D;var Mt=y.createSlot("PopoverContent.RemoveScroll"),Dt=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(null),n=U.useComposedRefs(t,o),s=g.useRef(!1);return g.useEffect(()=>{const i=o.current;if(i)return M.hideOthers(i)},[]),a.jsx(M.ReactRemoveScroll,{as:Mt,allowPinchZoom:!0,children:a.jsx(ze,{...e,ref:n,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:y.composeEventHandlers(e.onCloseAutoFocus,i=>{i.preventDefault(),s.current||r.triggerRef.current?.focus()}),onPointerDownOutside:y.composeEventHandlers(e.onPointerDownOutside,i=>{const c=i.detail.originalEvent,p=c.button===0&&c.ctrlKey===!0,u=c.button===2||p;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:y.composeEventHandlers(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1})})})}),It=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(!1),n=g.useRef(!1);return a.jsx(ze,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(o.current||r.triggerRef.current?.focus(),s.preventDefault()),o.current=!1,n.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(o.current=!0,s.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const i=s.target;r.triggerRef.current?.contains(i)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&n.current&&s.preventDefault()}})}),ze=g.forwardRef((e,t)=>{const{__scopePopover:r,trapFocus:o,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:i,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onInteractOutside:v,...d}=e,h=A(D,r),m=z(r);return M.useFocusGuards(),a.jsx(M.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:n,onUnmountAutoFocus:s,children:a.jsx(M.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:v,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onDismiss:()=>h.onOpenChange(!1),children:a.jsx(At,{"data-state":Ye(h.open),role:"dialog",id:h.contentId,...m,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),qe="PopoverClose",We=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(qe,r);return a.jsx(y.Primitive.button,{type:"button",...o,ref:t,onClick:y.composeEventHandlers(e.onClick,()=>n.onOpenChange(!1))})});We.displayName=qe;var $t="PopoverArrow",Le=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=z(r);return a.jsx(Nt,{...n,...o,ref:t})});Le.displayName=$t;function Ye(e){return e?"open":"closed"}var Xe=Me,Ht=$e,Bt=He,zt=Be,Ue=We,qt=Le;const le=({children:e,asChild:t,onClick:r,variant:o="primary",dismiss:n=!0,fullWidth:s})=>{const i=B(),{isMdOrSmaller:c}=se(),{negative:p}=ne(),u=!p,v=()=>{r?.(),n&&i?.dismiss()},d=s??c,h=t?e:a.jsx(X.Button,{variant:o,size:"sm",fullWidth:d,negative:u,onClick:v,children:e});return n?a.jsx(Ue,{asChild:!0,children:h}):h};le.displayName="PopoverButton";const Wt="_highlightState1_1w9je_1",Lt="_fadeIn_1w9je_1",Yt="_slideFromTop_1w9je_1",Xt="_slideFromBottom_1w9je_1",Ut="_slideFromLeft_1w9je_1",Kt="_slideFromRight_1w9je_1",Gt="_fadeOut_1w9je_1",Vt="_slideToTop_1w9je_1",Zt="_slideToBottom_1w9je_1",Qt="_slideToLeft_1w9je_1",Jt="_slideToRight_1w9je_1",q={"purpur-popover__trigger":"_purpur-popover__trigger_1w9je_1","purpur-popover__trigger-highlight":"_purpur-popover__trigger-highlight_1w9je_5","purpur-popover__trigger-highlight--state1":"_purpur-popover__trigger-highlight--state1_1w9je_14",highlightState1:Wt,"purpur-popover__trigger-highlight--negative":"_purpur-popover__trigger-highlight--negative_1w9je_29","purpur-popover__trigger-highlight--state2":"_purpur-popover__trigger-highlight--state2_1w9je_33","purpur-popover__inner":"_purpur-popover__inner_1w9je_45","purpur-popover__content":"_purpur-popover__content_1w9je_52",fadeIn:Lt,slideFromTop:Yt,slideFromBottom:Xt,slideFromLeft:Ut,slideFromRight:Kt,fadeOut:Gt,slideToTop:Vt,slideToBottom:Zt,slideToLeft:Qt,slideToRight:Jt,"purpur-popover__arrow":"_purpur-popover__arrow_1w9je_103","purpur-popover__body":"_purpur-popover__body_1w9je_106","purpur-popover__icon":"_purpur-popover__icon_1w9je_107","purpur-popover__steps":"_purpur-popover__steps_1w9je_108","purpur-popover__title":"_purpur-popover__title_1w9je_109","purpur-popover__content--negative":"_purpur-popover__content--negative_1w9je_112","purpur-popover__header-content":"_purpur-popover__header-content_1w9je_124","purpur-popover__close":"_purpur-popover__close_1w9je_137","purpur-popover__footer":"_purpur-popover__footer_1w9je_142","purpur-popover__footer-button-group":"_purpur-popover__footer-button-group_1w9je_155"},er=H.c.bind(q),Ke=()=>{const e=re(),r=K()?.walkthroughStep||e.currentStep,{totalSteps:o,separatorText:n,stepText:s}=e;return a.jsx(a.Fragment,{children:a.jsxs(xe.Paragraph,{className:er("purpur-popover__steps"),role:"status","aria-live":"polite","aria-atomic":"true",children:[s," ",r," ",n," ",o]})})};Ke.displayName="PopoverSteps";const me=H.c.bind(q),ue=({children:e,className:t})=>{const r=B(),o=K(),n=r&&o&&o.walkthroughStep>0;return a.jsxs("div",{className:me("purpur-popover__footer",t),children:[n&&a.jsx(Ke,{}),a.jsx("div",{className:me("purpur-popover__footer-button-group"),children:e})]})};ue.displayName="PopoverFooter";const J=H.c.bind(q),Ge=l.forwardRef(({title:e,icon:t},r)=>a.jsxs("div",{ref:r,className:J("purpur-popover__header-content"),children:[t&&a.jsx("span",{className:J("purpur-popover__icon"),children:t}),a.jsx(vt.Heading,{tag:"h2",variant:"title-100",className:J("purpur-popover__title"),id:"popover-heading",children:e})]}));Ge.displayName="PopoverHeader";const de=({children:e,onClick:t})=>{const{next:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"primary",onClick:i,negative:s,fullWidth:n,children:e})};de.displayName="PopoverNext";const T=H.c.bind(q),Ve=l.forwardRef(({children:e,className:t,beakPosition:r="down",align:o="center",alignOffset:n=0,sideOffset:s=5,negative:i=!1,closeIconAriaLabel:c,title:p,icon:u,body:v,onAction:d,zIndex:h=210,...m},x)=>{const f=B(),O=K(),j=l.useRef(null),E={up:"bottom",right:"left",down:"top",left:"right",none:"bottom"}[r],w=r!=="none";let C=e;if(f&&!e){const _=O?.walkthroughStep||f.currentStep,P=_===1,k=_===f.totalSteps;C=a.jsxs(ue,{children:[!P&&a.jsx(ie,{onClick:()=>d?.({type:"back",step:_}),children:f.backLabel}),k?a.jsx(le,{onClick:()=>d?.({type:"finish",step:_}),dismiss:!0,children:f.finishLabel}):a.jsx(de,{onClick:()=>d?.({type:"next",step:_}),children:f.nextLabel})]})}const S=_=>{if(_.preventDefault(),f){const P=_.currentTarget;setTimeout(()=>{P.setAttribute("tabindex","-1"),P.focus()},0)}m.onOpenAutoFocus?.(_)},V=_=>{f&&_.preventDefault(),m.onCloseAutoFocus?.(_)},W=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Z=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Q=_=>{if(O?.disableClickOutside){_.preventDefault();return}if(f){const P=_.target;P.closest("[role='dialog']")||P.closest(".purpur-popover__trigger")||P.closest("button[aria-haspopup='dialog']")||(d?.({type:"dismiss",step:f.currentStep}),setTimeout(()=>{f.dismiss()},0))}};return a.jsx(Bt,{children:a.jsxs(zt,{"data-testid":"popover-content",role:"dialog","aria-modal":"true","aria-labelledby":m["aria-label"]?void 0:"popover-heading",ref:x,side:E,sideOffset:s,align:o,alignOffset:n,style:{"--popover-z-index":h},className:T("purpur-popover__content",{"purpur-popover__content--negative":i},t),onOpenAutoFocus:S,onCloseAutoFocus:V,onEscapeKeyDown:Z,onInteractOutside:Q,...m,children:[a.jsxs(Pe.Provider,{value:{negative:i},children:[a.jsxs("div",{className:T("purpur-popover__inner"),children:[a.jsx(Ge,{ref:j,title:p,icon:u}),a.jsx(xe.Paragraph,{className:T("purpur-popover__body"),children:v})]}),C,a.jsx(Ue,{asChild:!0,onClick:W,children:a.jsx(X.Button,{variant:i?"text":"tertiary-purple",size:"sm","aria-label":c,className:T("purpur-popover__close"),negative:!i,iconOnly:!0,children:a.jsx(gt.r,{size:"xs",className:T("purpur-popover__icon")})})})]}),w&&a.jsx(qt,{className:T("purpur-popover__arrow"),"aria-hidden":"true",tabIndex:-1})]})})});Ve.displayName="PopoverContent";const Ze=({children:e,open:t,defaultOpen:r=!1,onOpenChange:o,disableClickOutside:n,...s})=>{const[i,c]=l.useState(r),p=t!==void 0,u=p?t:i,v=d=>{p||c(d),o?.(d)};return a.jsx(Xe,{open:u,onOpenChange:v,...s,children:a.jsx(oe.Provider,{value:{isOpen:u,walkthroughStep:0,disableClickOutside:n},children:e})})};Ze.displayName="PopoverStandalone";const tr=e=>{const t=l.useRef(null),r=l.useCallback(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)},[]);return{scrollToElement:l.useCallback((n,s=600)=>{const i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,c=n.getBoundingClientRect(),p=c.top+window.pageYOffset,u=c.height,v=window.innerHeight;let d=p-v/2+u/2;const h=document.documentElement.scrollHeight,m=Math.max(0,h-v);if(d=Math.max(0,Math.min(d,m)),i){window.scrollTo(0,d),e?.();return}const x=window.pageYOffset,f=d-x,O=performance.now(),j=N=>{const E=N-O,w=Math.min(E/s,1),C=w<.5?2*w*w:1-Math.pow(-2*w+2,2)/2,S=x+f*C;window.scrollTo(0,S),w<1?t.current=requestAnimationFrame(j):(t.current=null,e?.())};r(),t.current=requestAnimationFrame(j)},[e,r]),cancelScroll:r}};function rr(e){const t=l.useRef(null),r=K(),o=B(),n=l.useRef(!1),{scrollToElement:s,cancelScroll:i}=tr(r?.onScrollComplete);return l.useEffect(()=>{typeof e=="function"?e(t.current):e&&(e.current=t.current)},[e]),l.useEffect(()=>{if(o&&r?.walkthroughStep!==void 0&&o.currentStep===r.walkthroughStep&&t.current&&!n.current){const p=t.current,u=p.getBoundingClientRect(),v=100;u.top>=-v&&u.bottom<=window.innerHeight+v&&u.left>=-v&&u.right<=window.innerWidth+v?r?.onScrollComplete?.():(r?.onScrollStart?.(),s(p)),n.current=!0}else o?.currentStep!==r?.walkthroughStep&&(n.current=!1,i())},[o?.currentStep,r?.walkthroughStep,o,s,i,r]),l.useEffect(()=>i,[i]),{triggerRef:t,context:r}}const ee=H.c.bind(q),Qe=l.forwardRef(({children:e,className:t,highlight:r=!0,negative:o=!1,...n},s)=>{const{triggerRef:i,context:c}=rr(s);return a.jsxs("div",{className:ee("purpur-popover__trigger",{"purpur-popover__trigger--highlight":c?.isOpen&&r},t),children:[c?.isOpen&&r&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state1",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"}),a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state2",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"})]}),a.jsx(Ht,{ref:i,asChild:!0,"aria-expanded":c?.isOpen??!1,"aria-haspopup":"dialog",...n,children:e})]})});Qe.displayName="PopoverTrigger";function or(e){const t=B(),[r,o]=l.useState(!1),[n,s]=l.useState(!1),i=l.useRef(null),c=l.useRef(0);l.useEffect(()=>t?(t.registerStep(e),()=>t.unregisterStep(e)):()=>{},[t,e]);const p=t?.currentStep===e,u=l.useCallback(()=>{s(!0)},[]),v=l.useCallback(()=>{if(s(!1),p){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}},[p,t]);l.useEffect(()=>{if(i.current&&(clearTimeout(i.current),i.current=null),p){if(!n){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}}else o(!1),s(!1),c.current=0;return()=>{i.current&&(clearTimeout(i.current),i.current=null)}},[p,n,t]);const d=l.useCallback((h,m)=>{if(m?.(h),!h&&r&&t&&t.currentStep===e){if(Date.now()-c.current<10||i.current!==null)return;t.dismiss()}},[r,t,e]);return{actuallyOpen:r,onScrollStart:u,onScrollComplete:v,handleOpenChange:d}}const Je=({children:e,step:t,onOpenChange:r,disableClickOutside:o=!0,...n})=>{const{actuallyOpen:s,onScrollStart:i,onScrollComplete:c,handleOpenChange:p}=or(t);return a.jsx(Xe,{open:s,onOpenChange:u=>p(u,r),...n,children:a.jsx(oe.Provider,{value:{isOpen:s,walkthroughStep:t,onScrollStart:i,onScrollComplete:c,disableClickOutside:o},children:e})})};Je.displayName="PopoverWalkthrough";const b=e=>{const{multistep:t=!1,disableClickOutside:r,...o}=e;return t?a.jsx(Je,{...o,disableClickOutside:r??!0}):a.jsx(Ze,{...o,disableClickOutside:r})};b.Back=ie;b.Button=le;b.Content=Ve;b.Flow=mt;b.Footer=ue;b.Next=de;b.Trigger=Qe;b.displayName="Popover";exports.Popover=b;
|
|
2
|
+
//# sourceMappingURL=popover-B0XJZ5mj.js.map
|